Partager via


Utiliser Azure Kubernetes Service sur Azure Stack Hub avec l’interface CLI

Cet article est un guide pour vous aider à utiliser le service Azure Kubernetes Service (AKS) sur Azure Stack Hub. Il décrit l’ensemble principal de scénarios pour vous familiariser avec AKS sur Azure Stack Hub. La fonctionnalité disponible dans Azure Stack Hub est un sous-ensemble de ce qui est disponible dans Azure global.

Dans les sections suivantes, vous devez :

  1. Remplissez les conditions préalables à l’utilisation d’AKS sur Azure Stack Hub.

  2. Effectuez les opérations de cycle de vie d’un cluster AKS à l’aide d’Azure CLI et du portail utilisateur Azure Stack Hub.

Installation de l’interface de ligne de commande Azure

Vous devez installer l'Azure CLI avec support AKS sur votre machine. Préparez une machine Linux ou Windows propre pour installer la préversion d’Azure CLI avec la prise en charge d’AKS. Vérifiez que l’interface Azure CLI n’est pas installée sur l’ordinateur pour éviter les conflits avec la préversion d’Azure CLI que vous installez ensuite. La plupart des instructions suivantes supposent que vous utilisez une machine virtuelle Linux, mais vous trouverez les étapes équivalentes dans Windows dans la documentation du produit.

Ne mettez pas à niveau Azure CLI après l'avoir installé avec le support AKS. Si vous effectuez une mise à niveau, elle est remplacée par la version prête pour la production qui ne prend pas en charge le support AKS.

Pour une machine Ubuntu, suivez les instructions de l’installation d’Azure CLI sur Linux.

Après avoir installé Azure CLI avec la prise en charge d’AKS, vérifiez que l’installation est correcte en exécutant la commande Azure CLI suivante :

    az --version

Voici un exemple de sortie d’une machine Linux :

sortie d’une machine Linux

Azure CLI doit être 2.28.0 ou version ultérieure.

Se connecter à Azure Stack Hub

  1. Connectez-vous à votre point de terminaison Azure Stack Hub. Vous devez utiliser Azure CLI pour établir l’environnement Azure Stack Hub spécifique auquel vous vous connectez. Vous trouverez les instructions à l’adresse Se connecter à Azure Stack Hub.

  2. Inscrivez votre environnement afin qu’Azure CLI puisse se connecter au point de terminaison Azure Stack Hub Resource Manager pour votre instance. Mettez à jour les URL dans l’extrait de code suivant et exécutez la commande suivante :

    az cloud register \
        -n aks-preview-test \
        --endpoint-resource-manager "https://management.redmond.xbx.nxn.microsoft.com" \
        --suffix-storage-endpoint "redmond.xbx.nxn.microsoft.com" \
        --suffix-keyvault-dns ".vault.redmond.xbx.nxn.microsoft.com"
    
  3. Définissez l’environnement actif.

    az cloud set -n aks-preview-test
    
  4. Mettez à jour la configuration de votre environnement.

    az cloud update --profile 2020-09-01-hybrid
    
  5. Connectez-vous à l’environnement.

    az login -u 'user@contoso.onmicrosoft.com' -p 'xxxxxxx' --tenant 'contoso.onmicrosoft.com'
    

    Remarque

    Si vous déclenchez une erreur de vérification de certificat ayant échoué , il se peut que le certificat utilisé pour le point de terminaison Azure Resource Manager ne soit pas approuvé par votre ordinateur client. Si c’est le cas, vous devez exporter le certificat utilisé dans les points de terminaison Azure Stack Hub et l’approuver. Vous trouverez des instructions dans Exporter le certificat racine de l’autorité de certification Azure Stack Hub.

    En particulier, pour les machines Linux, consultez : MICROSOFT Entra ID sur Linux

  6. Utilisez la commande suivante pour définir l’abonnement dans votre session Azure CLI comme valeur par défaut :

    az account set --subscription <subscription-id>
    
  7. Inscrivez le fournisseur de ressources Azure Kubernetes Service. Répertoriez les fournisseurs de ressources disponibles dans votre abonnement.

    az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
    

    La sortie doit ressembler à :

    La sortie doit ressembler à

  8. Notez le fournisseur de ressources Microsoft.ContainerService , puis inscrivez le fournisseur :

    az provider register --namespace Microsoft.ContainerService
    
  9. Réexécutez l’étape 7 pour vérifier l’état d’inscription du fournisseur de ressources. L’inscription peut prendre plusieurs minutes.

Une fois ces étapes préalables terminées, vous pouvez tester les scénarios suivants.

Créer un cluster AKS

Vous trouverez les instructions Azure globales sur Déployer un cluster Azure Kubernetes Service à l’aide d’Azure CLI. Les instructions fournies ici reflètent les limitations de l’utilisation d’AKS sur Azure Stack Hub. Vous pouvez utiliser Azure CLI pour créer un cluster AKS pour les conteneurs Linux ou Windows.

  1. Créez un groupe de ressources :

    az group create --name myResourceGroup --location <Azure Stack Hub location>
    
  2. Vérifiez que vous disposez d’un ID de principal de service prêt avec l’autorisation de contributeur sur votre abonnement pour y créer des clusters.

    1. Pour créer un principal de service (SPN) à l’aide de l’ID Microsoft Entra, suivez ces instructions.
    2. Pour créer un SPN à l’aide des services fédérés Active Directory (AD FS), suivez ces instructions.
    3. Pour affecter le rôle « Contributeur » au SPN, consultez les instructions. Veillez à sélectionner le rôle « Contributeur ».
  3. Créez un cluster AKS composé de trois nœuds agents. Fournissez des valeurs pour les paramètres suivants, des exemples sont fournis. Exécutez :

    az aks create \
    --resource-group myResourceGroup \
    --name myakscluster \
    --dns-name-prefix myakscluster \
    --nodepool-name mynodepool \
    --admin-username azureuser \
    --service-principal xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --node-count 3 \
    --generate-ssh-keys \
    --load-balancer-sku basic \
    --vm-set-type VirtualMachineScaleSets \
    --location <Azure Stack Hub location> \
    --kubernetes-version 1.20.7
    

    La sortie de cette opération est au format json et contient une spécification du cluster, y compris la clé publique SSH générée, le nom de domaine complet (FQDN) utilisé dans le cluster entre autres propriétés. Notez que la commande génère du texte comme celui-ci, mettant en surbrillance l’emplacement de la clé privée : SSH key files '/home/azureuser/.ssh/id_rsa' et '/home/azureuser/.ssh/id_rsa.pub' sont générés sous \~/.ssh pour autoriser l’accès SSH à la machine virtuelle. Stockez ces clés dans un emplacement sûr à utiliser si vous avez besoin de vous connecter à des machines virtuelles, comme c’est le cas lors de la résolution des problèmes.

  4. Vous pouvez maintenant répéter les tests de mise à l’échelle, déployer une application et supprimer.

Se connecter au cluster

  1. Pour gérer un cluster Kubernetes, vous utilisez kubectl, le client de ligne de commande Kubernetes. Pour installer kubectl localement, utilisez la az aks install-cli commande (vous devrez peut-être utiliser « sudo » au début pour avoir l’autorisation de l’installer) :

    az aks install-cli
    
  2. Pour configurer kubectl pour vous connecter à votre cluster Kubernetes, utilisez la az aks get-credentials commande. Cette commande télécharge les informations d’identification et configure l’interface CLI Kubernetes pour les utiliser.

    az aks get-credentials --resource-group myResourceGroup --name myakscluster --admin
    
  3. Pour vérifier la connexion à votre cluster, utilisez la commande kubectl get pour renvoyer une liste des nœuds de cluster.

    kubectl get nodes
    

    vérifier la connexion à votre cluster

Redimensionner le cluster

Une autre tâche de gestion de cluster consiste à mettre à l’échelle un cluster. Vous pouvez mettre à l’échelle un cluster à tout moment après sa création à l’aide de la az aks scale commande. Pour mettre à l’échelle le cluster à partir des trois nœuds initiaux à 4, exécutez :

    az aks scale --resource-group myResourceGroup --name myakscluster --node-count 4

Lorsque le cluster est correctement mis à l’échelle, la sortie contient un « agentPoolProfiles » similaire à l’exemple suivant :

    "agentPoolProfiles": [
        {
        "availabilityZones": null,
        "count": 4,
        "enableAutoScaling": null,
        "enableNodePublicIp": false,
        "maxCount": null,
        "maxPods": 110,
        "minCount": null,
        "mode": "System",
        "name": "mynodepool",
        "nodeLabels": {},
        "nodeTaints": null,
        "orchestratorVersion": "1.20.7",
        "osDiskSizeGb": 100,
        "osType": "Linux",
        "provisioningState": "Succeeded",
        "scaleSetEvictionPolicy": null,
        "scaleSetPriority": null,
        "spotMaxPrice": null,
        "tags": null,
        "type": "VirtualMachineScaleSets",
        "vmSize": " Standard_DS2_v2",
        "vnetSubnetId": null
        }
    ]

Supprimer un cluster

Une fois les opérations précédentes effectuées, vous pouvez supprimer le cluster. Exécutez :

az aks delete --name myakscluster --resource-group myResourceGroup

Créer un cluster AKS avec un réseau virtuel personnalisé

La création d’un cluster à déployer dans un réseau fourni par l’utilisateur est un scénario courant. La planification de la configuration du réseau prend une certaine préparation. Notez également que, avec AKS, le plug-in réseau par défaut est Azure CNI, et non Kubenet comme c’est le cas avec le moteur AKS.

Avec Azure CNI, chaque pod obtient une adresse IP à partir du sous-réseau et est accessible directement (sans avoir besoin d’une table de routage, comme c’est le cas avec Kubenet). Ces adresses IP doivent être uniques sur votre espace réseau et doivent être planifiées.

L’article suivant vous guide tout au long du processus de planification de votre déploiement de réseau virtuel personnalisé. Vous pouvez trouver différentes configurations réseau qui fonctionnent pour vos besoins et les tester. Pour un test initial, les deux étapes suivantes vous montrent le processus de base :

  1. Suivez les instructions de cet article pour planifier le déploiement à l’aide d’Azure CNI. Par exemple, vous pouvez utiliser le portail pour créer un réseau virtuel nommé « myAKSVnet » avec une plage d’adresses IP 10.0.0.0/8 avec le sous-réseau « myAKSSubnet » et la plage IP 10.240.0.0/16 dans un groupe de ressources nommé « myTest-rg ». Utilisez ensuite l’étape suivante pour la création du cluster.

    az network vnet create \
        --resource-group myTest-rg \
        --name myAKSVnet \
        --address-prefixes 10.0.0.0/8 \
        --subnet-name myAKSSubnet \
        --subnet-prefix 10.240.0.0/16    
    
  2. Notez que la commande de cluster fournie dans l’article Azure fonctionne correctement lors du déploiement sur Azure, pour effectuer un déploiement sur Azure Stack Hub, vous devez spécifier des paramètres supplémentaires comme dans l’exemple suivant. L’ID de sous-réseau du réseau virtuel doit ressembler à '/subscriptions/dfdfdff-5dfdf-dfdf-dfdf-dfdfdfdfdfd/resourceGroups/myTest-rg/providers/Microsoft.Network/virtualNetworks/myAKSVnet/subnets/myAKSSubnet' :

    az aks create  \ 
    --resource-group myTest-rg \
    --name aksvnet \
    --dns-name-prefix  aksvnet \
    --nodepool-name mynodepool \
    --admin-username azureuser \
    --service-principal xvxvxvxvx-ffff-ffff-xvxvxvx-8xbxbxbx8  \
    --client-secret dccbcbcbcbcbcbcbcbbcbcbcbcbcbcbc-LNX \
    --node-count 3 \
    --generate-ssh-keys \
    --load-balancer-sku basic \
    --vm-set-type VirtualMachineScaleSets \
    --network-plugin azure \
    --vnet-subnet-id '<subnet-resource-id>' \
    --skip-subnet-role-assignment \
    --docker-bridge-address 172.17.0.1/16 \
    --dns-service-ip 10.0.0.10 \
    --location redmond
    
  3. Suivez les instructions de la section « Se connecter au cluster » pour vous connecter au cluster Kubernetes et déployer vos applications.

Vérification de cohérence

Vérification de cohérence entre Azure et Azure Stack Hub

  1. Sélectionnez une combinaison de commandes à partir des commandes testées ci-dessus, dans la section « Référence des commandes » ou dans vos propres scripts quotidiens.

  2. Appliquez-les à Azure et ultérieurement à Azure Stack Hub. Notez les écarts non attendus et fournissez des commentaires.

Étapes suivantes