Använda Azure Kubernetes Service på Azure Stack Hub med CLI
Det här är en guide som hjälper dig att komma igång med tjänsten Azure Kubernetes Service (AKS) på Azure Stack Hub. Den här artikeln beskriver huvuduppsättningen med scenarier som hjälper dig att bekanta dig med AKS på Azure Stack Hub. Funktionerna som är tillgängliga i Azure Stack Hub är en delmängd av det som är tillgängligt i globala Azure.
I följande avsnitt kommer du att:
- 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. Kontrollera att Azure CLI inte är installerat på datorn för att undvika konflikter med förhandsversionen av Azure CLI som du ska installera härnäst. De flesta av anvisningarna nedan 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
Det här är 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 Ansluta till Azure Stack Hub
Registrera din miljö så att Azure CLI kan ansluta till Azure Stack Hub-Resource Manager slutpunkt 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'
Anteckning
Om du utlöser ett fel om att verifieringen av certifikatet 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. Anvisningar finns i Exportera Rotcertifikat för Azure Stack Hub CA.
I synnerhet för Linux-datorer se: Microsoft Entra-ID i Linux
Ange prenumerationen i Azure CLI-sessionen som standard med:
az account set --subscription <subscription-id>
Registrera Azure Kubernetes Service resursprovidern. 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 resursprovidern Microsoft.ContainerService och registrera sedan providern:
az provider register --namespace Microsoft.ContainerService
Kör steg sju 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 fortsätta att 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änsthuvudnamns-ID klart med deltagarbehörighet för din prenumeration för att skapa kluster i den.
- Följ dessa instruktioner om du vill skapa ett tjänsthuvudnamn (SPN) med hjälp av Microsoft Entra-ID.
- Följ dessa instruktioner om du vill skapa ett SPN med Active Directory Federated Services (AD FS).
- Information om hur du tilldelar rollen Deltagare till SPN finns i anvisningarna. Se till att välja rollen Deltagare.
Skapa ett AKS-kluster med tre agentnoder. Ange värden för parametrarna nedan, exempel tillhandahålls. Kör följande:
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 kommer att vara i json-format och innehåller en specifikation av klustret, inklusive den offentliga SSH-nyckel som genereras, det fullständigt kvalificerade domännamnet (FQDN) som används i klustret bland andra egenskaper. Observera att kommandot matar ut en text som den här som visar platsen för den privata nyckeln:
SSH key files '/home/azureuser/.ssh/id_rsa'
och'/home/azureuser/.ssh/id_rsa.pub'
har genererats 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 vid felsökning av problem.Nu kan du fortsätta med att upprepa testerna för Skala, distribuera en app och Ta bort.
Anslut till klustret
För att hantera Kubernetes-kluster använder du kubectl, Kubernetes kommandoradsklient. Om du vill installera kubectl lokalt använder du kommandot az aks install-cli (du kan behöva använda "sudo" i te 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 ditt Kubernetes-kluster använder du
az aks get-credentials
kommandot . 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 get för att returnera en lista över klusternoderna.
kubectl get nodes
Skala ett kluster
En annan klusterhanteringsuppgift är att skala ett kluster. Du kan skala ett kluster när som helst när 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 klustret
När de tidigare åtgärderna har utförts kan du fortsätta att ta bort klustret. Kör följande:
az aks delete --name myakscluster --resource-group myResourceGroup
Skapa AKS-kluster med anpassat VNET
Att skapa ett kluster som ska distribueras i ett nätverk som tillhandahålls av användaren ä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ätverksutrymmet och måste planeras. Följande artikel beskriver steg för steg hur du planerar för din anpassade VNET-distribution. 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. Undernäts-ID:t för det virtuella nätverket bör se ut så här: "/subscriptions/dfdfdff-5dfdf-dfdf-dfdfdfdfd/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, i avsnittet "Kommandoreferens" nedan eller från dina egna dagliga skript.
- Tillämpa dem på Azure och senare på Azure Stack Hub. Observera eventuella avvikelser som inte förväntas och ge feedback.