Aller au contenu

Créer et appliquer des ressources Kubernetes avec kubectl

Mise à jour :

logo kubernetes

Ce guide fait partie d’une série dédiée à kubectl, l’outil en ligne de commande pour interagir avec Kubernetes. Dans ce guide, nous explorons deux commandes essentielles : kubectl create et kubectl apply.

Pourquoi utiliser kubectl create et kubectl apply ?

Ces commandes permettent de gérer les ressources Kubernetes :

  • kubectl create : crée une ressource Kubernetes depuis zéro.
  • kubectl apply : applique des modifications déclaratives à une ressource existante.

Elles sont particulièrement utiles pour déployer et gérer les objets Kubernetes de manière efficace.

kubectl create : Créer des ressources Kubernetes

La commande kubectl create permet de créer une nouvelle ressource directement depuis la ligne de commande ou un fichier manifeste YAML.

Syntaxe de base

Terminal window
kubectl create -f <fichier.yaml>

Cas d’usage

  • Créer une ressource depuis un fichier :

    Terminal window
    kubectl create -f pod.yaml
  • Créer un déploiement en ligne de commande :

    Terminal window
    kubectl create deployment nginx --image=nginx
  • Créer un service :

    Terminal window
    kubectl create service clusterip my-service --tcp=80:80
  • Créer une configmap :

    Terminal window
    kubectl create configmap my-config --from-literal=key1=value1

Erreurs courantes et solutions

  • error: resource already exists : La ressource existe déjà. Utilisez kubectl apply pour mettre à jour une ressource existante.
  • error: invalid resource type : Vérifiez que le type de ressource est correct et bien orthographié.

kubectl apply : Appliquer des modifications déclaratives

La commande kubectl apply permet d’appliquer des modifications à des ressources existantes en utilisant une approche déclarative.

Syntaxe de base

Terminal window
kubectl apply -f <fichier.yaml>

Cas d’usage

  • Créer ou mettre à jour une ressource :

    Terminal window
    kubectl apply -f deployment.yaml
  • Utiliser kubectl apply avec kustomize :

    Terminal window
    kubectl apply -k ./kustomization
  • Mettre à jour une configmap :

    Terminal window
    kubectl apply -f configmap.yaml
  • Déployer plusieurs ressources en même temps :

    Terminal window
    kubectl apply -f services.yaml -f deployments.yaml

Différences entre kubectl create et kubectl apply

Fonctionnalitékubectl createkubectl apply
Créer une ressource
Mettre à jour une ressource
ApprocheImpérativeDéclarative
Utilisation dans CI/CD

Bonnes pratiques avec kubectl create et kubectl apply

  • Utilisez kubectl create uniquement pour créer de nouvelles ressources.
  • Pour les modifications, préférez kubectl apply.
  • Toujours exécuter kubectl apply sur des fichiers versionnés pour assurer la traçabilité.
  • Privilégier kubectl apply dans les pipelines CI/CD pour éviter d’écraser des configurations existantes.

Conclusion

kubectl create et kubectl apply sont des commandes essentielles pour gérer les ressources Kubernetes.

  • kubectl create permet de créer rapidement des objets Kubernetes.
  • kubectl apply permet d’appliquer des mises à jour de manière déclarative et contrôlée.

En maîtrisant ces outils, vous optimisez la gestion et la maintenance de vos applications Kubernetes.

Notes importantes

Ce guide fait partie d’une série complète dédiée à l’utilisation de kubectl, l’outil en ligne de commande incontournable pour administrer un cluster Kubernetes. Chaque commande de kubectl est abordée en détail dans des guides spécifiques, organisés par thématique pour faciliter l’apprentissage et la référence rapide.

Pour naviguer efficacement entre les différents chapitres, vous trouverez un tableau récapitulatif listant les commandes et leurs guides associés. N’hésitez pas à explorer ces ressources pour approfondir vos connaissances et optimiser votre gestion des clusters Kubernetes.

CommandesDocumentation
kubectl api-resources, kubectl explainExploration de l’API
kubectl create, kubectl applyCréation et mise à jour des ressources
kubectl edit, kubectl patch, kubectl replaceModification des ressources
kubectl get, kubectl describe, kubectl logs, kubectl topRécupération d’informations sur les ressources
kubectl exec, kubectl attach, kubectl debug, kubectl cpGestion et Debug des Pods
kubectl delete, kubectl annotate, kubectl labelSuppression et annotation
kubectl expose, kubectl port-forward, kubectl proxyExposition et accès aux applications
kubectl scale, kubectl autoscale, kubectl rollout, kubectl setMise à l’échelle et gestion des déploiements
kubectl wait, kubectl diffAttente et validation des ressources