Partager via


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.

  1. 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)
    
  2. 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'
    
  3. Exemple de sortie :

    "mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
    "mynexusk8scluster-0b32128d-agentpool1-md-c6xbs"
    "mynexusk8scluster-0b32128d-control-plane-qq5jm"
    
  4. Définissez le nom du nœud de cluster par la variable VM_NAME.

    VM_NAME="mynexusk8scluster-0b32128d-agentpool1-md-7h9t4"
    
  5. 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.

  1. Définissez les variables CLUSTER_NAME, RESOURCE_GROUP et SUBSCRIPTION_ID.

    CLUSTER_NAME="myNexusK8sCluster"
    RESOURCE_GROUP="myResourceGroup"
    SUBSCRIPTION_ID=<set the correct subscription_id>
    
  2. Interroger un groupe de ressources managé avec az, puis stocker dans MANAGED_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)
    
  3. 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 &
    
  4. 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.

  1. 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
    
  2. 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.

  3. 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

  1. 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>"
    
  2. 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)}'
    
  3. 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 :

  1. Accédez au portail Azure et connectez-vous avec votre nom d’utilisateur et votre mot de passe.
  2. Tapez « Cluster Kubernetes (Opérateur Nexus) » dans la zone de recherche et sélectionnez le service « Cluster Kubernetes » dans la liste des résultats.

Capture d’écran de la navigation du service Nexus Kubernetes.

  1. Recherchez la ressource « Cluster Kubernetes Nexus » spécifique dont vous avez besoin pour utiliser la recherche.

Capture d’écran de la navigation du cluster Nexus Kubernetes.

  1. 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 ».

Capture d’écran de la page d’accueil du cluster Nexus Kubernetes.

  1. 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.

Capture d’écran de la navigation des nœuds de cluster Nexus Kubernetes.

  1. Sélectionnez le nom du nœud Kubernetes qui vous intéresse pour afficher ses détails.
  2. 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.

Capture d’écran de la navigation des réseaux de nœuds de cluster Nexus Kubernetes.

Étapes suivantes

Essayez les articles suivants pour en savoir plus sur le cluster Kubernetes Azure Operator Nexus.