Ceci est une ancienne révision du document !
Les services permettent de publier l'accès aux Pods au sein du cluster ou à l'extérieur. Les conteneurs au sein d'un Pod partagent la même configuration réseau et sont donc accessible par la même IP interne au cluster.
Il y a plusieurs possibilité selon ce que l'on souhaite faire.
C'est le mode par défaut de Kubernetes lorsque l'on crée un service. Il permet d'exposer uniquement un port au sein du cluster uniquement. Il n'est pas publié vers l'extérieur.
Ci-dessous un fichier YAML pour démarrer un Pod nginx et son service :
apiVersion: v1
kind: Pod
metadata:
name: nginx
labels:
app: mywebapp
spec:
containers:
- name: nginx
image: nginx:stable
ports:
- containerPort: 80
# Ci-dessous on affecte un nom au port
#name: http-web-svc
---
apiVersion: v1
kind: Service
metadata:
name: nginx-service
spec:
# ClusterIP étant le mode par défaut, il n'est pas obligé de définir le type pour le créer.
#type: ClusterIP
selector:
app: mywebapp
ports:
- name: mywebport
protocol: TCP
port: 8080
targetPort: 80
# Si un nom a été donné au port du conteneur on peut cibler le port par son nom.
#targetPort: http-web-svc