Comment simplifier la gestion de Kubernetes avec les contextes Kubectl

0
145

Les contextes Kubectl sont un mécanisme permettant de basculer rapidement entre différents clusters, utilisateurs et espaces de noms au sein de la CLI. Ils facilitent le déplacement entre plusieurs environnements sans modifier votre fichier de configuration Kubectl actif.

Dans cet article, nous allons montrer comment vous pouvez utiliser Kubectl pour créer, gérer et sélectionner différents contextes. Assurez-vous que Kubectl est installé avant de continuer.

Qu'est-ce qu'un contexte ?

Les contextes encapsulent la collection de paramètres qui permettent une connexion réussie à un cluster Kubernetes. Un contexte peut inclure l'URL du cluster, un ensemble d'informations d'identification utilisateur et l'espace de noms à cibler par défaut.

En l'absence de contextes, les environnements Kubernetes uniques sont souvent gérés en créant un fichier de configuration distinct pour chacun. Vous utilisez ensuite l'indicateur –kubeconfig ou la variable d'environnement KUBECONFIG pour charger le bon fichier à chaque fois que vous utilisez Kubectl :

$ export KUBECONFIG=.kube/cluster-1-user-1.yaml $ kubectl get pods

Les contextes vous permettent de condenser les détails de tous vos environnements dans un seul fichier de configuration. Vous pouvez utiliser le .kube/config par défaut pour chacun de vos clusters, en éliminant les drapeaux CLI et les variables d'environnement. Kubectl inclut des commandes pour basculer son contexte actif entre les options que vous avez créées.

Préparer les contextes

Les contextes sont gérés à l'aide du groupe de commandes kubectl config. Comme pour tout le reste dans Kubectl, votre liste de contextes disponibles sera chargée et enregistrée dans votre fichier de configuration actif. Ceci est déterminé par KUBECONFIG, –kubeconfig ou le .kube/config par défaut.

Pour commencer à utiliser les contextes, vous devez ajouter quelques clusters et informations d'identification à votre fichier de configuration. Vous pouvez utiliser d'autres commandes de configuration kubectl pour les configurer :

# Créez deux connexions de cluster, qa et prod $ kubectl set-cluster qa –server=https://192.168.0.1 –insecure-skip-tls-verify $ kubectl set-cluster prod –server=https://192.168 .0.2 –insecure-skip-tls-verify # Créer deux paires d'informations d'identification $ kubectl set-credentials qa-user –username=demo –password=demoP@ss_qa $ kubectl set-credentials prod-user –username=demo password =demoP@ss_prod

Maintenant, votre fichier de configuration contient les détails de connexion pour deux clusters Kubernetes distincts. Il contient également deux paires d'informations d'identification. Nous allons ensuite créer un contexte pour lier les clusters à leurs informations d'identification respectives. Vous pourrez ensuite utiliser une commande Kubectl pour passer de l'environnement QA à l'environnement de production.

Création d'un contexte

Le kubectl La commande config set-context ajoute de nouveaux contextes à votre fichier de configuration. Vous devez spécifier un nom pour votre contexte. Utilisez les indicateurs de la commande pour référencer un cluster et un compte d'utilisateur précédemment ajoutés.

# Créer des contextes pour les clusters ajoutés précédemment $ kubectl config set-context qa-context –cluster=qa –user=qa-user $ kubectl config set-context prod-context –cluster=prod –user=prod-user

À ce stade, vous pouvez exécuter la commande kubectl config view pour inspecter toutes les modifications apportées à votre fichier de configuration :

apiVersion : v1 kind : Config current-context : "" clusters : – cluster : nom : serveur qa : https://192.168.0.1 insecure-skip-tls-verify : true – cluster : nom : serveur prod : https://192.168.0.2 insecure-skip-tls-verify : true contextes : – contexte : nom : cluster qa-context : utilisateur qa : utilisateur qa – contexte : nom : cluster prod-context : utilisateur prod : utilisateurs prod-user : – nom : utilisateur qa-user : nom d'utilisateur : demo mot de passe : demoP @ss_qa – nom : prod-user utilisateur : nom d'utilisateur : demo mot de passe : demoP@ss_prod

Les définitions de contexte pointent vers d'autres types d'objets définis ailleurs dans le fichier de configuration.

Sélectionner et utiliser des contextes

Les contextes sont sélectionnés avec la commande kubectl context use-context :

$ kubectl context use-context qa-context

Le nom du contexte actif est stocké en tant que valeur du champ current-context dans votre fichier de configuration Kubectl. Toutes les commandes Kubectl cibleront le cluster référencé par le contexte sélectionné.

# Se connecte au cluster https://192.168.0.1 en tant que demo:demoP@ss_qa $ kubectl get pods # Bascule le contexte actif $ kubectl config use-context prod-context # Se connecte au cluster https://192.168.0.2 en tant que demo:demoP@ss_prod $ kubectl get pods

La possibilité de changer rapidement l'environnement cible dans Kubectl vous aide à vous déplacer entre les clusters sans être submergé par les indicateurs de configuration.

Étant donné que le contexte sélectionné persiste jusqu'à ce qu'un autre soit sélectionné, vous devez vérifier que Kubectl cible l'environnement que vous attendez avant d'exécuter des commandes destructives. Utilisez la commande current-context pour voir le nom du contexte sélectionné :

$ kubectl config current-context prod-context

Vous pouvez afficher tous les contextes dans votre fichier de configuration actuellement chargé avec get-contexts :

$ kubectl config get-contexts CURRENT NAME CLUSTER AUTHINFO NAMESPACE qa-context qa qa-user * prod-context prod prod-user

Inclusion d'informations d'espace de noms avec des contextes

Jusqu'à présent, nous avons utilisé des contextes pour sélectionner un cluster et un compte utilisateur. Les contextes peuvent également inclure des informations d'espace de noms. Lorsqu'un contexte a un espace de noms attribué, les commandes Kubectl incluront automatiquement l'indicateur –namespace. Vous pouvez toujours utiliser –namespace manuellement pour remplacer l'espace de noms défini par le contexte.

$ kubectl config set-context production-api –cluster=prod –user=prod-user –namespace api $ kubectl config use -context production-api # Récupère les pods dans l'espace de noms “api” au sein du cluster “prod” $ kubectl get pods

Il n'y a pas de limite au nombre de contextes que vous pouvez avoir. Les clusters peuvent apparaître dans plusieurs contextes, ce qui vous permet de définir des contextes distincts pour chacun de vos espaces de noms importants. Cela évite la répétition de l'indicateur –namespace lorsque vous inspectez différentes ressources dans votre cluster.

Renommer et supprimer des contextes

Renommer les contextes à l'aide la commande rename-context :

$ kubectl config rename-context qa-context testing-context

Pour supprimer un contexte, passez son nom à la commande delete-context :

$ kubectl config delete-context contexte de test

Le cluster, l'utilisateur et l'espace de noms référencés par un contexte sont modifiés en répétant la commande set-context avec le même nom de contexte. Vous pouvez également apporter des modifications en modifiant manuellement votre fichier de configuration Kubectl.

Rendre le changement de contexte encore plus facile

Kubectl’s la gestion de contexte intégrée peut être suffisante lorsque vous changez de cluster de manière relativement peu fréquente. Cependant, si vous changez constamment de cluster tout au long de la journée, la commande relativement détaillée use-context peut commencer à se répéter.

Kubectx est un plugin Kubectl qui peut rendre les changements de contexte encore plus faciles. Il raccourcit le contexte d'utilisation et ajoute quelques fonctionnalités supplémentaires :

# Équivalent à “kubectl config use-context prod-context” $ kubectx prod-context

Selon votre flux de travail, vous voudrez peut-être continuer à utiliser plusieurs Fichiers de configuration Kubectl également. Vous pouvez utiliser des alias de shell et des variables d'environnement par défaut pour configurer un flux de travail personnalisé qui sélectionne automatiquement un fichier de configuration et un contexte pour chaque nouvelle fenêtre de terminal.

Résumé

Les contextes Kubectl sont un moyen d'encapsuler plusieurs connexions de cluster logique dans un seul fichier de configuration. Chaque contexte se voit attribuer une URL de cluster, un compte d'utilisateur et un espace de noms. Les commandes Kubectl cibleront le cluster du contexte sélectionné à l'aide des informations d'identification référencées.

Vous pouvez configurer des contextes avec kubectl config set-context ou en modifiant manuellement votre fichier .kube/config. Kubectl inclut également des commandes pour gérer les connexions de cluster nommées et les comptes d'utilisateurs que vous pouvez référencer dans vos contextes.

LIRE LA SUITE

  • › Les 10 meilleurs films originaux de Netflix en 2022
  • › T-Mobile vend votre activité d'application : voici comment vous désinscrire
  • › "Atari était très, très dur" Nolan Bushnell sur Atari, 50 ans plus tard
  • &rsaquo ; Combien coûte la recharge d'une batterie ?
  • &rsaquo ; Examen de la carte de capture NZXT Signal 4K30 : images de haute qualité sans perte
  • &rsaquo ; Un monde sans fils : 25 ans de Wi-Fi