Comment gérer des clusters Kubernetes avec kubectl
La commande kubectl permet aux administrateurs d’interagir avec un cluster Kubernetes et de le gérer sur un système Linux. Il s’agit d’un outil de ligne de commande essentiel qui fonctionne avec tous les environnements de cluster Kubernetes tels qu’Amazon Web Services, Google Cloud Platform ou un cluster sur votre propre matériel (par exemple, kubeadm). La gestion des clusters Kubernetes à grande échelle peut être un défi au début, mais la maîtrise de la commande kubectl la rendra beaucoup plus facile.
Dans ce tutoriel, nous allons apprendre à gérer les clusters Kubernetes à l’aide de la commande kubectl. Nous allons explorer diverses options de commande et voir comment utiliser efficacement kubectl, ainsi que quelques trucs et astuces pour faciliter l’utilisation de kubectl.
Dans ce tutoriel, vous allez apprendre :
- Comment utiliser les commandes
kubectlsur un cluster Kubernetes
Gérer des clusters Kubernetes avec kubectl
Les exemples ci-dessous montrent quelques-unes des commandes kubectl les plus courantes et essentielles à utiliser sur un cluster Kubernetes sous Linux.
Si vous ne l’avez pas déjà, vous devrez installer kubectl séparément de Kubernetes. La commande
kubectl fonctionnera alors avec n’importe quel type de Kubernetes en cours d’exécution, tel que kubeadm ou minikube, etc. Pour appliquer un fichier manifeste, qui peut également déployer une application dans Kubernetes, nous pouvons utiliser la syntaxe suivante :
kubectl apply -f ./application.yamlCela peut déployer notre application conteneurisée Docker personnalisée ou une application que nous récupérons à partir d’un référentiel central, tel que Docker Hub.
Nous pouvons également supprimer un déploiement avec le paramètre
delete. En voici quelques exemples :kubectl delete deployment my-applicationOu spécifiez le fichier :
kubectl delete -f application.yamlRécupérez des informations sur tous les pods Kubernetes de votre réseau à l’aide des éléments suivants :
kubectl get podsOu la version plus détaillée, qui affichera les pods dans tous les espaces de noms :
kubectl get pods --all-namespacesNotez que l’option
de commande --all-namespacespeut également être raccourcie en-A:kubectl get pods -AConsultez les informations sur tous les nœuds configurés dans votre cluster Kubernetes :
kubectl get nodesVous pouvez voir une liste en cours d’exécution de tous les services disponibles en cours d’exécution dans votre cluster à l’aide de la commande suivante, émise à partir du nœud maser Kubernetes :
kubectl get svcObtenez des détails sur un pod spécifique qui a été déployé (dans cet exemple, un pod nommé « Apache ») :
kubectl get pods/apacheEt des informations plus détaillées avec l’argument
describe:kubectl describe pods/apacheConsultez les journaux d’un pod spécifique :
kubectl logs my-podNous pouvons utiliser le paramètre
runpour commencer à exécuter une image. Prenons l’exemple de Nginx :kubectl run --image=nginx nginx-server --port=80 --env="DOMAIN=cluster"On peut alors exposer le port 80 :
kubectl expose deployment nginx-deployment --port=80 --name=nginx-httpLa commande
kubectlest également essentielle lors de la mise à l’échelle des ressources. Pour étendre le déploiement 'mysql' à 5 réplicas :kubectl scale --replicas=5 deployment/mysqlOu pour mettre à l’échelle les ressources comme spécifié dans un fichier YAML :
kubectl scale --replicas=5 -f mysql.yamlPour drainer tous les pods d’un nœud (par exemple, pour effectuer la maintenance du nœud sans que cela n’entraîne d’interruptions du cluster Kubernetes) :
kubectl drain worker-nodePour afficher toutes les informations sur votre cluster Kubernetes :
kubectl cluster-info
Réflexions finales
Dans ce tutoriel, nous avons vu comment utiliser la commande kubectl pour gérer un cluster Kubernetes sur un système Linux. Il est essentiel pour les administrateurs d’apprendre à utiliser kubectl pour créer des déploiements, des pods et gérer des nœuds à partir de la ligne de commande. Il nous permet également d’inspecter les journaux et de voir l’état actuel du fonctionnement du cluster et de ses composants individuels à un moment donné.

