Udostępnij przez


Korzystanie z usługi Azure Kubernetes Service w usłudze Azure Stack Hub za pomocą interfejsu wiersza polecenia

Ten artykuł zawiera przewodnik umożliwiający rozpoczęcie korzystania z usługi Azure Kubernetes Service (AKS) w usłudze Azure Stack Hub. W tym artykule opisano główny zestaw scenariuszy, aby zapoznać się z usługą AKS w usłudze Azure Stack Hub. Funkcjonalność dostępna w Azure Stack Hub to podzbiór tego, co jest dostępne w globalnej platformie Azure.

W poniższych sekcjach będziesz:

  1. Spełnij wymagania wstępne dotyczące korzystania z usługi AKS w usłudze Azure Stack Hub.

  2. Ukończ operacje cyklu życia klastra usługi AKS przy użyciu interfejsu wiersza polecenia platformy Azure i portalu użytkowników usługi Azure Stack Hub.

Instalowanie CLI Azure

Musisz zainstalować Azure CLI z obsługą AKS na swojej maszynie. Przygotuj czystą maszynę z systemem Linux lub Windows do zainstalowania wersji zapoznawczej interfejsu wiersza polecenia platformy Azure przy użyciu obsługi usługi AKS. Upewnij się, że na maszynie nie ma zainstalowanego Azure CLI, aby uniknąć konfliktu z wersją zapoznawczą Azure CLI, którą zainstalujesz później. Większość poniższych instrukcji zakłada, że używasz maszyny wirtualnej z systemem Linux, ale w dokumentacji produktu możesz znaleźć równoważne kroki w systemie Windows.

Nie uaktualnij interfejsu wiersza polecenia platformy Azure po zainstalowaniu interfejsu wiersza polecenia platformy Azure przy użyciu obsługi usługi AKS. Jeśli wykonasz uaktualnienie, zostanie zastąpiona wersją gotową do produkcji, która nie obsługuje usługi AKS.

W przypadku maszyny z systemem Ubuntu postępuj zgodnie z instrukcjami w temacie Instalowanie interfejsu wiersza polecenia platformy Azure w systemie Linux.

Po zainstalowaniu interfejsu wiersza polecenia platformy Azure z obsługą usługi AKS sprawdź, czy instalacja jest poprawna, uruchamiając następujące polecenie interfejsu wiersza polecenia platformy Azure:

    az --version

Oto przykładowe dane wyjściowe z maszyny z systemem Linux:

dane wyjściowe z maszyny z systemem Linux

Interfejs wiersza polecenia platformy Azure powinien mieć wartość 2.28.0 lub nowszą.

Nawiązywanie połączenia z usługą Azure Stack Hub

  1. Połącz się z punktem końcowym usługi Azure Stack Hub. Musisz użyć interfejsu wiersza polecenia platformy Azure, aby ustanowić konkretne środowisko usługi Azure Stack Hub, z którym nawiązujesz połączenie. Instrukcje można znaleźć w temacie Nawiązywanie połączenia z usługą Azure Stack Hub.

  2. Zarejestruj środowisko, aby Azure CLI mógł połączyć się z punktem końcowym Azure Stack Hub Resource Manager dla twojego środowiska. Zaktualizuj adresy URL w poniższym fragmencie kodu i uruchom następujące polecenie:

    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. Ustaw aktywne środowisko.

    az cloud set -n aks-preview-test
    
  4. Zaktualizuj konfigurację środowiska.

    az cloud update --profile 2020-09-01-hybrid
    
  5. Nawiąż połączenie ze środowiskiem.

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

    Uwaga / Notatka

    Jeśli pojawi się błąd weryfikacja certyfikatu nie powiodła się, może to oznaczać, że certyfikat używany dla punktu końcowego usługi Azure Resource Manager nie jest zaufany przez komputer kliencki. Jeśli tak, musisz wyeksportować certyfikat używany w punktach końcowych usługi Azure Stack Hub i zaufać mu. Instrukcje można znaleźć w temacie Eksportowanie certyfikatu głównego urzędu certyfikacji usługi Azure Stack Hub.

    W szczególności w przypadku maszyn z systemem Linux zobacz: Microsoft Entra ID w systemie Linux

  6. Użyj następującego polecenia, aby ustawić subskrypcję w sesji interfejsu wiersza polecenia platformy Azure jako domyślną:

    az account set --subscription <subscription-id>
    
  7. Zarejestruj dostawcę zasobów usługi Azure Kubernetes Service. Wyświetl listę dostępnych dostawców zasobów w ramach subskrypcji.

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

    Dane wyjściowe powinny wyglądać następująco:

    Dane wyjściowe powinny wyglądać następująco:

  8. Zanotuj dostawcę zasobów Microsoft.ContainerService , a następnie zarejestruj dostawcę:

    az provider register --namespace Microsoft.ContainerService
    
  9. Uruchom ponownie krok 7, aby zweryfikować stan rejestracji dostawcy zasobów. Rejestracja może potrwać kilka minut.

Po wykonaniu tych kroków wymagań wstępnych możesz przetestować następujące scenariusze.

Utwórz klaster AKS

Globalne instrukcje dotyczące platformy Azure można znaleźć w temacie Deploy an Azure Kubernetes Service cluster using the Azure CLI (Wdrażanie klastra usługi Azure Kubernetes Service przy użyciu interfejsu wiersza polecenia platformy Azure). Instrukcje w tym miejscu odzwierciedlają ograniczenia korzystania z usługi AKS w usłudze Azure Stack Hub. Interfejs wiersza polecenia platformy Azure umożliwia utworzenie klastra usługi AKS dla kontenerów systemu Linux lub Windows.

  1. Tworzenie grupy zasobów:

    az group create --name myResourceGroup --location <Azure Stack Hub location>
    
  2. Upewnij się, że masz gotowy identyfikator głównego serwisu z uprawnieniem współautora w swojej subskrypcji do tworzenia klastrów.

    1. Aby utworzyć jednostkę usługi (SPN) przy użyciu identyfikatora Entra firmy Microsoft, postępuj zgodnie z tymi instrukcjami.
    2. Aby utworzyć nazwę SPN przy użyciu usług Federacyjnych Active Directory (AD FS), postępuj zgodnie z tymi instrukcjami.
    3. Aby przypisać rolę "Contributor" do SPN, zobacz instrukcje. Pamiętaj, aby wybrać rolę "Współautor".
  3. Utwórz klaster AKS składający się z trzech węzłów agentów. Podaj wartości następujących parametrów. Podano przykłady. Biegnij:

    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
    

    Dane wyjściowe tej operacji są w formacie json i zawierają specyfikację klastra, w tym wygenerowany klucz publiczny SSH, w pełni kwalifikowaną nazwę domeny (FQDN) używaną w klastrze między innymi właściwościami. Zwróć uwagę, że polecenie zwraca tekst podobny do tego, wyróżniając lokalizację klucza prywatnego: SSH key files '/home/azureuser/.ssh/id_rsa' i '/home/azureuser/.ssh/id_rsa.pub' są generowane w \~/.ssh celu umożliwienia dostępu za pomocą protokołu SSH do maszyny wirtualnej. Przechowuj te klucze w bezpiecznej lokalizacji, aby można było ich używać, jeśli podczas rozwiązywania problemów konieczne jest użycie protokołu SSH na maszynach wirtualnych.

  4. Teraz możesz kontynuować powtarzanie testów skalowania, wdrażania aplikacji i usuwania.

Połącz się z klastrem

  1. Aby zarządzać klastrem Kubernetes, należy użyć klienta wiersza polecenia usługi Kubernetes — narzędzia kubectl. Aby zainstalować narzędzie kubectl lokalnie, użyj az aks install-cli polecenia (może być konieczne użycie polecenia "sudo" na początku, aby mieć uprawnienia do jego zainstalowania):

    az aks install-cli
    
  2. Aby skonfigurować narzędzie kubectl w celu nawiązania połączenia z klastrem Kubernetes, użyj polecenia az aks get-credentials. To polecenie pobiera poświadczenia i konfiguruje Kubernetes CLI do ich użycia.

    az aks get-credentials --resource-group myResourceGroup --name myakscluster --admin
    
  3. Aby zweryfikować połączenie z klastrem, użyj polecenia kubectl get, aby zwrócić listę węzłów klastra.

    kubectl get nodes
    

    weryfikowanie połączenia z klastrem

Skalowanie klastra

Innym zadaniem zarządzania klastrem jest skalowanie klastra. Klaster można skalować w dowolnym momencie po jego utworzeniu az aks scale przy użyciu polecenia . Aby skalować klaster z pierwszych trzech węzłów do 4, uruchom polecenie:

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

Po pomyślnym skalowaniu klastra dane wyjściowe zawierają element "agentPoolProfiles" podobny do następującego przykładu:

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

Usuwanie klastra

Po wykonaniu poprzednich operacji można usunąć klaster. Biegnij:

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

Utwórz klaster AKS z niestandardową siecią wirtualną

Tworzenie klastra do wdrożenia w sieci udostępnionej przez użytkownika jest typowym scenariuszem. Planowanie konfiguracji sieci wymaga przygotowania. Zwróć również uwagę, że w przypadku usługi AKS domyślną wtyczką sieciową jest Azure CNI, a nie Kubenet, jak ma to miejsce w przypadku silnika AKS.

W przypadku Azure CNI każdy pod otrzymuje adres IP z podsieci i można się do niego bezpośrednio dostać (bez konieczności używania tabeli routingu, tak jak w przypadku Kubenet). Te adresy IP muszą być unikatowe w przestrzeni sieciowej i muszą być planowane.

W poniższym artykule przedstawiono proces planowania wdrożenia niestandardowej sieci wirtualnej. Możesz znaleźć różne konfiguracje sieci, które działają dla Twoich potrzeb i przetestować je. W przypadku testu początkowego następujące dwa kroki pokazują podstawowy proces:

  1. Postępuj zgodnie z instrukcjami w tym artykule , aby zaplanować wdrożenie przy użyciu usługi Azure CNI. Na przykład można użyć portalu do utworzenia sieci wirtualnej o nazwie "myAKSVnet" z zakresem adresów IP 10.0.0.0/8 z podsiecią "myAKSSubnet" i zakresem adresów IP 10.240.0.0/16 w grupie zasobów o nazwie "myTest-rg". Następnie użyj następnego kroku do utworzenia klastra.

    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. Zwróć uwagę, że polecenie klastra podane w artykule dotyczącym platformy Azure działa prawidłowo podczas wdrażania na platformie Azure, aby wdrożyć w usłudze Azure Stack Hub, należy określić dodatkowe parametry, jak w poniższym przykładzie. Identyfikator podsieci sieci wirtualnej powinien wyglądać następująco: "/subscriptions/dfdfdff-5dfdf-dfdf-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
    
  3. Postępuj zgodnie z instrukcjami w sekcji "Nawiązywanie połączenia z klastrem", aby nawiązać połączenie z klastrem Kubernetes i wdrożyć aplikacje.

Sprawdzanie spójności

Sprawdzanie spójności między platformą Azure i usługą Azure Stack Hub

  1. Wybierz kombinację poleceń z tych przetestowanych powyżej, z sekcji "Referencja poleceń" lub z własnych codziennych skryptów.

  2. Zastosuj je do platformy Azure, a później do usługi Azure Stack Hub. Zwróć uwagę na wszelkie niezgodności, których nie oczekiwano, i prześlij opinię.

Dalsze kroki