Configurare un host servizio Azure Kubernetes in Windows Server e distribuire un cluster del carico di lavoro usando PowerShell

Si applica a: Windows Server Datacenter

Questa guida introduttiva illustra come configurare un host Servizio Azure Kubernetes (AKS). È possibile creare cluster Kubernetes in Windows Server usando PowerShell. Per usare Windows Admin Center, vedere Configurare con Windows Admin Center.

Note

Prima di iniziare

  • Assicurarsi di soddisfare tutti i prerequisiti nei requisiti di sistema.
  • Usa un account Azure per registrare l'host AKS ai fini della fatturazione. Per altre informazioni, vedere Requisiti di Azure.

Installare il modulo PowerShell AksHci

Seguire questa procedura in tutti i nodi del cluster Windows Server:

Note

Se si usa PowerShell remoto, è necessario usare CredSSP.

  1. Chiudere tutte le finestre di PowerShell aperte, aprire una nuova sessione di PowerShell come amministratore ed eseguire il comando seguente in tutti i nodi del cluster Windows Server:

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

    È necessario chiudere nuovamente tutte le finestre di PowerShell esistenti per assicurarsi che i moduli caricati vengano aggiornati. Non continuare con il passaggio successivo fino a quando non si chiude tutte le finestre di PowerShell aperte.

  2. Installare il modulo AksHci PowerShell eseguendo il comando seguente in tutti i nodi del cluster Windows Server:

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

    È necessario chiudere nuovamente tutte le finestre di PowerShell esistenti per assicurarsi che i moduli caricati vengano aggiornati. Non continuare con il passaggio successivo fino a quando non si chiude tutte le finestre di PowerShell aperte.

È possibile usare uno script di supporto per eliminare i vecchi moduli PowerShell di AKS-HCI per evitare eventuali problemi legati alla versione di PowerShell nella distribuzione di AKS-HCI.

Convalidare l'installazione

Get-Command -Module AksHci

Per l'elenco completo dei comandi di PowerShell AksHci , vedere AksHci PowerShell.

Registrare il fornitore di risorse nella sottoscrizione

Prima del processo di registrazione, abilita il provider di risorse appropriato in Azure per la registrazione di AKS. A tale scopo, eseguire i comandi di PowerShell seguenti:

Per accedere a Azure, eseguire il comando PowerShell Connect-AzAccount:

Connect-AzAccount

Se si vuole passare a una sottoscrizione diversa, eseguire il comando Set-AzContext di PowerShell:

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

Eseguire i comandi seguenti per registrare la sottoscrizione di Azure ai provider di risorse Kubernetes con abilitazione di Azure Arc. Questo processo di registrazione può richiedere fino a 10 minuti, ma deve essere eseguito una sola volta in una sottoscrizione specifica:

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

Per convalidare il processo di registrazione, eseguire i comandi di PowerShell seguenti:

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

Passaggio 1: preparare i computer per la distribuzione

Eseguire controlli su ogni nodo fisico per verificare se tutti i requisiti per installare il servizio Azure Kubernetes sono soddisfatti. Aprire PowerShell come amministratore ed eseguire il comando Initialize-AksHciNode seguente in tutti i nodi del cluster Windows Server:

Initialize-AksHciNode

Passaggio 2: Creare una rete virtuale

Eseguire i comandi seguenti in qualsiasi nodo del cluster Windows Server.

Per ottenere i nomi delle opzioni disponibili, eseguire il comando seguente. Verificare che il SwitchType del commutatore della macchina virtuale sia Esterno:

Get-VMSwitch

Output di esempio:

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

Per creare una rete virtuale per i nodi della distribuzione da usare, creare una variabile di ambiente con il comando PowerShell New-AksHciNetworkSetting . Questa rete virtuale viene usata in un secondo momento per configurare una distribuzione che usa l'indirizzo IP statico. Per configurare la distribuzione AKS con DHCP, consulta New-AksHciNetworkSetting per esempi. È anche possibile esaminare alcuni concetti relativi ai nodi di rete.

# 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

Note

È necessario personalizzare i valori visualizzati in questo comando di esempio per l'ambiente in uso.

Passaggio 3: Configurare la distribuzione

Eseguire i comandi seguenti in qualsiasi nodo del cluster Windows Server.

Per creare le impostazioni di configurazione per l'host AKS, utilizzare il comando Set-AksHciConfig. È necessario specificare i imageDirparametri , workingDire cloudConfigLocation . Per reimpostare i dettagli di configurazione, eseguire di nuovo il comando con nuovi parametri.

Configurare la distribuzione con il comando seguente:

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

Note

È necessario personalizzare i valori visualizzati in questo comando di esempio per l'ambiente, ma non è possibile modificare il nome della macchina virtuale nell'host o nel cluster Kubernetes.

Passaggio 4: accedere a Azure e configurare le impostazioni di registrazione

Opzione 1: usare l'account Microsoft Entra se si dispone delle autorizzazioni "Proprietario"

Eseguire il comando Set-AksHciRegistration di PowerShell seguente con la sottoscrizione e il nome del gruppo di risorse per accedere a Azure. È necessario avere una sottoscrizione Azure e un gruppo di risorse Azure esistente nelle aree Australia orientale, Stati Uniti orientali, Asia sud-orientale o Europa occidentale Azure:

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

Opzione 2: utilizzare un'entità servizio di Azure

Se non si dispone dell'accesso a una sottoscrizione di cui si è Proprietari, è possibile registrare l'host AKS in Azure per la fatturazione usando un'entità servizio. Per ulteriori informazioni su come utilizzare un service principal, vedere Registrare AKS in Windows Server usando un service principal.

Passaggio 5: avviare una nuova distribuzione

Eseguire il comando seguente in qualsiasi nodo del cluster Windows Server.

Dopo aver configurato la distribuzione, è necessario avviarla per installare gli agenti e i servizi del servizio Azure Kubernetes e l'host del servizio Azure Kubernetes. Per iniziare la distribuzione, eseguire il comando seguente:

Tip

Per visualizzare altri dettagli sullo stato durante l'installazione, impostare $VerbosePreference = "Continue" prima di procedere.

Install-AksHci

Avvertimento

Durante l'installazione dell'host AKS, viene creato un tipo di risorsa Kubernetes - Azure Arc nel gruppo di risorse impostato durante la registrazione. Non eliminare questa risorsa, poiché rappresenta il tuo host AKS. È possibile identificare la risorsa controllando il relativo campo di distribuzione per il valore .aks_management Se si elimina questa risorsa, si verifica una distribuzione non conforme ai criteri.

Passaggio 6: Creare un cluster Kubernetes

Dopo aver installato l'host AKS, è possibile distribuire un cluster Kubernetes. Aprire PowerShell come amministratore ed eseguire il comando New-AksHciCluster seguente. Questo comando di esempio crea un nuovo cluster Kubernetes con un pool di nodi Linux denominato linuxnodepool con un numero di nodi pari a 1.

Per altre informazioni sui pool di nodi, vedi Usare i pool di nodi in AKS.

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

Controllare i cluster distribuiti

Per ottenere un elenco dei cluster Kubernetes distribuiti, eseguire il comando Get-AksHciCluster di PowerShell seguente:

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

Per ottenere un elenco dei pool di nodi nel cluster, eseguire il comando PowerShell Get-AksHciNodePool seguente:

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

Passaggio 7: Connettere il cluster a Kubernetes abilitato per Arc

Connettere il cluster a Kubernetes abilitato per Arc eseguendo il comando Enable-AksHciArcConnection . L'esempio seguente connette il cluster Kubernetes ad Arc usando i dettagli della sottoscrizione e del gruppo di risorse passati nel Set-AksHciRegistration comando :

Connect-AzAccount
Enable-AksHciArcConnection -name mycluster

Note

Se si verificano problemi o messaggi di errore durante il processo di installazione, vedere Problemi noti di installazione ed errori per altre informazioni.

Ridimensionare un cluster Kubernetes

Se è necessario aumentare o ridurre il cluster, è possibile modificare il numero di nodi del piano di controllo usando il comando Set-AksHciCluster . Per modificare il numero di nodi di lavoro Linux o Windows nel pool di nodi, usare il comando Set-AksHciNodePool.

Per ridimensionare i nodi del piano di controllo, eseguire il comando seguente:

Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3

Per ridimensionare i nodi di lavoro nel pool di nodi, eseguire il comando seguente:

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

Note

Nelle versioni precedenti del servizio Azure Kubernetes in Windows Server è stato usato anche il comando Set-AksHciCluster per ridimensionare i nodi di lavoro. Ora che AKS introduce i pool di nodi nei cluster del carico di lavoro, è possibile usare questo comando solo per ridimensionare i nodi di lavoro se il cluster è stato creato con il set di parametri precedente in New-AksHciCluster.

Per ridimensionare i nodi di lavoro in un pool di nodi, usare il comando Set-AksHciNodePool .

Accedi ai cluster usando kubectl

Per accedere ai cluster Kubernetes usando kubectl, eseguire il comando PowerShell Get-AksHciCredential . Questo comando usa il file kubeconfig del cluster specificato come file kubeconfig predefinito per kubectl. È anche possibile usare kubectl per distribuire applicazioni usando Helm:

Get-AksHciCredential -name mycluster

Eliminare un cluster Kubernetes

Per eliminare un cluster Kubernetes, eseguire il comando seguente:

Remove-AksHciCluster -name mycluster

Note

Assicurarsi che il cluster venga eliminato esaminando le macchine virtuali esistenti in Hyper-V Manager. Se non vengono eliminati, è possibile eliminare manualmente le macchine virtuali. Eseguire quindi il comando Restart-Service wssdagent. Eseguire questo comando in ogni nodo del cluster di failover.

Ottenere i log

Per ottenere i log da tutti i pod, eseguire il comando Get-AksHciLogs . Questo comando crea una cartella di output compressa denominata akshcilogs.zip nella directory di lavoro. Il percorso completo della cartella akshcilogs.zip corrisponde all'output ottenuto dopo aver eseguito il comando seguente:

Get-AksHciLogs

In questa guida introduttiva hai imparato a configurare un host di AKS e a creare cluster Kubernetes con PowerShell. Si è anche appreso come usare PowerShell per ridimensionare un cluster Kubernetes e accedere ai cluster con kubectl.

Passaggi successivi