Configurer un hôte Azure Kubernetes Service sur Azure Stack HCI et Windows Server et déployer un cluster de charge de travail à l’aide de PowerShell

S’applique à : Azure Stack HCI ou Windows Server Datacenter

Ce guide de démarrage rapide vous guide tout au long de la configuration d’un hôte Azure Kubernetes Service (AKS). Vous créez des clusters Kubernetes sur Azure Stack HCI et Windows Server à l’aide de PowerShell. Si vous préférez utiliser Windows Admin Center, consultez Configurer avec Windows Admin Center.

Notes

Avant de commencer

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

Inscrivez le fournisseur de ressources pour votre abonnement

Avant le processus d’inscription, activez le fournisseur de ressources approprié dans Azure pour AKS activé par l’inscription Arc. Pour ce faire, exécutez les commandes PowerShell suivantes :

Pour vous connecter à Azure, exécutez la commande PowerShell Connect-AzAccount :

Connect-AzAccount

Si vous souhaitez basculer vers un autre abonnement, exécutez la commande PowerShell Set-AzContext :

Set-AzContext -Subscription "xxxx-xxxx-xxxx-xxxx"

Exécutez les commandes suivantes pour inscrire votre abonnement Azure auprès des fournisseurs de ressources Kubernetes avec Azure Arc. Ce processus d’inscription peut prendre jusqu’à 10 minutes, mais il ne doit être effectué qu’une seule fois sur un abonnement spécifique :

Register-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Register-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Register-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

Pour valider le processus d’inscription, exécutez les commandes PowerShell suivantes :

Get-AzResourceProvider -ProviderNamespace Microsoft.Kubernetes
Get-AzResourceProvider -ProviderNamespace Microsoft.KubernetesConfiguration
Get-AzResourceProvider -ProviderNamespace Microsoft.ExtendedLocation

Étape 1 : Préparer votre ou vos machines en vue du déploiement

Exécutez des vérifications sur chaque nœud physique pour voir si toutes les conditions requises pour installer AKS activé par Arc sont remplies. Ouvrez PowerShell en tant qu’administrateur et exécutez la commande Initialize-AksHciNode suivante sur tous les nœuds de votre cluster Azure Stack HCI et Windows Server :

Initialize-AksHciNode

Étape 2 : Créer un réseau virtuel

Exécutez les commandes suivantes sur n’importe quel nœud de votre cluster Azure Stack HCI et Windows Server.

Pour obtenir les noms de vos commutateurs disponibles, exécutez la commande suivante. Vérifiez que le SwitchType de votre commutateur de machine virtuelle est « Externe » :

Get-VMSwitch

Exemple de sortie :

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

Pour créer un réseau virtuel pour les nœuds de votre déploiement à utiliser, créez une variable d’environnement avec la commande PowerShell New-AksHciNetworkSetting. Ce réseau virtuel est utilisé ultérieurement pour configurer un déploiement qui utilise une adresse IP statique. Si vous souhaitez configurer votre déploiement AKS avec DHCP, consultez New-AksHciNetworkSetting pour obtenir des exemples. Vous pouvez également passer en revue certains concepts liés au nœud Mise en réseau.

#static IP
$vnet = New-AksHciNetworkSetting -name myvnet -vSwitchName "extSwitch" -k8sNodeIpPoolStart "172.16.10.1" -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

Remarque

Vous devez personnaliser les valeurs indiquées dans cet exemple de commande pour votre environnement.

Étape 3 : Configurer votre déploiement

Exécutez les commandes suivantes sur n’importe quel nœud de votre cluster Azure Stack HCI et Windows Server.

Pour créer les paramètres de configuration de l’hôte AKS, utilisez la commande Set-AksHciConfig. Vous devez spécifier les paramètres imageDir, workingDir et cloudConfigLocation. Si vous souhaitez redéfinir des détails de votre configuration, réexécutez la commande avec de nouveaux paramètres.

Configurez votre déploiement avec la commande suivante.

$csvPath = 'C:\clusterstorage\volume01' # Specify your preferred CSV path
Set-AksHciConfig -imageDir $csvPath\Images -workingDir $csvPath\ImageStore -cloudConfigLocation $csvPath\Config -vnet $vnet

Remarque

Vous devez personnaliser les valeurs indiquées dans cet exemple de commande pour votre environnement.

Étape 4 : Se connecter à Azure et configurer les paramètres d’inscription

Option 1 : Utiliser votre compte Microsoft Entra si vous disposez des autorisations « Propriétaire »

Exécutez la commande PowerShell Set-AksHciRegistration suivante avec le nom de votre abonnement et de votre groupe de ressources pour vous connecter à Azure. Vous devez disposer d’un abonnement Azure et d’un groupe de ressources Azure existant dans les régions Azure Australie Est, USA Est, Asie Sud-Est ou Europe Ouest :

Set-AksHciRegistration -subscriptionId "<subscriptionId>" -resourceGroupName "<resourceGroupName>"

Option 2 : Utiliser un principal de service Azure

Si vous n’avez pas accès à un abonnement sur lequel vous êtes « propriétaire », vous pouvez inscrire votre hôte AKS auprès d’Azure pour la facturation à l’aide d’un principal de service. Pour plus d’informations sur l’utilisation d’un principal de service, consultez Inscrire AKS sur Azure Stack HCI et Windows Server avec un principal de service.

Étape 5 : Démarrer un nouveau déploiement

Exécutez la commande suivante sur n’importe quel nœud de votre cluster Azure Stack HCI ou Windows Server.

Après avoir configuré votre déploiement, vous devez le démarrer afin d’installer les agents/services AKS et l’hôte AKS. Pour commencer le déploiement, exécutez la commande suivante :

Conseil

Pour afficher d’autres détails status lors de l’installation, définissez $VerbosePreference = "Continue" avant de continuer.

Install-AksHci

Avertissement

Lors de l’installation de votre hôte AKS, un type de ressource Kubernetes - Azure Arc est créé dans le groupe de ressources défini lors de l’inscription. Ne supprimez pas cette ressource, car elle représente votre hôte AKS. Vous pouvez identifier la ressource en vérifiant que son champ de distribution possède la valeur aks_management. Si vous supprimez cette ressource, cela entraîne un déploiement hors stratégie.

Étape 6 : Créer un cluster Kubernetes

Après avoir installé votre hôte AKS, vous pouvez déployer un cluster Kubernetes. Ouvrez PowerShell en tant qu’administrateur et exécutez la commande New-AksHciCluster suivante. Cet exemple de commande crée un cluster Kubernetes avec un pool de nœuds Linux nommé linuxnodepool avec un nombre de nœuds de 1.

Pour plus d’informations sur les pools de nœuds, consultez Utiliser des pools de nœuds dans AKS.

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

Vérifier vos clusters déployés

Pour obtenir la liste de vos clusters Kubernetes déployés, exécutez la commande PowerShell Get-AksHciCluster suivante :

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

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

Étape 7 : Connecter votre cluster à Kubernetes avec Arc

Connectez votre cluster à Kubernetes avec Arc en exécutant la commande Enable-AksHciArcConnection . L’exemple suivant connecte votre cluster Kubernetes à Arc à l’aide des détails de l’abonnement et du groupe de ressources que vous avez passés dans la Set-AksHciRegistration commande :

Connect-AzAccount
Enable-AksHciArcConnection -name mycluster

Remarque

Si vous rencontrez des problèmes ou des messages d’erreur pendant le processus d’installation, pour plus d’informations, consultez Problèmes et erreurs d’installation connus.

Mettre à l’échelle un cluster Kubernetes

Si vous devez mettre à l’échelle votre cluster, vous pouvez modifier le nombre de nœuds de plan de contrôle en utilisant la commande Set-AksHciCluster. Pour modifier le nombre de nœuds Worker Linux ou Windows dans votre pool de nœuds, utilisez la commande Set-AksHciNodePool.

Pour mettre à l’échelle des nœuds de plan de contrôle, exécutez la commande suivante :

Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3

Pour mettre à l’échelle les nœuds Worker, exécutez la commande suivante :

Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3

Remarque

Dans les versions précédentes d’AKS sur Azure Stack HCI et Windows Server, la commande Set-AksHciCluster était également utilisée pour mettre à l’échelle les nœuds Worker. Maintenant qu’AKS introduit des pools de nœuds dans les clusters de charge de travail, vous pouvez utiliser cette commande pour mettre à l’échelle les nœuds Worker uniquement si votre cluster a été créé avec l’ancien paramètre défini dans New-AksHciCluster.

Pour mettre à l’échelle les nœuds Worker dans un pool de nœuds, utilisez la commande Set-AksHciNodePool.

Accéder à vos clusters à l’aide de kubectl

Pour accéder à vos clusters Kubernetes à l’aide de kubectl, exécutez la commande PowerShell Get-AksHciCredential suivante. Cette opération utilise le fichier kubeconfig du cluster spécifié comme fichier kubeconfig par défaut pour kubectl. Vous pouvez également utiliser kubectl pour déployer des applications à l’aide de Helm :

Get-AksHciCredential -name mycluster

Supprimer un cluster Kubernetes

Pour supprimer un cluster Kubernetes, exécutez la commande suivante :

Remove-AksHciCluster -name mycluster

Remarque

Vérifiez que votre cluster est supprimé en examinant les machines virtuelles existantes dans le Gestionnaire Hyper-V. Si elles ne sont pas supprimées, vous pouvez les supprimer manuellement. Ensuite, exécutez la commande Restart-Service wssdagent. Exécutez cette commande sur chaque nœud du cluster de basculement.

Obtenir des journaux d’activité

Pour obtenir les journaux de l’ensemble de vos pods, exécutez la commande Get-AksHciLogs. Cette commande crée un dossier zippé de sortie appelé akshcilogs.zip dans votre répertoire de travail. Le chemin d’accès complet au akshcilogs.zip dossier est la sortie après l’exécution de la commande suivante :

Get-AksHciLogs

Dans ce guide de démarrage rapide, vous avez appris à configurer un hôte AKS et à créer des clusters Kubernetes à l’aide de PowerShell. Vous avez également appris à utiliser PowerShell pour mettre à l’échelle un cluster Kubernetes et accéder aux clusters avec kubectl.

Étapes suivantes