Configurer l'accès au cluster pour kubectl

Cette page explique comment configurer l'accès au cluster pour la ligne de commande kubectl pour GKE sur AWS.

Présentation

Pour accéder à GKE sur AWS, vous devez configurer kubectl. Vous pouvez définir un cluster par défaut pour kubectl en définissant le contexte actuel dans le fichier kubeconfig de Kubernetes. Vous pouvez également exécuter des commandes kubectl sur un cluster spécifique à l'aide de l'option --cluster.

Pour plus d'informations sur kubeconfig et les points de terminaison de cluster, consultez la section À propos de Kubeconfig.

Avant de commencer

Si vous utilisez la passerelle Connect pour l'accès kubectl, vous devez accorder aux administrateurs qui ne sont pas propriétaires du projet les rôles IAM décrits dans Utiliser kubectl avec l'identité de la gcloud CLI.

Vérifier le fichier kubeconfig actuel

Cette section explique comment vérifier votre fichier kubeconfig actuel.

Afficher les contextes kubeconfig

Pour afficher le fichier kubeconfig de votre environnement et tous les contextes qu'il contient, exécutez la commande suivante :

kubectl config view

La commande renvoie la liste des clusters pour lesquels des entrées kubeconfig ont été générées. Si un cluster GKE sur AWS est répertorié, vous pouvez y exécuter des commandes kubectl dans votre environnement actuel. Sinon, vous devez générer une entrée kubeconfig pour le cluster.

Afficher le contexte actuel pour kubectl

Pour afficher le contexte actuel utilisé par l'outil de ligne de commande kubectl, exécutez la commande suivante :

kubectl config current-context

kubectl renvoie le nom du contexte actuel.

Générer une entrée kubeconfig

Pour exécuter des commandes kubectl sur des clusters GKE, vous devez générer une entrée kubeconfig. La façon dont vous générez un kubeconfig dépend de la manière dont vous souhaitez vous connecter au cluster. Nous vous recommandons d'utiliser la passerelle Connect. Si vous souhaitez vous connecter via un point de terminaison privé, vous devez disposer d'une connexion et d'un routage vers le point de terminaison du plan de contrôle dans votre cloud privé virtuel AWS. L'outil kube-apiserver du cluster fait partie du plan de contrôle. Pour envoyer des requêtes directement au point de terminaison privé, vous devrez peut-être étendre les règles de pare-feu. Pour en savoir plus sur la connexion au plan de contrôle, consultez la page Groupes de sécurité AWS.

La passerelle Connect

gcloud container aws clusters get-credentials CLUSTER_NAME \
  --location GOOGLE_CLOUD_LOCATION

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster
  • GOOGLE_CLOUD_LOCATION : région ou zone Google Cloud dans laquelle GKE sur AWS est géré

Point de terminaison privé

Pour vous connecter au point de terminaison privé, vous devez disposer d'une connectivité au plan de contrôle du cluster. Consultez la section Se connecter au plan de contrôle de votre cluster.

gcloud container aws clusters get-credentials CLUSTER_NAME \
  --location GOOGLE_CLOUD_LOCATION \
  --private-endpoint

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster
  • GOOGLE_CLOUD_LOCATION : région ou zone Google Cloud dans laquelle GKE sur AWS est géré

Travailler avec plusieurs clusters

Cette section explique comment utiliser kubectl avec plusieurs clusters GKE.

Définir un cluster par défaut pour les commandes kubectl

Vous pouvez basculer le contexte actuel de kubectl vers ce cluster en exécutant la commande suivante :

gcloud container aws clusters get-credentials CLUSTER_NAME \
  --location GOOGLE_CLOUD_LOCATION \

Remplacez les éléments suivants :

  • CLUSTER_NAME : nom du cluster
  • GOOGLE_CLOUD_LOCATION : région ou zone Google Cloud dans laquelle GKE sur AWS est géré

Par exemple, imaginons un projet avec deux clusters, cluster-1 et cluster-2. Le contexte actuel est cluster-2. Pour faire passer le contexte actuel de cluster-2 à cluster-1, exécutez la commande suivante :

gcloud container aws clusters get-credentials cluster-1 \
  --location GOOGLE_CLOUD_LOCATION

Exécuter des commandes kubectl individuelles sur un cluster spécifique

Vous pouvez exécuter des commandes kubectl individuelles sur un cluster spécifique en transmettant le nom du cluster tel qu'il apparaît dans kubeconfig en tant qu'argument de l'option --cluster.

Par exemple, imaginons un environnement avec deux clusters, cluster-1 et cluster-2, dans lequel le contexte actuel est cluster-1. Vous ne souhaitez pas modifier le contexte actuel. Pour obtenir la liste des objets du pod sur cluster-2 sans modifier le contexte actuel, exécutez la commande suivante :

kubectl get pod --cluster cluster-2