Outils pour utilisateurs

Outils du site


informatique:kebernetes:kube_service

Ceci est une ancienne révision du document !


Service / Réseau Kubernetes

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.

ClusterIP

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

Explications, nous avons un YAML pour créer 2 objets :

  • Un Pod :
    • metadata.labels.app : Il est important de définir le nom pour qu'il soit ciblé automatiquement par le service.
  • Un service:
    • metadata.name: Définir un nom pour le service afin de l'identifier.
    • spec.selector.app : Le nom doit correspondre à metadata.labels.app afin que la publication du service cible le pod à publier.
    • spec.ports.name: Indiquer le nom du port
    • spec.ports.protocol: Indiquer si le port est en TCP/UDP.
    • spec.ports.port : C'est le port qui sera publié au sein du cluster.
    • spec.ports.targetPort : C'est le port ciblé coté conteneurs.

NodePort

Ingress

informatique/kebernetes/kube_service.1702643470.txt.gz · Dernière modification: 2023/12/15 13:31 par benoit