Tutoriel : Déployer un cluster de charge de travail sur AKS activé par Arc

S’applique à : AKS sur Azure Stack HCI 22H2, AKS sur Windows Server

Kubernetes fournit une plateforme distribuée destinée aux applications en conteneur.

Dans ce didacticiel, troisième sur sept, un cluster Kubernetes est déployé sur AKS sur Azure Stack HCI. Vous découvrirez comment effectuer les actions suivantes :

  • Déployer un cluster AKS sur Azure Stack HCI
  • Installer l’interface de ligne de commande Kubernetes (kubectl)
  • Configurer kubectl pour vous connecter à votre cluster de charge de travail

Dans les tutoriels ultérieurs, l’application Azure Vote est déployée sur le cluster, mise à l’échelle et mise à jour.

Avant de commencer

Dans les tutoriels précédents, une image conteneur a été créée et chargée dans une instance Azure Container Registry. Si vous n’avez pas effectué ces étapes, commencez par le Tutoriel 1 : Créer des images conteneur.

Ce tutoriel utilise le module PowerShell AksHci.

Suivez ces étapes sur tous les nœuds de votre cluster Azure Stack HCI ou cluster Windows Server :

Notes

Si vous utilisez Remote PowerShell, vous devez utiliser CredSSP.

  1. Fermez toutes les fenêtres PowerShell ouvertes, ouvrez une nouvelle session PowerShell en tant qu’administrateur et exécutez la commande suivante sur tous les nœuds de votre cluster Azure Stack HCI ou Windows Server :

    Install-PackageProvider -Name NuGet -Force 
    Install-Module -Name PowershellGet -Force -Confirm:$false
    

    Vous devez fermer toutes les fenêtres PowerShell existantes pour que les modules chargés soient actualisés. Ne passez pas à l’étape suivante tant que vous n’avez pas fermé toutes les fenêtres PowerShell ouvertes.

  2. Installez le module PowerShell AKS-HCI en exécutant la commande suivante sur tous les nœuds de votre cluster Azure Stack HCI ou Windows Server :

    Install-Module -Name AksHci -Repository PSGallery -Force -AcceptLicense
    

    Vous devez fermer toutes les fenêtres PowerShell existantes pour que les modules chargés soient actualisés. Ne passez pas à l’étape suivante tant que vous n’avez pas fermé toutes les fenêtres PowerShell ouvertes.

Vous pouvez utiliser un script d’assistance pour supprimer d’anciens modules PowerShell AKS-HCI, afin d’éviter tout problème lié à la version de PowerShell dans votre déploiement AKS.

Valider votre installation

Get-Command -Module AksHci

Pour voir la liste complète des commandes AksHci PowerShell, consultez AksHci PowerShell.

Installer l’hôte Azure Kubernetes Service

Tout d’abord, configurez vos paramètres d’inscription.

Set-AksHciRegistration -subscription mysubscription -resourceGroupName myresourcegroup

Vous devez personnaliser ces valeurs en fonction de votre abonnement Azure et du nom de votre groupe de ressources.

Ensuite, exécutez la commande suivante pour vous assurer que toutes les conditions requises sur chaque nœud physique sont remplies pour installer AKS sur Azure Stack HCI :

Initialize-AksHciNode

Ensuite, créez un réseau virtuel. Vous aurez besoin des noms de vos commutateurs externes disponibles :

Get-VMSwitch

Exemple de sortie :

Name        SwitchType    NetAdapterInterfaceDescription
----        ----------    ------------------------------
extSwitch   External      Mellanox ConnectX-3 Pro Ethernet Adapter

Exécutez la commande suivante pour créer un réseau virtuel avec une adresse IP statique :

$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -macPoolName myMacPool -k8sNodeIpPoolStart "172.16.10.0" -k8sNodeIpPoolEnd "172.16.10.255" -vipPoolStart "172.16.255.0" -vipPoolEnd "172.16.255.254" -ipAddressPrefix "172.16.0.0/16" -gateway "172.16.0.1" -dnsServers "172.16.0.1" -vlanId 9

Ensuite, configurez votre déploiement avec la commande suivante.

Set-AksHciConfig -imageDir c:\clusterstorage\volume1\Images -cloudConfigLocation c:\clusterstorage\volume1\Config -vnet $vnet -cloudservicecidr "172.16.10.10/16" 

Maintenant, vous êtes prêt à installer l’hôte AKS :

Install-AksHCi

Créer un cluster Kubernetes

Créez un cluster Kubernetes avec la commande New-AksHciCluster. L’exemple suivant crée un cluster nommé mycluster avec un pool de nœuds Linux appelé linuxnodepool, qui a un nombre de nœuds de 1 :

New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1

Pour vérifier que le déploiement a réussi, exécutez la commande suivante.

Get-AksHcicluster -name mycluster
ProvisioningState     : provisioned
KubernetesVersion     : v1.20.7
NodePools             : linuxnodepool
WindowsNodeCount      : 0
LinuxNodeCount        : 0
ControlPlaneNodeCount : 1
Name                  : mycluster

Notes

Si vous utilisez les nouveaux ensembles de paramètres dans New-AksHciCluster pour déployer un cluster, puis que vous exécutez Get-AksHciCluster pour obtenir les informations du cluster, les champs WindowsNodeCount et LinuxNodeCount dans la sortie retournent 0. Pour obtenir le nombre exact de nœuds dans chaque pool de nœuds, utilisez la commande Get-AksHciNodePool avec le nom de cluster spécifié.

Pour obtenir la liste des pools de nœuds dans le cluster, exécutez la commande PowerShell Get-AksHciNodePool suivante :

Get-AksHciNodePool -clusterName mycluster
ClusterName  : mycluster
NodePoolName : linuxnodepool
Version      : v1.20.7
OsType       : Linux
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed

Installer l’interface de ligne de commande Kubernetes

Pour vous connecter au cluster Kubernetes à partir de votre ordinateur local, utilisez kubectl, le client de ligne de commande Kubernetes.

Se connecter au cluster à l’aide de kubectl

Pour configurer kubectl afin de vous connecter à votre cluster Kubernetes, exécutez la commande Get-AksHciCredential. L’exemple suivant obtient les informations d’identification du cluster nommé mycluster:

Get-AksHciCredential -name mycluster

Pour vérifier la connexion à votre cluster, exécutez la commande kubectl get nodes pour retourner la liste des nœuds de cluster :

kubectl get nodes
NAME              STATUS   ROLES                  AGE     VERSION
moc-lbs6got5dqo   Ready    <none>                 6d20h   v1.20.7
moc-lel7tzxdt30   Ready    control-plane,master   6d20h   v1.20.7

Étapes suivantes

Dans ce tutoriel, un cluster Kubernetes a été déployé dans ACS, et vous avez configuré kubectl pour qu’il s’y connecte. Vous avez appris à :

  • Déployer un cluster AKS sur Azure Stack HCI
  • Installer l’interface de ligne de commande Kubernetes (kubectl)
  • Configurer kubectl pour se connecter à votre cluster AKS

Passez au didacticiel suivant pour savoir comment déployer une application dans le cluster.