Skip to content

Gestion de Kubernetes

Pour interagir avec l'API de Kubernetes, il est nécessaire de fournir les spécifications au format JSON dans le corps des requêtes HTTP. Pour ce faire, il faut fournir des fichiers de configuration au format YAML et les transmettre via l'interface en ligne de commande (CLI) de Kubernetes.

kubernetes-loop

  1. Écriture de fichiers YAML ou JSON : Décrire l'état désiré de l'application
  2. Publication sur le serveur kube-api : Envoi des informations
  3. Distribution de la charge de travail par la node master : Le cluster correspond à l'état désiré
  4. Stockage de la charge de travail dans etcd et déploiement : Configuration conservée et charge de travail déployée
  5. Vérification continue par Kubernetes : Garantie que l'état actuel correspond au souhaité
  6. Boucle de vérification Kubernetes (Kubernetes watch loop) : Réactive les pods défaillants

Chaque objet comprend deux champs :

  • Spécification (spec): Caractéristiques souhaitées pour la ressource
  • État (status) : Description de l'état actuel, géré activement par Kubernetes

Vue d'ensemble de l'API

Version de l'API

VersionNomDescription
Alphav1alpha1Désactivée par défaut, non recommandée pour la production en raison de bugs potentiels.
Betav2beta3Testée, activée en toute sécurité mais sujette à des changements dans les futures versions.
StablevXDisponible pour toutes les versions futures de Kubernetes

Groupes d'API

Les groupes d'API organisent les différentes versions et types d'API.

GroupeEndpointChamp YAML apiversionDescription
Core ou LegacyREST /api/v1v1Types de ressources et versions d'API originales de Kubernetes.
NommésREST /apis/$NOM_GROUPE/$VERSIONbatch/v1Types et versions d'API ajoutés après l'introduction des groupes d'API.

Command line tool (kubectl)

kubectl est l'interface en ligne de commande (CLI) pour interagir avec un cluster Kubernetes.

Structure des commandes

sh
kubectl [command] [TYPE] [NAME] [flags]
AttributDescription
commandType d'opération (create, describe, get, apply, delete, apply)
TYPEType de ressource (Pod, Service, Deployment, etc.)
NAMENom de la ressource
flagsOptions spéciales ou actions sur la ressource (-s ou --server pour spécifier l'adresse et le port du serveur API Kubernetes)

Exemples de commandes

CommandeDescription
kubectl apply -f deployment.ymlAppliquer une configuration à partir d'un fichier YAML
kubectl get allRécupérer toutes les ressources
kubectl api-resourcesLister les ressources disponibles
kubectl get pod --show-labelsVérifier les labels des Pods
kubectl exec -it curl -- curl 10.43.5.10Exécuter une commande dans un Pod
kubectl scale deploymentMettre à l'échelle un déploiement
kubectl get namespacesObtenir les namespaces
kubectl get all -n namespaceLister les ressources dans un namespace spécifique
kubectl delete serviceSupprimer un service
kubectl delete deploymentSupprimer un déploiement
kubectl expose deploymentExposer un déploiement

Fichiers de configuration (YAML)

Les fichiers YAML (Yet Another Markup Language) sont utilisés pour configurer Kubernetes.

yaml
apiVersion: v1
kind: Pod
metadata:
  name: wordpress
spec:
  containers:
  - name: wordpress
    image: wordpress
    ports:
    - containerPort: 80
AttributDescription
apiVersionVersion de l'API Kubernetes
kindType d'objet à créer
metadataMétadonnées sur l'objet (nom, labels, etc.)
specSpécifications de l'objet (état souhaité)

Appliquer un Fichier YAML

sh
kubectl apply -f wordpress.yml