Använda Azure Kubernetes Service på Azure Stack Hub med CLI
Den här artikeln är en guide för att komma igång med tjänsten Azure Kubernetes Service (AKS) på Azure Stack Hub. Den beskriver de viktigaste scenarierna för att bekanta dig med AKS på Azure Stack Hub. Funktionerna som är tillgängliga i Azure Stack Hub är en delmängd av vad som är tillgängligt i globala Azure.
I följande avsnitt:
Slutför förutsättningarna för att använda AKS på Azure Stack Hub.
Slutför livscykelåtgärderna för ett AKS-kluster med hjälp av Azure CLI och Azure Stack Hub-användarportalen.
Installera Azure CLI
Du måste installera Azure CLI med AKS-stöd för din dator. Förbered en ren Linux- eller Windows-dator för att installera förhandsversionen av Azure CLI med AKS-stöd. Se till att datorn inte har Azure CLI installerat för att undvika konflikter med förhandsversionen av Azure CLI som du installerar härnäst. De flesta av följande instruktioner förutsätter att du använder en virtuell Linux-dator, men du hittar motsvarande steg i Windows i produktdokumentationen.
Uppgradera inte Azure CLI när du har installerat Azure CLI med AKS-stöd. Om du uppgraderar ersätts den av den produktionsklara versionen som saknar AKS-stöd.
För en Ubuntu-dator följer du anvisningarna i Installera Azure CLI på Linux.
När du har installerat Azure CLI med AKS-stöd kontrollerar du att installationen är korrekt genom att köra följande Azure CLI-kommando:
az --version
Här är ett exempel på utdata från en Linux-dator:
Azure CLI ska vara 2.28.0 eller senare.
Ansluta till Azure Stack Hub
Anslut till din Azure Stack Hub-slutpunkt. Du måste använda Azure CLI för att upprätta den specifika Azure Stack Hub-miljö som du ansluter till. Du hittar anvisningarna i Anslut till Azure Stack Hub.
Registrera din miljö så att Azure CLI kan ansluta till Azure Stack Hub Resource Manager-slutpunkten för din instans. Uppdatera URL:erna i följande kodfragment och kör följande kommando:
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"
Ange den aktiva miljön.
az cloud set -n aks-preview-test
Uppdatera din miljökonfiguration.
az cloud update --profile 2020-09-01-hybrid
Anslut till miljön.
az login -u 'user@contoso.onmicrosoft.com' -p 'xxxxxxx' --tenant 'contoso.onmicrosoft.com'
Note
Om du orsakar ett fel "certifikatkontroll misslyckades" kan det bero på att certifikatet som används för Azure Resource Manager-slutpunkten inte är betrott av klientdatorn. I så fall måste du exportera certifikatet som används i Azure Stack Hub-slutpunkterna och lita på det. Du hittar instruktioner på Exportera Azure Stack Hub CA-rotcertifikatet.
I synnerhet för Linux-datorer se: Microsoft Entra ID på Linux
Använd följande kommando för att ange prenumerationen i Azure CLI-sessionen som standard:
az account set --subscription <subscription-id>
Registrera resursprovidern för Azure Kubernetes Service. Visa en lista över tillgängliga resursprovidrar i din prenumeration.
az provider list --query "[].{Provider:namespace, Status:registrationState}" --out table
Utdata bör se ut så här:
Anteckna Microsoft.ContainerService resursprovider och registrera sedan providern:
az provider register --namespace Microsoft.ContainerService
Kör steg 7 igen för att verifiera registreringsstatusen för resursprovidern. Registreringen kan ta flera minuter att slutföra.
När de nödvändiga stegen har slutförts kan du testa följande scenarier.
Skapa ett AKS-kluster
Du hittar de globala Azure-anvisningarna i Distribuera ett Azure Kubernetes Service-kluster med hjälp av Azure CLI-. Anvisningarna här återspeglar begränsningarna med att använda AKS på Azure Stack Hub. Du kan använda Azure CLI för att skapa ett AKS-kluster för Linux- eller Windows-containrar.
Skapa en resursgrupp:
az group create --name myResourceGroup --location <Azure Stack Hub location>
Kontrollera att du har ett tjänstehuvud-ID redo med bidragsgivarbehörighet på din prenumeration för att skapa kluster i den.
- Om du vill skapa ett tjänsthuvudnamn (SPN) med hjälp av Microsoft Entra-ID följer du dessa instruktioner.
- Om du vill skapa ett SPN med Active Directory Federated Services (AD FS) följer du dessa instruktioner.
- För att tilldela rollen "Deltagare" till SPN, se instruktioner. Se till att välja rollen Deltagare.
Skapa ett AKS-kluster med tre agentnoder. Ange värden för följande parametrar, exempel anges. Springa:
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
Utdata från den här åtgärden är i json-format och innehåller en specifikation av klustret, inklusive den offentliga ssh-nyckel som genereras, fullständigt kvalificerade domännamn (FQDN) som används i klustret bland andra egenskaper. Observera att kommandot matar ut text som den här och markerar platsen för den privata nyckeln:
SSH key files '/home/azureuser/.ssh/id_rsa'
och'/home/azureuser/.ssh/id_rsa.pub'
genereras under\~/.ssh
för att tillåta SSH-åtkomst till den virtuella datorn. Lagra dessa nycklar på en säker plats som ska användas om det finns ett behov av att ssh i de virtuella datorerna, vilket är fallet när du felsöker problem.Nu kan du fortsätta att upprepa testerna för Scale, distribuera en appoch Ta bort.
Ansluta till klustret
Om du vill hantera ett Kubernetes-kluster använder du kubectl, kubernetes-kommandoradsklienten. Om du vill installera kubectl lokalt använder du kommandot
az aks install-cli
(du kan behöva använda "sudo" i början för att ha behörighet att installera det):az aks install-cli
Om du vill konfigurera kubectl- för att ansluta till kubernetes-klustret använder du kommandot
az aks get-credentials
. Det här kommandot laddar ned autentiseringsuppgifter och konfigurerar Kubernetes CLI för att använda dem.az aks get-credentials --resource-group myResourceGroup --name myakscluster --admin
Om du vill verifiera anslutningen till klustret använder du kommandot kubectl hämta för att returnera en lista över klusternoderna.
kubectl get nodes
Skala kluster
En annan klusterhanteringsuppgift är att skala ett kluster. Du kan skala ett kluster när som helst efter att det har skapats med hjälp av kommandot az aks scale
. Om du vill skala klustret från de tre första noderna till 4 kör du:
az aks scale --resource-group myResourceGroup --name myakscluster --node-count 4
När klustret har skalats innehåller utdata en "agentPoolProfiles" som liknar följande exempel:
"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
}
]
Ta bort kluster
När de tidigare åtgärderna har utförts kan du ta bort klustret. Springa:
az aks delete --name myakscluster --resource-group myResourceGroup
Skapa AKS-kluster med anpassat virtuellt nätverk
Att skapa ett kluster som ska distribueras i ett användarbaserat nätverk är ett vanligt scenario. Planeringen av nätverkskonfigurationen kräver en del förberedelser. Observera också att med AKS är standardnätverkets plugin-program Azure CNI, inte Kubenet, vilket är fallet med AKS-motorn.
Med Azure CNI får varje podd en IP-adress från undernätet och kan nås direkt (utan behov av en routningstabell, vilket är fallet med Kubenet). Dessa IP-adresser måste vara unika i nätverket och måste planeras.
I följande artikel beskrivs hur du planerar för distributionen av ditt anpassade virtuella nätverk. Du hittar olika nätverkskonfigurationer som fungerar för dina behov och testar dem. För ett första test visar följande två steg den grundläggande processen:
Följ anvisningarna i den här artikeln för att planera distributionen med hjälp av Azure CNI. Du kan till exempel använda portalen för att skapa ett virtuellt nätverk med namnet "myAKSVnet" med IP-intervallet 10.0.0.0/8 med undernätet "myAKSSubnet" och IP-intervallet 10.240.0.0/16 i en resursgrupp med namnet "myTest-rg". Använd sedan nästa steg för att skapa klustret.
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
Observera att klusterkommandot i Azure-artikeln fungerar bra när du distribuerar på Azure för att distribuera till Azure Stack Hub måste du ange extra parametrar som i följande exempel. Det virtuella nätverksundernätets ID bör se ut som "/subscriptions/dfdfdff-5dfdf-dfdf-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
Följ anvisningarna i avsnittet "Anslut till klustret" för att ansluta till Kubernetes-klustret och distribuera dina program.
Konsekvenskontroll
Konsekvenskontroll mellan Azure och Azure Stack Hub
Välj en kombination av kommandon från de som testats ovan, från avsnittet "Kommandoreferens" eller från dina egna dagliga skript.
Tillämpa dem på Azure och senare på Azure Stack Hub. Observera oväntade avvikelser och ge feedback.