Esercitazione: Distribuire un cluster del carico di lavoro nel servizio Azure Kubernetes abilitato da Arc

Si applica a: servizio Azure Kubernetes in Azure Stack HCI 22H2, servizio Azure Kubernetes in Windows Server

Kubernetes fornisce una piattaforma distribuita per applicazioni in contenitori.

In questa esercitazione, la terza parte di sette, un cluster Kubernetes viene distribuito nel servizio Azure Kubernetes in Azure Stack HCI. Si apprenderà come:

  • Distribuire un cluster del servizio Azure Kubernetes in Azure Stack HCI
  • Installare l'interfaccia della riga di comando di Kubernetes (kubectl)
  • Configurare kubectl per la connessione al cluster del carico di lavoro

Nelle esercitazioni successive l'applicazione Azure Vote viene distribuita nel cluster, ridimensionato e aggiornato.

Prima di iniziare

Nelle esercitazioni precedenti, un'immagine del contenitore è stata creata e caricata in un'istanza di Registro Azure Container. Se questi passaggi non sono stati eseguiti, iniziare da Esercitazione 1 - Creare immagini del contenitore.

Questa esercitazione usa il modulo AksHci PowerShell.

Seguire questa procedura in tutti i nodi del cluster Azure Stack HCI o del cluster Windows Server:

Nota

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 Azure Stack HCI 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.

  2. Installare il modulo PowerShell servizio Azure Kubernetes-HCI eseguendo il comando seguente in tutti i nodi del cluster Azure Stack HCI 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.

Installare l'host servizio Azure Kubernetes

Prima di tutto, configurare le impostazioni di registrazione.

Set-AksHciRegistration -subscription mysubscription -resourceGroupName myresourcegroup

È necessario personalizzare questi valori in base alla sottoscrizione di Azure e al nome del gruppo di risorse.

Eseguire quindi il comando seguente per assicurarsi che tutti i requisiti in ogni nodo fisico siano soddisfatti per installare il servizio Azure Kubernetes in Azure Stack HCI:

Initialize-AksHciNode

Creare quindi una rete virtuale. Saranno necessari i nomi dei commutatori esterni disponibili:

Get-VMSwitch

Output di esempio:

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

Eseguire il comando seguente per creare una rete virtuale con ip statico:

$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

Configurare quindi la distribuzione con il comando seguente.

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

A questo momento è possibile installare l'host del servizio Azure Kubernetes:

Install-AksHCi

Creare un cluster Kubernetes

Creare un cluster Kubernetes usando il comando New-AksHciCluster. L'esempio seguente crea un cluster denominato mycluster con un pool di nodi Linux denominato linuxnodepool, con un numero di nodi pari a 1:

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

Per verificare che la distribuzione sia riuscita, eseguire il comando seguente.

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

Nota

Se si usa il nuovo set di parametri in New-AksHciCluster per distribuire un cluster e quindi si esegue Get-AksHciCluster per ottenere le informazioni del cluster, i campi WindowsNodeCount e LinuxNodeCount nell'output restituiscono 0. Per ottenere il numero accurato di nodi in ogni pool di nodi, usare il comando Get-AksHciNodePool con il nome del cluster specificato.

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

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

Installare l'interfaccia della riga di comando di Kubernetes

Per connettersi al cluster Kubernetes dal computer locale, usare kubectl, il client della riga di comando kubernetes.

Connettersi al cluster usando kubectl

Per configurare kubectl la connessione al cluster Kubernetes, usare il comando Get-AksHciCredential . L'esempio seguente ottiene le credenziali per il cluster denominato mycluster:

Get-AksHciCredential -name mycluster

Per verificare la connessione al cluster, usare il comando kubectl get nodes per restituire un elenco di nodi del 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

Passaggi successivi

In questa esercitazione è stato distribuito un cluster Kubernetes in servizio Azure Kubernetes ed è stato configurato kubectl per la connessione. Si è appreso come:

  • Distribuire un cluster del servizio Azure Kubernetes in Azure Stack HCI
  • Installare l'interfaccia della riga di comando di Kubernetes (kubectl)
  • Configurare kubectl per connettersi al cluster servizio Azure Kubernetes

Passare all'esercitazione successiva per informazioni su come distribuire un'applicazione nel cluster.