Se connecter au cluster Kubernetes Azure Operator Nexus
Tout au long du cycle de vie de votre cluster Azure Operator Nexus Kubernetes, vous pourriez être amené à accéder directement à un nœud de cluster. que ce soit pour effectuer une tâche de maintenance, une collecte de journaux ou des opérations de dépannage. Vous accédez à un nœud par le biais de l’authentification, dont les méthodes varient en fonction de votre méthode de connexion. Vous vous authentifiez en toute sécurité auprès des nœuds de cluster par le biais de deux options décrites dans cet article. Pour des raisons de sécurité, les nœuds de cluster ne sont pas exposés à Internet. Au lieu de cela, pour vous connecter directement à des nœuds de cluster, vous devez utiliser kubectl debug
ou l’adresse IP de l’hôte depuis une jumpbox.
Prérequis
- Un cluster Azure Operator Nexus Kubernetes déployé dans un groupe de ressources de votre abonnement Azure.
- Clé privée SSH pour les nœuds de cluster.
- Pour faire un SSH à l’aide de l’adresse IP du nœud, vous devez déployer une machine virtuelle jumpbox sur le même CNI (Container Network Interface) que les nœuds de cluster.
Accès aux nœuds de cluster via Azure Arc pour serveurs
La commande az ssh arc
permet aux utilisateurs d’accéder à distance à une machine virtuelle de cluster connectée à Azure Arc. Cette méthode est un moyen sécurisé de connecter SSH dans le nœud de cluster directement à partir de la ligne de commande, ce qui en fait une méthode rapide et efficace pour la gestion à distance.
Remarque
Les nœuds de cluster d’Operator Nexus Kubernetes sont des serveurs connectés par défaut à Arc.
Définir les variables nécessaires. Remplacez les espaces réservés par les valeurs réelles pertinentes pour votre environnement Azure et votre cluster Nexus Kubernetes.
RESOURCE_GROUP="myResourceGroup" # Resource group where the Nexus Kubernetes cluster is deployed CLUSTER_NAME="myNexusK8sCluster" # Name of the Nexus Kubernetes cluster SUBSCRIPTION_ID="<Subscription ID>" # Azure subscription ID ADMIN_USERNAME="azureuser" # Username for the cluster administrator (--admin-username parameter value used during cluster creation) SSH_PRIVATE_KEY_FILE="<vm_ssh_id_rsa>" # Path to the SSH private key file MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID --output tsv --query managedResourceGroupConfiguration.name)
Obtenir les noms des nœuds de cluster disponibles.
az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[].name'
Exemple de sortie :
"mynexusk8scluster-0b32128d-agentpool1-md-7h9t4" "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs" "mynexusk8scluster-0b32128d-control-plane-qq5jm"
Définissez le nom du nœud de cluster par la variable VM_NAME.
VM_NAME="mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
Exécutez la commande suivante pour vous connecter en SSH au nœud de cluster.
az ssh arc --subscription $SUBSCRIPTION_ID \ --resource-group $MANAGED_RESOURCE_GROUP \ --name $VM_NAME \ --local-user $ADMIN_USERNAME \ --private-key-file $SSH_PRIVATE_KEY_FILE
Accéder aux nœuds à l’aide de l’API Kubernetes
Cette méthode nécessite l’utilisation de la commande kubectl debug
. Cette méthode est limitée aux conteneurs et peut ne pas détecter des problèmes système plus importants, contrairement à SSH (à l’aide de « az ssh arc » ou d’une adresse IP directe), qui propose un accès au nœud et un contrôle complets.
Accès à l’API Kubernetes via Azure Arc pour Kubernetes
Remarque
Lorsque vous créez un cluster Kubernetes Nexus, Nexus crée automatiquement un groupe de ressources managé dédié au stockage des ressources de cluster. Au sein de ce groupe, la ressource de cluster connectée à Arc est établie.
Pour accéder à votre cluster, vous devez configurer le paramètre kubeconfig
de connexion au cluster. Après la connexion à Azure CLI avec l’entité Microsoft Entra appropriée, vous pouvez obtenir le paramètre kubeconfig
nécessaire pour communiquer avec le cluster n’importe où, même en dehors du pare-feu qui l’entoure.
Définissez les variables
CLUSTER_NAME
,RESOURCE_GROUP
etSUBSCRIPTION_ID
.CLUSTER_NAME="myNexusK8sCluster" RESOURCE_GROUP="myResourceGroup" SUBSCRIPTION_ID=<set the correct subscription_id>
Interroger un groupe de ressources managé avec
az
, puis stocker dansMANAGED_RESOURCE_GROUP
az account set -s $SUBSCRIPTION_ID MANAGED_RESOURCE_GROUP=$(az networkcloud kubernetescluster show -n $CLUSTER_NAME -g $RESOURCE_GROUP --output tsv --query managedResourceGroupConfiguration.name)
La commande suivante démarre un proxy connectedk8s qui vous permet de vous connecter au serveur d’API Kubernetes du cluster Nexus Kubernetes spécifié.
az connectedk8s proxy -n $CLUSTER_NAME -g $MANAGED_RESOURCE_GROUP &
Utilisez
kubectl
pour envoyer les requêtes au cluster :kubectl get pods -A
Une réponse du cluster contenant la liste de tous les nœuds doit maintenant s’afficher.
Notes
Si le message d’erreur « Nous n’avons pas pu publier le jeton d’accès dans le proxy client. Nous n’avons pas pu nous connecter à MSI » s’affiche, vous devrez peut-être effectuer une opération az login
pour vous authentifier de nouveau auprès d’Azure.
Accès aux nœuds de cluster via Azure Arc pour Kubernetes
Une fois que vous êtes connecté(e) à un cluster via Arc pour Kubernetes, vous pouvez vous connecter à un nœud Kubernetes individuel en utilisant la commande kubectl debug
pour exécuter un conteneur privilégié sur votre nœud.
Répertoriez les nœuds de votre cluster Nexus Kubernetes :
$> kubectl get nodes NAME STATUS ROLES AGE VERSION mynexusk8scluster-0b32128d-agentpool1-md-7h9t4 Ready <none> 125m v1.24.9 mynexusk8scluster-0b32128d-agentpool1-md-c6xbs Ready <none> 125m v1.24.9 mynexusk8scluster-0b32128d-control-plane-qq5jm Ready <none> 124m v1.24.9
Démarrer un conteneur privilégié sur votre nœud et vous y connecter :
$> kubectl debug node/mynexusk8scluster-0b32128d-agentpool1-md-7h9t4 -it --image=mcr.microsoft.com/cbl-mariner/base/core:2.0 Creating debugging pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg with container debugger on node mynexusk8scluster-0b32128d-agentpool1-md-7h9t4. If you don't see a command prompt, try pressing enter. root [ / ]#
Ce conteneur privilégié donne accès au nœud. Exécutez des commandes sur le nœud de cluster en exécutant
chroot /host
sur la ligne de commande.Lorsque vous avez terminé avec un pod de débogage, saisissez la commande
exit
pour mettre fin à la session d’interpréteur de commandes interactive. Après avoir quitté le shell, assurez-vous de supprimer le pod :kubectl delete pod node-debugger-mynexusk8scluster-0b32128d-agentpool1-md-7h9t4-694gg
Créer une connexion interactive d’interpréteur de commandes à un nœud à l’aide de l’adresse IP
Se connecter au nœud de cluster à partir de la jumpbox Azure
Une autre option pour se connecter en toute sécurité à un nœud de cluster Azure Operator Nexus Kubernetes consiste à configurer un accès direct au réseau CNI du cluster depuis la machine virtuelle jumpbox Azure. À l’aide de cette approche, vous pouvez connecter SSH aux nœuds de cluster, également exécuter des commandes kubectl
sur le cluster à l’aide du fichier kubeconfig
.
Contactez votre administrateur réseau pour configurer cette connexion directe de la machine virtuelle jumpbox Azure au réseau CNI du cluster.
Se connecter au nœud de cluster à partir d’une jumpbox locale
Établissez un accès direct au CNI (Container Network Interface) du cluster à partir de votre jumpbox locale. Cet accès direct vous permet d’accéder à SSH dans les nœuds de cluster et vous permet d’exécuter des commandes kubectl
à l’aide du fichier kubeconfig
.
Contactez votre administrateur réseau pour configurer cette connexion directe au réseau CNI du cluster.
Adresse IP des nœuds de la grappe
Avant de pouvoir vous connecter aux nœuds du cluster, vous devez trouver l’adresse IP des nœuds. L’adresse IP des nœuds est disponible à l’aide du portail Azure ou d’Azure CLI.
Utilisation de l’interface de ligne de commande Microsoft Azure
Définissez les variables RESOURCE_GROUP, CLUSTER_NAME et SUBSCRIPTION_ID pour qu’elles correspondent à votre environnement.
RESOURCE_GROUP="myResourceGroup" CLUSTER_NAME="myNexusK8sCluster" SUBSCRIPTION_ID="<Subscription ID>"
Exécutez la commande suivante pour obtenir l’adresse IP des nœuds.
az networkcloud kubernetescluster show --name $CLUSTER_NAME --resource-group $RESOURCE_GROUP --subscription $SUBSCRIPTION_ID -o json | jq '.nodes[] | select(any(.networkAttachments[]; .networkAttachmentName == "defaultcni")) | {name: .name, ipv4Address: (.networkAttachments[] | select(.networkAttachmentName == "defaultcni").ipv4Address)}'
Voici l’échantillon de sortie de la commande.
{ "name": "mynexusk8scluster-0b32128d-agentpool1-md-7h9t4", "ipv4Address": "10.5.54.47" } { "name": "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs", "ipv4Address": "10.5.54.48" } { "name": "mynexusk8scluster-0b32128d-control-plane-qq5jm", "ipv4Address": "10.5.54.46" }
Utilisation du portail Azure
Pour rechercher l’adresse IP de la machine virtuelle pour SSH, procédez comme suit :
- Accédez au portail Azure et connectez-vous avec votre nom d’utilisateur et votre mot de passe.
- Tapez « Cluster Kubernetes (Opérateur Nexus) » dans la zone de recherche et sélectionnez le service « Cluster Kubernetes » dans la liste des résultats.
- Recherchez la ressource « Cluster Kubernetes Nexus » spécifique dont vous avez besoin pour utiliser la recherche.
- Une fois que vous avez trouvé la bonne ressource en faisant correspondre son nom au nom du cluster, sélectionnez la ressource pour accéder à la page d’accueil « Cluster Kubernetes ».
- Une fois que vous avez trouvé la bonne ressource en faisant correspondre son nom avec le nom du cluster, allez dans la section « Kubernetes Cluster Nodes » dans le menu de gauche.
- Sélectionnez le nom du nœud Kubernetes qui vous intéresse pour afficher ses détails.
- Cochez l’onglet « Réseaux attachés » pour rechercher l’adresse IP du réseau « Couche 3 » du nœud utilisé comme réseau CNI.
Étapes suivantes
Essayez les articles suivants pour en savoir plus sur le cluster Kubernetes Azure Operator Nexus.