Kubernetes (ou K8s) est un système open-source conçu pour automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. Il a été initialement développé par Google et est maintenant maintenu par la Cloud Native Computing Foundation (CNCF).
Kubernetes (ou K8s) est un système open-source conçu pour automatiser le déploiement, la mise à l'échelle et la gestion des applications conteneurisées. Il a été initialement développé par Google et est maintenant maintenu par la Cloud Native Computing Foundation (CNCF).
Un cluster Kubernetes est composé de plusieurs machines (nœuds) qui exécutent les conteneurs. Il se divise en deux parties :
Chaque nœud contient :
Un Pod est l’unité de base de Kubernetes. Il peut contenir un ou plusieurs conteneurs partageant le même réseau et stockage.
Un Service expose un groupe de Pods Ă travers un endpoint stable, permettant la communication interne et externe.
Un Deployment gère le déploiement et la mise à jour des Pods, garantissant la haute disponibilité et la résilience des applications.
Un ReplicaSet garantit qu'un nombre défini de copies identiques d'un Pod sont toujours en cours d'exécution.
Un Ingress permet d’exposer des applications HTTP et HTTPS avec un contrôle avancé du routage.
Les Namespaces permettent d’isoler des groupes de ressources au sein d’un même cluster.
apiVersion: v1 kind: Pod metadata: name: mon-pod spec: containers: - name: mon-container image: nginx ports: - containerPort: 80
Déployer avec :
kubectl apply -f mon-pod.yaml
apiVersion: apps/v1 kind: Deployment metadata: name: mon-deployment spec: replicas: 3 selector: matchLabels: app: mon-app template: metadata: labels: app: mon-app spec: containers: - name: mon-container image: nginx ports: - containerPort: 80
Déployer avec :
kubectl apply -f mon-deployment.yaml
apiVersion: v1 kind: Service metadata: name: mon-service spec: selector: app: mon-app ports: - protocol: TCP port: 80 targetPort: 80 type: LoadBalancer
Déployer avec :
kubectl apply -f mon-service.yaml
kubectl get pods kubectl get services kubectl get deployments
kubectl logs mon-pod
kubectl exec -it mon-pod -- /bin/bash
kubectl scale deployment mon-deployment --replicas=5
spec: template: spec: containers: - name: mon-container image: nginx:1.21
Appliquer avec :
kubectl apply -f mon-deployment.yaml
Kubernetes est un outil puissant pour gérer les applications conteneurisées de manière automatisée, scalable et résiliente. Il permet de simplifier le déploiement, la mise à l’échelle et la gestion des applications en production.