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
- Si vous avez des objets de service de cluster et des enregistrements DNS préparés, consultez Déployer un hôte AKS avec des objets de service de cluster et des enregistrements DNS préparés en utilisant PowerShell.
- Si vous avez un serveur proxy, consultez Configurer un hôte AKS et déployer un cluster de charge de travail en utilisant PowerShell et un serveur proxy.
- L’installation d’AKS sur Azure Stack HCI après la configuration des machines virtuelles Arc n’est pas prise en charge. Pour plus d’informations, consultez Problèmes connus liés aux machines virtuelles Arc. Si vous souhaitez installer AKS sur Azure Stack HCI, vous devez désinstaller Arc Resource Bridge, puis installer AKS sur Azure Stack HCI. Vous pouvez à nouveau déployer un nouveau pont de ressources Arc après avoir propre et installé AKS, mais il ne se souviendra pas des entités de machine virtuelle que vous avez créées précédemment.
Avant de commencer
- Assurez-vous que toutes les conditions préalables décrites dans Configuration requise sont remplies.
- Utilisez un compte Azure pour inscrire votre hôte AKS pour la facturation. Pour plus d’informations, consultez Configuration requise d’Azure.
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.
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.
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
.