Gebruik Azure Kubernetes Service in Azure Stack Hub met de CLI

Dit is een handleiding om u op weg te helpen met de AKS-service (Azure Kubernetes Service) in Azure Stack Hub. In dit artikel worden de belangrijkste scenario's beschreven om u vertrouwd te maken met AKS in Azure Stack Hub. De functionaliteit die beschikbaar is in Azure Stack Hub, is een subset van wat beschikbaar is in wereldwijde Azure.

In de volgende secties gaat u het volgende doen:

  1. Voltooi de vereisten voor het gebruik van AKS in Azure Stack Hub.
  2. Voltooi de levenscyclusbewerkingen van een AKS-cluster met behulp van Azure CLI en de Azure Stack Hub-gebruikersportal.

Azure CLI installeren

U moet de Azure CLI installeren met AKS-ondersteuning voor uw computer. Bereid een schone Linux- of Windows-machine voor om de preview-versie van De Azure CLI te installeren met AKS-ondersteuning. Zorg ervoor dat Azure CLI niet is geïnstalleerd op de computer om conflicten te voorkomen met de preview-versie van Azure CLI die u vervolgens installeert. In de meeste van de onderstaande instructies wordt ervan uitgegaan dat u een Virtuele Linux-machine gebruikt, maar u vindt de vergelijkbare stappen in Windows in de productdocumentatie.

Voer geen upgrade uit van Azure CLI nadat u de Azure CLI met AKS-ondersteuning hebt geïnstalleerd. Als u een upgrade uitvoert, wordt deze vervangen door de versie die gereed is voor productie die geen AKS-ondersteuning biedt.

Voor een Ubuntu-machine volgt u de instructies in De Azure CLI installeren op Linux.

Nadat u Azure CLI met AKS-ondersteuning hebt geïnstalleerd, controleert u of de installatie juist is door de volgende Azure CLI-opdracht uit te voeren:

    az --version

Dit is de uitvoer van een Linux-computer:

uitvoer van een Linux-machine

Azure CLI moet 2.28.0 of hoger zijn.

Verbinding maken met Azure Stack Hub

  1. Maak verbinding met uw Azure Stack Hub-eindpunt. U moet Azure CLI gebruiken om de specifieke Azure Stack Hub-omgeving tot stand te brengen waarmee u verbinding maakt. U vindt de instructies op Verbinding maken met Azure Stack Hub

  2. Registreer uw omgeving zodat Azure CLI verbinding kan maken met het Azure Stack Hub Resource Manager-eindpunt voor uw exemplaar. Werk de URL's in het volgende codefragment bij en voer de volgende opdracht uit:

    az cloud register \
        -n aks-preview-test \
        --endpoint-resource-manager "https://management.redmond.xbx.nxn.microsoft.com" \
        --suffix-storage-endpoint "redmond.xbx.nxn.microsoft.com" \
        --suffix-keyvault-dns ".vault.redmond.xbx.nxn.microsoft.com"
    
  3. Stel de actieve omgeving in.

    az cloud set -n aks-preview-test
    
  4. Werk uw omgevingsconfiguratie bij.

    az cloud update --profile 2020-09-01-hybrid
    
  5. Maak verbinding met de omgeving.

    az login -u 'user@contoso.onmicrosoft.com' -p 'xxxxxxx' --tenant 'contoso.onmicrosoft.com'
    

    Notitie

    Als u een fout met certificaatverificatie activeert, kan het zijn dat het certificaat dat wordt gebruikt voor het Azure Resource Manager-eindpunt niet wordt vertrouwd door uw clientcomputer. Als dat het zo is, moet u het certificaat exporteren dat wordt gebruikt in de Azure Stack Hub-eindpunten en dit vertrouwen. U vindt instructies in Het basiscertificaat van de Azure Stack Hub-CA exporteren.

    Zie met name voor Linux-machines: Microsoft Entra-id in Linux

  6. Stel het abonnement in uw Azure CLI-sessie in als de standaardinstelling met:

    az account set --subscription <subscription-id>
    
  7. Registreer de Azure Kubernetes Service resourceprovider. Vermeld de beschikbare resourceproviders in uw abonnement.

    az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
    

    De uitvoer moet er als volgt uitzien:

    De uitvoer moet eruitzien als

  8. Noteer de resourceprovider Microsoft.ContainerService en registreer de provider:

    az provider register --namespace Microsoft.ContainerService
    
  9. Voer stap zeven opnieuw uit om de registratiestatus van de resourceprovider te controleren. De registratie kan enkele minuten duren.

Zodra deze vereiste stappen zijn voltooid, kunt u doorgaan met het testen van de volgende scenario's.

Een AKS-cluster maken

U vindt de algemene Azure-instructies op Een Azure Kubernetes Service cluster implementeren met behulp van de Azure CLI. De instructies hier weerspiegelen de beperkingen van het gebruik van AKS in Azure Stack Hub. U kunt de Azure CLI gebruiken om een AKS-cluster te maken voor Linux- of Windows-containers.

  1. Een resourcegroep maken:

    az group create --name myResourceGroup --location <Azure Stack Hub location>
    
  2. Zorg ervoor dat u een service-principal-id met inzendermachtiging voor uw abonnement hebt om er clusters in te maken.

    1. Volg deze instructies om een service-principal (SPN) te maken met behulp van Microsoft Entra-id.
    2. Volg deze instructies om een SPN te maken met behulp van Active Directory Federated Services (AD FS).
    3. Als u de rol 'Inzender' wilt toewijzen aan de SPN, raadpleegt u de instructies. Zorg ervoor dat u de rol Inzender selecteert.
  3. Maak een AKS-cluster van drie agentknooppunten. Geef waarden op voor de onderstaande parameters. Er worden voorbeelden gegeven. Voer het volgende uit:

    az aks create \
    --resource-group myResourceGroup \
    --name myakscluster \
    --dns-name-prefix myakscluster \
    --nodepool-name mynodepool \
    --admin-username azureuser \
    --service-principal xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --client-secret xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx \
    --node-count 3 \
    --generate-ssh-keys \
    --load-balancer-sku basic \
    --vm-set-type VirtualMachineScaleSets \
    --location <Azure Stack Hub location> \
    --kubernetes-version 1.20.7
    

    De uitvoer van deze bewerking is in json-indeling en bevat een specificatie van het cluster, waaronder de gegenereerde openbare SSH-sleutel, FQDN (Fully Qualified Domain Name) die in het cluster wordt gebruikt, naast andere eigenschappen. U ziet dat met de opdracht een tekst wordt uitgevoerd zoals deze, waarin de locatie van de persoonlijke sleutel wordt gemarkeerd: SSH key files '/home/azureuser/.ssh/id_rsa' en '/home/azureuser/.ssh/id_rsa.pub' zijn gegenereerd onder \~/.ssh om SSH-toegang tot de VM toe te staan. Sla deze sleutels op een veilige locatie op om te worden gebruikt voor het geval er een SSH-verbinding naar de VM's moet worden uitgevoerd, zoals het geval is bij het oplossen van problemen.

  4. U kunt nu doorgaan met het herhalen van de tests voor Schalen, een app implementeren en Verwijderen.

Verbinding maken met het cluster

  1. Als u een Kubernetes-cluster wilt beheren, gebruikt u kubectl, de Kubernetes-opdrachtregelclient. Als u kubectl lokaal wilt installeren, gebruikt u de opdracht az aks install-cli (mogelijk moet u 'sudo' gebruiken bij het begin om deze te installeren):

    az aks install-cli
    
  2. Als u kubectl wilt configureren om verbinding te maken met uw Kubernetes-cluster, gebruikt u de az aks get-credentials opdracht . Bij deze opdracht worden referenties gedownload en wordt Kubernetes CLI geconfigureerd voor het gebruik van deze referenties.

    az aks get-credentials --resource-group myResourceGroup --name myakscluster --admin
    
  3. Als u de verbinding met uw cluster wilt controleren, gebruikt u de opdracht kubectl get om een lijst met de clusterknooppunten te retourneren.

    kubectl get nodes
    

de verbinding met uw cluster controleren

Schaal cluster aanpassen

Een andere clusterbeheertaak is het schalen van een cluster. U kunt een cluster op elk gewenst moment schalen nadat het is gemaakt met behulp van de opdracht az aks scale. Als u het cluster wilt schalen van de eerste drie knooppunten naar 4, voert u het volgende uit:

    az aks scale --resource-group myResourceGroup --name myakscluster --node-count 4

Wanneer het cluster is geschaald, bevat de uitvoer een 'agentPoolProfiles', vergelijkbaar met het volgende voorbeeld:

    "agentPoolProfiles": [
        {
        "availabilityZones": null,
        "count": 4,
        "enableAutoScaling": null,
        "enableNodePublicIp": false,
        "maxCount": null,
        "maxPods": 110,
        "minCount": null,
        "mode": "System",
        "name": "mynodepool",
        "nodeLabels": {},
        "nodeTaints": null,
        "orchestratorVersion": "1.20.7",
        "osDiskSizeGb": 100,
        "osType": "Linux",
        "provisioningState": "Succeeded",
        "scaleSetEvictionPolicy": null,
        "scaleSetPriority": null,
        "spotMaxPrice": null,
        "tags": null,
        "type": "VirtualMachineScaleSets",
        "vmSize": " Standard_DS2_v2",
        "vnetSubnetId": null
        }
    ]

Cluster verwijderen

Zodra de vorige bewerkingen zijn uitgevoerd, kunt u doorgaan met het verwijderen van het cluster. Voer het volgende uit:

az aks delete --name myakscluster --resource-group myResourceGroup

AKS-cluster maken met aangepast VNET

Het maken van een cluster dat moet worden geïmplementeerd in een door de gebruiker geleverd netwerk is een veelvoorkomend scenario. Het plannen van de netwerkconfiguratie vergt enige voorbereiding. U ziet ook dat met AKS de standaardnetwerkinvoegtoepassing Azure CNI is, niet Kubenet, zoals het geval is met de AKS-engine. Met Azure CNI krijgt elke pod een IP-adres uit het subnet en kan deze rechtstreeks worden geopend (zonder dat er een routeringstabel nodig is, zoals het geval is met Kubenet). Deze IP-adressen moeten uniek zijn in uw netwerkruimte en moeten worden gepland. Het volgende artikel begeleidt u bij het plannen van uw aangepaste VNET-implementatie. U kunt verschillende netwerkconfiguraties vinden die aan uw behoeften voldoen en deze testen. Voor een eerste test ziet u in de volgende twee stappen het basisproces:

  1. Volg de instructies in dit artikel om de implementatie te plannen met behulp van Azure CNI. U kunt bijvoorbeeld de portal gebruiken om een VNet met de naam 'myAKSVnet' te maken met IP-bereik 10.0.0.0/8 met subnet 'myAKSSubnet' en IP-bereik 10.240.0.0/16 in een resourcegroep met de naam 'myTest-rg'. Gebruik vervolgens de volgende stap voor het maken van het cluster.

    az network vnet create \
        --resource-group myTest-rg \
        --name myAKSVnet \
        --address-prefixes 10.0.0.0/8 \
        --subnet-name myAKSSubnet \
        --subnet-prefix 10.240.0.0/16    
    
  2. Houd er rekening mee dat de clusteropdracht in het Azure-artikel goed werkt bij het implementeren in Azure. Als u wilt implementeren in Azure Stack Hub, moet u extra parameters opgeven, zoals in het volgende voorbeeld. De subnet-id van het vnet moet er als volgt uitzien: '/subscriptions/dfdfdff-5dfdfdf-dfdfdf-dfdfdfdfdfd/resourceGroups/myTest-rg/providers/Microsoft.Network/virtualNetworks/myAKSVnet/subnets/myAKSSubnet':

    az aks create  \ 
    --resource-group myTest-rg \
    --name aksvnet \
    --dns-name-prefix  aksvnet \
    --nodepool-name mynodepool \
    --admin-username azureuser \
    --service-principal xvxvxvxvx-ffff-ffff-xvxvxvx-8xbxbxbx8  \
    --client-secret dccbcbcbcbcbcbcbcbbcbcbcbcbcbcbc-LNX \
    --node-count 3 \
    --generate-ssh-keys \
    --load-balancer-sku basic \
    --vm-set-type VirtualMachineScaleSets \
    --network-plugin azure \
    --vnet-subnet-id '<subnet-resource-id>' \
    --skip-subnet-role-assignment \
    --docker-bridge-address 172.17.0.1/16 \
    --dns-service-ip 10.0.0.10 \
    --location redmond
    
  3. Volg de instructies in de sectie Verbinding maken met het cluster om verbinding te maken met het Kubernetes-cluster en uw toepassingen te implementeren.

Consistentiecontrole

Consistentiecontrole tussen Azure en Azure Stack Hub

  1. Selecteer een combinatie van opdrachten uit de hierboven geteste opdrachten, uit de sectie 'Opdrachtverwijzing' hieronder of uit uw eigen dagelijkse scripts.
  2. Pas deze toe op Azure en later op Azure Stack Hub. Noteer eventuele afwijkingen die niet worden verwacht en geef feedback.

Volgende stappen

Meer informatie over AKS in Azure Stack Hub