Aller au contenu principal
Sommaire de la formation

ReplicaSets

coolibra325 vues

ReplicaSets

Un ReplicaSet est un contrôleur de ressources dans Kubernetes, utilisé pour garantir qu'un nombre spécifié de réplicas (copies identiques) d'un pod fonctionne en permanence dans le cluster Kubernetes. En d'autres termes, un ReplicaSet assure la haute disponibilité des pods en s'assurant que le nombre de réplicas correspond à ce qui est défini dans sa configuration

  • Maintien du nombre de réplicas
  • Sélecteur de pods
  • Définition du nombre de réplicas
  • Templates de pod
  • Mise à jour contrôlée
  • Haute disponibilité

Un schéma simplifié d'un ReplicaSet dans Kubernetes peut être utile pour visualiser ses composants clés :

  • Le "ReplicaSet" est la ressource de niveau supérieur qui spécifie le nombre de réplicas désirés et le sélecteur pour les pods qu'il gère.

  • Les "Pods" sont créés et maintenus par le "ReplicaSet." Ils sont les instances individuelles de l'application. Chaque pod peut contenir un ou plusieurs conteneurs. Dans cet exemple, chaque pod contient un conteneur nommé "mon-conteneur" utilisant l'image "mon-image."

Le "ReplicaSet" garantit que le nombre de réplicas spécifié est maintenu en permanence. Si un pod échoue ou doit être mis à jour, le "ReplicaSet" prend en charge la création de nouveaux pods pour remplacer ceux qui sont défectueux ou obsolètes.

Créez un fichier YAML pour le ReplicaSet (par exemple, nginx-replicaset.yaml) avec le contenu suivant :

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: nginx-replicaset
spec:
  replicas: 3
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx-container
        image: nginx:latest

 

Ce fichier YAML définit un ReplicaSet qui maintiendra 3 réplicas du pod NGINX.

  • Appliquez le fichier YAML pour créer le ReplicaSet :
kubectl apply -f rs/nginx-replicaset.yaml
  • Vérifiez que le ReplicaSet et les pods sont créés avec succès :
kubectl get replicasets
kubectl get pods

 

  • Créez un fichier YAML pour le Service (par exemple, nginx-service.yaml) avec le contenu suivant :
apiVersion: v1
kind: Service
metadata:
  name: nginx-service
spec:
  selector:
    app: nginxx
  ports:
    - protocol: TCP
      port: 80
      targetPort: 80
  type: NodePort

 

Ce fichier YAML définit un Service de type ClusterIP qui expose les réplicas du pod NGINX à l'intérieur du cluster.

  • Appliquez le fichier YAML pour créer le Service :
kubectl apply -f rs/nginx-service.yaml
kubectl get services

 

Maintenant, vous pouvez accéder aux réplicas du pod NGINX en utilisant le nom du Service "nginx-service" suivi du port 80 à l'intérieur du cluster. Par exemple, si vous avez un autre pod dans le même cluster, vous pouvez lancer un shell dessus et accéder au service en utilisant "curl http://nginx-service:80" comme URL. Le service redirigera le trafic vers l'un des pods NGINX.

 

Quelques commandes

kubectl get replicasets
kubectl get pods
kubectl delete pod web-replicaset-XXXXX
kubectl get pods
kubectl scale rs nom-du-replicaset --replicas=5
kubectl get pods

 

Commentaires

Connectez-vous pour rejoindre la discussion.

Aucun commentaire pour le moment.