Självstudie: Distribuera ett arbetsbelastningskluster på AKS som aktiveras av Arc

Gäller för: AKS på Azure Stack HCI 22H2, AKS på Windows Server

Kubernetes tillhandahåller en distribuerad plattform för containerbaserade program.

I den här självstudien, del tre av sju, distribueras ett Kubernetes-kluster på AKS på Azure Stack HCI. Du lär dig följande:

  • Distribuera ett AKS-kluster på Azure Stack HCI
  • Installera Kubernetes CLI (kubectl)
  • Konfigurera kubectl för att ansluta till ditt arbetsbelastningskluster

I senare självstudier distribueras Azure Vote-programmet till klustret, skalas och uppdateras.

Innan du börjar

I tidigare självstudier skapades en behållaravbildning som sedan överfördes till en Azure Container Registry-instans. Om du inte har gjort de här stegen börjar du med Självstudie 1 – Skapa containeravbildningar.

I den här självstudien används AksHci PowerShell-modulen.

Följ dessa steg på alla noder i ditt Azure Stack HCI-kluster eller Windows Server-kluster:

Anteckning

Om du använder fjärr-PowerShell måste du använda CredSSP.

  1. Stäng alla öppna PowerShell-fönster, öppna en ny PowerShell-session som administratör och kör följande kommando på alla noder i ditt Azure Stack HCI- eller Windows Server-kluster:

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

    Du måste stänga alla befintliga PowerShell-fönster igen för att se till att inlästa moduler uppdateras. Fortsätt inte till nästa steg förrän du stänger alla öppna PowerShell-fönster.

  2. Installera AKS-HCI PowerShell-modulen genom att köra följande kommando på alla noder i ditt Azure Stack HCI- eller Windows Server-kluster:

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

    Du måste stänga alla befintliga PowerShell-fönster igen för att se till att inlästa moduler uppdateras. Fortsätt inte till nästa steg förrän du stänger alla öppna PowerShell-fönster.

Du kan använda ett hjälpskript för att ta bort gamla AKS-HCI PowerShell-moduler för att undvika problem med PowerShell-versioner i AKS-distributionen.

Verifiera installationen

Get-Command -Module AksHci

En fullständig lista över AksHci PowerShell-kommandon finns i AksHci PowerShell.

Installera Azure Kubernetes Service-värden

Konfigurera först dina registreringsinställningar.

Set-AksHciRegistration -subscription mysubscription -resourceGroupName myresourcegroup

Du måste anpassa dessa värden enligt namnet på din Azure-prenumeration och resursgrupp.

Kör sedan följande kommando för att säkerställa att alla krav på varje fysisk nod är uppfyllda för att installera AKS på Azure Stack HCI:

Initialize-AksHciNode

Skapa sedan ett virtuellt nätverk. Du behöver namnen på dina tillgängliga externa växlar:

Get-VMSwitch

Exempel på utdata:

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

Kör följande kommando för att skapa ett virtuellt nätverk med statisk IP-adress:

$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

Konfigurera sedan distributionen med följande kommando.

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

Nu är du redo att installera AKS-värden:

Install-AksHCi

Skapa ett Kubernetes-kluster

Skapa ett Kubernetes-kluster med kommandot New-AksHciCluster. I följande exempel skapas ett kluster med namnet mycluster med en Linux-nodpool med namnet linuxnodepool, som har nodantalet 1:

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

Kontrollera att distributionen lyckades genom att köra följande kommando.

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

Anteckning

Om du använder de nya parameteruppsättningarna i New-AksHciCluster för att distribuera ett kluster och sedan kör Get-AksHciCluster för att hämta klusterinformationen returnerar 0fälten WindowsNodeCount och LinuxNodeCount i utdata . Om du vill hämta det korrekta antalet noder i varje nodpool använder du kommandot Get-AksHciNodePool med det angivna klusternamnet.

Om du vill hämta en lista över nodpoolerna i klustret kör du följande Get-AksHciNodePool PowerShell-kommando :

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

Installera Kubernetes CLI

Om du vill ansluta till Kubernetes-klustret från din lokala dator använder du kubectl, Kubernetes kommandoradsklient.

Ansluta till klustret med kubectl

Om du vill konfigurera kubectl för att ansluta till ditt Kubernetes-kluster använder du kommandot Get-AksHciCredential . I följande exempel hämtas autentiseringsuppgifter för klustret med namnet mycluster:

Get-AksHciCredential -name mycluster

Kontrollera anslutningen till klustret genom att köra kommandot kubectl get nodes för att returnera en lista över klusternoderna:

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

Nästa steg

I den här självstudiekursen distribuerade du ett Kubernetes-kluster i AKS och konfigurerade kubectl för anslutning till klustret. Du har lärt dig att:

  • Distribuera ett AKS-kluster på Azure Stack HCI
  • Installera Kubernetes CLI (kubectl)
  • Konfigurera kubectl för anslutning till ditt AKS-kluster

Gå vidare till nästa självstudie och lär dig hur du distribuerar ett program i klustret.