À propos de Kubeconfig

Fichier de configuration Kubernetes

Kubernetes se sert d'un fichier YAML appelé kubeconfig pour stocker les informations d'authentification de cluster pour kubectl. kubeconfig contient la liste des contextes auxquels kubectl fait référence lors de l'exécution de commandes. Par défaut, le fichier est enregistré sous $HOME/.kube/config.

Un contexte est un groupe de paramètres d'accès. Chaque contexte contient un cluster Kubernetes, un utilisateur et un espace de noms. Le contexte actuel est le cluster par défaut actuel de kubectl : toutes les commandes kubectl s'exécutent sur ce cluster.

Après avoir créé un cluster, suivez les instructions de la section Générer une entrée kubeconfig pour ajouter le contexte du cluster à votre fichier kubeconfig local.

Points de terminaison privés

Tous les clusters possèdent un point de terminaison canonique. Le point de terminaison expose le serveur d'API Kubernetes utilisé par kubectl et d'autres services pour communiquer avec votre plan de contrôle de cluster via le port TCP 443. Sur Azure, ce point de terminaison est une adresse IP privée unique reposant sur un équilibreur de charge interne, par exemple 10.0.1.5. Ce point de terminaison n'est pas accessible depuis l'Internet public. Vous pouvez obtenir l'adresse du point de terminaison du cluster privé à partir du champ endpoint dans le résultat de la commande gcloud container azure clusters describe.

Connecter le point de terminaison de passerelle

Par défaut, la commande gcloud container azure clusters get-credentials génère un fichier kubeconfig qui utilise la passerelle Connect. Avec cette kubeconfig, kubectl utilise Connect, qui transfère ensuite de manière sécurisée le trafic vers le point de terminaison privé en votre nom. Lorsque vous utilisez la passerelle Connect, le point de terminaison ressemble à https://connectgateway.googleapis.com/v1/projects/PROJECT_NUMBER/memberships/CLUSTER_NAME, où PROJECT_NUMBER est le numéro de votre projet et CLUSTER_NAME est le nom de votre cluster.

Si vous avez accès au point de terminaison privé de votre cluster via votre VNet, vous pouvez vous connecter directement au point de terminaison privé. Pour générer un kubeconfig à l'aide du point de terminaison privé, exécutez la commande gcloud container azure clusters get-credentials --private-endpoint.

À propos de l'authentification pour kubectl

Tous les clusters de GKE sur Azure sont configurés pour accepter les identités de compte de service et de compte utilisateur Google Cloud, en validant les identifiants présentés par kubectl et en récupérant l'adresse e-mail associée à l'identité d'un utilisateur ou d'un compte de service. Par conséquent, les identifiants de ces comptes doivent inclure le champ d'application OAuth de userinfo.email afin de s'authentifier avec succès.

Lorsque vous utilisez gcloud pour configurer le fichier kubeconfig de votre environnement pour un nouveau cluster ou pour un cluster existant, gcloud fournit à kubectl les mêmes identifiants que ceux utilisés par gcloud. Par exemple, si vous utilisez la commande gcloud auth login, vos identifiants personnels sont fournis à kubectl, y compris le champ d'application userinfo.email. Cela permet à GKE sur Azure d'authentifier le client kubectl.

Une fois authentifiés, les comptes utilisateur ou de service Google Cloud doivent également être autorisés à effectuer des actions sur un cluster GKE sur Azure. L'administrateur du cluster est chargé de mettre en place le contrôle des accès basé sur les rôles approprié pour configurer l'autorisation.