Sdílet prostřednictvím


Použití Azure Kubernetes Service ve službě Azure Stack Hub s rozhraním příkazového řádku

Tento průvodce vám pomůže začít používat službu Azure Kubernetes Service (AKS) ve službě Azure Stack Hub. Tento článek popisuje hlavní sadu scénářů, které vás seznámí s AKS ve službě Azure Stack Hub. Funkce dostupné ve službě Azure Stack Hub jsou podmnožinou toho, co je k dispozici v globálním Azure.

V následujících částech:

  1. Dokončete požadavky na používání AKS ve službě Azure Stack Hub.
  2. Dokončete operace životního cyklu clusteru AKS pomocí Azure CLI a uživatelského portálu služby Azure Stack Hub.

Instalace rozhraní příkazového řádku Azure CLI

Pro váš počítač budete muset nainstalovat Azure CLI s podporou AKS. Připravte čistý počítač s Linuxem nebo Windows na instalaci verze Preview Azure CLI s podporou AKS. Ujistěte se, že na počítači není nainstalované Rozhraní příkazového řádku Azure, abyste se vyhnuli konfliktům s verzí Preview Azure CLI, kterou nainstalujete jako další. Většina následujících pokynů předpokládá, že používáte virtuální počítač s Linuxem, ale ekvivalentní postup najdete v dokumentaci k produktu ve Windows.

Po instalaci Azure CLI s podporou AKS neupgradujte Azure CLI. Pokud upgrade provedete, nahradí se verzí připravenou pro produkční prostředí, která nemá podporu AKS.

V případě počítače s Ubuntu postupujte podle pokynů v tématu Instalace Azure CLI v Linuxu.

Po instalaci Azure CLI s podporou AKS spuštěním následujícího příkazu Azure CLI ověřte správnost instalace:

    az --version

Toto je výstup z počítače s Linuxem:

výstup z počítače s Linuxem

Azure CLI by mělo mít verzi 2.28.0 nebo vyšší.

Připojení ke službě Azure Stack Hub

  1. Připojte se ke koncovému bodu služby Azure Stack Hub. K vytvoření konkrétního prostředí služby Azure Stack Hub, ke kterému se připojujete, musíte použít Azure CLI. Pokyny najdete v tématu Připojení ke službě Azure Stack Hub.

  2. Zaregistrujte své prostředí, aby se Azure CLI mohl připojit ke koncovému bodu Resource Manager služby Azure Stack Hub pro vaši instanci. Aktualizujte adresy URL v následujícím fragmentu kódu a spusťte následující příkaz:

    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. Nastavte aktivní prostředí.

    az cloud set -n aks-preview-test
    
  4. Aktualizujte konfiguraci prostředí.

    az cloud update --profile 2020-09-01-hybrid
    
  5. Připojte se k prostředí.

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

    Poznámka

    Pokud aktivujete chybu ověření certifikátu, které selhalo, může to být tím, že certifikát použitý pro koncový bod Azure Resource Manager není pro váš klientský počítač důvěryhodný. Pokud ano, musíte exportovat certifikát použitý v koncových bodech služby Azure Stack Hub a důvěřovat mu. Pokyny najdete v tématu Export kořenového certifikátu certifikační autority služby Azure Stack Hub.

    Konkrétně pro počítače s Linuxem si přečtěte: Microsoft Entra ID v Linuxu.

  6. Nastavte předplatné v relaci Azure CLI jako výchozí pomocí:

    az account set --subscription <subscription-id>
    
  7. Zaregistrujte poskytovatele prostředků Azure Kubernetes Service. Uveďte seznam dostupných poskytovatelů prostředků ve vašem předplatném.

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

    Výstup by měl vypadat takto:

    Výstup by měl vypadat takto:

  8. Poznamenejte si poskytovatele prostředků Microsoft.ContainerService a pak ho zaregistrujte:

    az provider register --namespace Microsoft.ContainerService
    
  9. Znovu spusťte krok sedm a ověřte stav registrace poskytovatele prostředků. Dokončení registrace může trvat několik minut.

Po dokončení těchto požadovaných kroků můžete pokračovat k otestováním následujících scénářů.

Vytvoření clusteru AKS

Globální pokyny k Azure najdete v tématu Nasazení clusteru Azure Kubernetes Service pomocí Azure CLI. Tyto pokyny odrážejí omezení používání AKS ve službě Azure Stack Hub. Pomocí Azure CLI můžete vytvořit cluster AKS pro kontejnery s Linuxem nebo Windows.

  1. Vytvořte skupinu prostředků:

    az group create --name myResourceGroup --location <Azure Stack Hub location>
    
  2. Ujistěte se, že máte ve svém předplatném připravené ID instančního objektu s oprávněním přispěvatele, abyste v něm mohli vytvářet clustery.

    1. Pokud chcete vytvořit instanční objekt (SPN) pomocí ID Microsoft Entra, postupujte podle těchto pokynů.
    2. Pokud chcete vytvořit hlavní název služby (SPN) pomocí služby Active Directory Federated Services (AD FS), postupujte podle těchto pokynů.
    3. Informace o přiřazení role Přispěvatel k hlavnímu názvu služby (SPN) najdete v pokynech. Nezapomeňte vybrat roli Přispěvatel.
  3. Vytvořte cluster AKS se třemi uzly agentů. Zadejte hodnoty parametrů níže, uvádíme příklady. Spusťte tento příkaz:

    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
    

    Výstup této operace bude ve formátu JSON a bude obsahovat specifikaci clusteru, včetně vygenerovaného veřejného klíče SSH, plně kvalifikovaného názvu domény (FQDN) používaného v clusteru a dalších vlastností. Všimněte si, že výstupem příkazu bude text, jako je tento, který zvýrazní umístění privátního klíče: SSH key files '/home/azureuser/.ssh/id_rsa' a '/home/azureuser/.ssh/id_rsa.pub' vygeneroval se v části \~/.ssh , aby byl povolen přístup k virtuálnímu počítači SSH. Tyto klíče uložte na bezpečném místě, abyste je mohli použít pro případ, že je potřeba připojit se k virtuálním počítačům pomocí SSH, jako je tomu při řešení potíží.

  4. Teď můžete pokračovat opakováním testů pro škálování, nasazení aplikace a odstranění.

Připojení ke clusteru

  1. Ke správě clusteru Kubernetes použijete kubectl, klienta příkazového řádku Kubernetes. Pokud chcete kubectl nainstalovat místně, použijte příkaz az aks install-cli (možná budete muset použít sudo na začátku, abyste k jeho instalaci měli oprávnění):

    az aks install-cli
    
  2. Pokud chcete nakonfigurovat kubectl pro připojení ke clusteru az aks get-credentials Kubernetes, použijte příkaz . Tento příkaz stáhne přihlašovací údaje a nakonfiguruje rozhraní příkazového řádku Kubernetes tak, aby je používalo.

    az aks get-credentials --resource-group myResourceGroup --name myakscluster --admin
    
  3. Pokud chcete ověřit připojení ke clusteru, použijte příkaz kubectl get, který vrátí seznam uzlů clusteru.

    kubectl get nodes
    

ověření připojení ke clusteru

Škálování clusteru

Další úlohou správy clusteru je škálování clusteru. Cluster můžete kdykoli po vytvoření škálovat pomocí příkazu az aks scale. Pokud chcete škálovat cluster z počátečních tří uzlů na 4, spusťte:

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

Po úspěšném škálování clusteru bude výstup obsahovat agentPoolProfiles podobný následujícímu příkladu:

    "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
        }
    ]

Odstranění clusteru

Po provedení předchozích operací můžete pokračovat k odstranění clusteru. Spusťte tento příkaz:

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

Vytvoření clusteru AKS s vlastní virtuální sítí

Běžným scénářem je vytvoření clusteru, který se má nasadit v síti poskytované uživatelem. Plánování konfigurace sítě vyžaduje určitou přípravu. Všimněte si také, že u AKS je výchozím síťovým modulem plug-in Azure CNI, nikoli Kubenet jako v případě modulu AKS. S Azure CNI získá každý pod IP adresu z podsítě a je k němu možné přistupovat přímo (bez nutnosti použití směrovací tabulky, jako je tomu v případě Kubenetu). Tyto IP adresy musí být jedinečné v rámci vašeho síťového prostoru a musí být naplánované. Následující článek vás provede procesem plánování nasazení vlastní virtuální sítě. Můžete najít různé konfigurace sítě, které fungují pro vaše potřeby, a otestovat je. Pro počáteční test vám následující dva kroky ukážou základní proces:

  1. Při plánování nasazení pomocí Azure CNI postupujte podle pokynů v tomto článku . Pomocí portálu můžete například vytvořit virtuální síť myAKSVnet s rozsahem IP adres 10.0.0.0/8 s podsítí myAKSSubnet a rozsahem IP adres 10.240.0.0/16 ve skupině prostředků myTest-rg. Pak použijte další krok k vytvoření clusteru.

    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. Všimněte si, že příkaz clusteru uvedený v článku o Azure funguje správně při nasazování v Azure. Pokud chcete provést nasazení do služby Azure Stack Hub, musíte zadat další parametry jako v následujícím příkladu. ID podsítě virtuální sítě by mělo vypadat takto: /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
    
  3. Postupujte podle pokynů v části Připojení ke clusteru a připojte se ke clusteru Kubernetes a nasaďte své aplikace.

Kontrola konzistence

Kontrola konzistence mezi Azure a službou Azure Stack Hub

  1. Vyberte kombinaci příkazů z výše testovaných příkazů, z níže uvedené části Referenční informace o příkazech nebo z vlastních každodenních skriptů.
  2. Použijte je v Azure a později ve službě Azure Stack Hub. Poznamenejte si případné nesrovnalosti, které nejsou očekávané, a poskytněte nám zpětnou vazbu.

Další kroky

Informace o AKS ve službě Azure Stack Hub