Configurare un host servizio Azure Kubernetes in Azure Locale e Windows Server e distribuire un cluster del carico di lavoro usando PowerShell
Si applica a: Data center locale o Windows Server di Azure
Questa guida introduttiva illustra come configurare un host del servizio Azure Kubernetes (servizio Azure Kubernetes). È possibile creare cluster Kubernetes in Azure Locale e Windows Server usando PowerShell. Per usare Windows Admin Center, vedere Configurare con Windows Admin Center.
Nota
- Se sono presenti oggetti servizio cluster pre-staging e record DNS, vedere Distribuire un host del servizio Azure Kubernetes con oggetti servizio cluster pre-installati e record DNS tramite PowerShell.
- Se si dispone di un server proxy, vedere Configurare un host del servizio Azure Kubernetes e distribuire un cluster del carico di lavoro usando PowerShell e un server proxy.
- L'installazione del servizio Azure Kubernetes in locale di Azure dopo la configurazione di macchine virtuali Arc non è supportata. Per altre informazioni, vedere Problemi noti relativi alle macchine virtuali Arc. Se si vuole installare il servizio Azure Kubernetes in Locale di Azure, è necessario disinstallare Arc Resource Bridge e quindi installare il servizio Azure Kubernetes in locale di Azure. Dopo aver pulito e installato il servizio Azure Kubernetes, è possibile distribuire di nuovo un nuovo bridge di risorse Arc, ma non si ricorderà delle entità vm create in precedenza.
Operazioni preliminari
- Assicurarsi di aver soddisfatto tutti i prerequisiti nei requisiti di sistema.
- Usare un account Azure per registrare l'host del servizio Azure Kubernetes per la fatturazione. Per altre informazioni, vedere Requisiti di Azure.
Installare il modulo Azure KubernetesHci di PowerShell
Seguire questa procedura in tutti i nodi del cluster locale di Azure o del cluster Windows Server:
Nota
Se si usa PowerShell remoto, è necessario usare CredSSP.
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 Locale di Azure o 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.
Installare il modulo PowerShell del servizio Azure Kubernetes-HCI eseguendo il comando seguente in tutti i nodi del cluster Locale di Azure o 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 helper per eliminare i moduli powerShell precedenti del servizio Azure Kubernetes-HCI, per evitare eventuali problemi relativi alla versione di PowerShell nella distribuzione del servizio Azure Kubernetes.
Convalidare l'installazione
Get-Command -Module AksHci
Per visualizzare l'elenco completo dei comandi di PowerShell AksHci, vedere AksHci PowerShell.
Registrare il provider di risorse nella sottoscrizione
Prima del processo di registrazione, abilitare il provider di risorse appropriato in Azure per il servizio Azure Kubernetes abilitato dalla registrazione arc. A tale scopo, eseguire i comandi di PowerShell seguenti:
Per accedere ad Azure, eseguire il comando Connect-AzAccount powerShell:
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 nei 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 abilitato da Arc sono soddisfatti. Aprire PowerShell come amministratore ed eseguire il comando Initialize-AksHciNode seguente in tutti i nodi del cluster Locale di Azure e Windows Server:
Initialize-AksHciNode
Passaggio 2: Creare una rete virtuale
Eseguire i comandi seguenti in un nodo qualsiasi del cluster Locale di Azure e Windows Server.
Per ottenere i nomi delle opzioni disponibili, eseguire il comando seguente. Assicurarsi che l'opzione SwitchType
della macchina virtuale sia "Esterna":
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 del servizio Azure Kubernetes con DHCP, vedere 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
Nota
È 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 un nodo qualsiasi del cluster Locale di Azure e Windows Server.
Per creare le impostazioni di configurazione per l'host del servizio Azure Kubernetes, usare il comando Set-AksHciConfig . È necessario specificare i imageDir
parametri , workingDir
e 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
Nota
È necessario personalizzare i valori visualizzati in questo comando di esempio per l'ambiente in uso.
Passaggio 4: Accedere ad 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 ad Azure. È necessario avere una sottoscrizione di Azure e un gruppo di risorse di Azure esistente nelle aree di Azure Australia orientale, Stati Uniti orientali, Asia sud-orientale o Europa occidentale:
Set-AksHciRegistration -subscriptionId "<subscriptionId>" -resourceGroupName "<resourceGroupName>"
Opzione 2: Usare un'entità servizio di Azure
Se non si ha accesso a una sottoscrizione in cui si è "Proprietario", è possibile registrare l'host del servizio Azure Kubernetes in Azure per la fatturazione usando un'entità servizio. Per altre informazioni su come usare un'entità servizio, vedere Registrare il servizio Azure Kubernetes in Azure Locale e Windows Server usando un'entità servizio.
Passaggio 5: Avviare una nuova distribuzione
Eseguire il comando seguente in un nodo qualsiasi del cluster Locale di Azure o Windows Server.
Dopo aver configurato la distribuzione, è necessario avviarla per installare gli agenti/i servizi del servizio Azure Kubernetes e l'host del servizio Azure Kubernetes. Per iniziare la distribuzione, eseguire il comando seguente:
Suggerimento
Per visualizzare altri dettagli sullo stato durante l'installazione, impostare $VerbosePreference = "Continue"
prima di procedere.
Install-AksHci
Avviso
Durante l'installazione dell'host del servizio Azure Kubernetes, viene creato un tipo di risorsa Kubernetes - Azure Arc nel gruppo di risorse impostato durante la registrazione. Non eliminare questa risorsa, perché rappresenta l'host del servizio Azure Kubernetes. È possibile identificare la risorsa controllando il relativo campo di distribuzione per il valore .aks_management
Se si elimina questa risorsa, viene eseguita una distribuzione out-of-policy.
Passaggio 6: Creare un cluster Kubernetes
Dopo aver installato l'host del servizio Azure Kubernetes, è 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, vedere Usare pool di nodi nel servizio Azure Kubernetes.
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
Nota
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
Nota
Nelle versioni precedenti del servizio Azure Kubernetes in Azure Local and Windows Server il comando Set-AksHciCluster è stato usato anche per ridimensionare i nodi di lavoro. Ora che il servizio Azure Kubernetes introduce 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 vecchio set di parametri in New-AksHciCluster.
Per ridimensionare i nodi di lavoro in un pool di nodi, usare il comando Set-AksHciNodePool .
Accedere ai cluster usando kubectl
Per accedere ai cluster Kubernetes usando kubectl, eseguire il comando PowerShell Get-AksHciCredential . Verrà usato 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
Nota
Assicurarsi che il cluster venga eliminato esaminando le macchine virtuali esistenti nella console di gestione di Hyper-V. 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 akshcilogs.zip
cartella è l'output dopo l'esecuzione del comando seguente:
Get-AksHciLogs
In questa guida introduttiva si è appreso come configurare un host del servizio Azure Kubernetes e creare cluster Kubernetes usando PowerShell. Si è anche appreso come usare PowerShell per ridimensionare un cluster Kubernetes e accedere ai cluster con kubectl
.