Szybki start: tworzenie klastra automatycznego Azure Kubernetes Service (AKS)

Dotyczy: ✔️ AKS Automatic

Azure Kubernetes Service (AKS) Automatic to zarządzane środowisko Kubernetes, które automatyzuje konfigurację i operacje klastra AKS oraz osadza konfiguracje zgodne z najlepszymi praktykami. Usługa AKS Automatic obejmuje również [umowę SLA dotyczącą gotowości zasobnika][azure-sla], która gwarantuje 99,9% kwalifikujących się operacji gotowości zasobnika w ciągu 5 minut, gwarantując niezawodną infrastrukturę samonaprawiania dla aplikacji. W tym przewodniku Szybki start dowiesz się, jak:

  • Wdróż automatyczny klaster AKS.
  • Uruchom przykładową aplikację z wieloma kontenerami z grupą mikrousług i frontonów internetowych symulujących scenariusz sprzedaży detalicznej.

Zanim rozpoczniesz

  • Azure CLI w wersji 2.77.0 lub nowszej. Znajdź swoją wersję przy użyciu az --version polecenia . Aby zainstalować lub uaktualnić, zobacz Install Azure CLI. Jeśli używasz Azure Cloud Shell, najnowsza wersja jest już tam zainstalowana.
  • Jeśli masz wiele subskrypcji Azure, wybierz odpowiedni identyfikator subskrypcji do rozliczania zasobów przy użyciu polecenia az account set.
  • Aby wdrożyć plik Bicep, musisz mieć dostęp do zapisu w zasobach, które tworzysz, oraz dostęp do wykonywania wszystkich operacji na zasobie typu Microsoft.Resources/deployments. Aby na przykład utworzyć maszynę wirtualną, musisz mieć uprawnienia Microsoft.Compute/virtualMachines/write i Microsoft.Resources/deployments/*. Aby uzyskać listę ról i uprawnień, zobacz wbudowane role Azure.

Ograniczenia

  • Pula węzłów systemowych klastrów automatycznych w usłudze AKS wymaga wdrożenia w regionach Azure, które obsługują co najmniej trzy strefy dostępności, dysk systemowy efemeryczny oraz system operacyjny Azure Linux.
  • Usługa AKS Automatic jest dostępna w następujących regionach: australiaeast, austriaeast, belgiumcentral, brazilsouth, canadacentral, centralindia, centralus, chilecentral, denmarkeast, eastasia, eastus, eastus2, francecentral, germanywestcentral, indonesiacentral, israelcentral, italynorth, japaneast, japanwest, koreacentral, malaysiawest, mexicocentral, newzealandnorth, northcentralus, northeurope, norwayeast, polandcentral, southafricanorth, southcentralus, southeastasia, spaincentral, swedencentral, switzerlandnorth, uaenorth, uksouth, westeurope, westus, westus2, westus3.
  • Klaster automatyczny usługi AKS został wstępnie skonfigurowany z blokadą grupy zasobów node, co nie pozwala na zmiany w grupie zasobów MC_, uniemożliwiając łączenie do sieci wirtualnej w domyślnej strefie nazw Private DNS. W przypadku scenariuszy między sieciami wirtualnymi (VNet) lub niestandardowymi systemami DNS użyj niestandardowej sieci i prywatnego DNS, postępując zgodnie z instrukcjami podanymi w Utwórz prywatny klaster usługi Azure Kubernetes (AKS) automatyczny w niestandardowej sieci wirtualnej.

Ważne

AKS Automatic próbuje dynamicznie wybrać rozmiar maszyny wirtualnej dla system puli węzłów na podstawie pojemności dostępnej w ramach subskrypcji. Upewnij się, że twoja subskrypcja ma limit przydziału dla 16 vCPU o dowolnym z następujących rozmiarów w regionie, w którym wdrażasz klaster: Standard_D4lds_v5, Standard_D4ads_v5, Standard_D4ds_v5, Standard_D4d_v5, Standard_D4d_v4, Standard_DS3_v2, Standard_DS12_v2, Standard_D4alds_v6, Standard_D4lds_v6 lub Standard_D4alds_v5. Limity można przeglądać dla określonych rodzin maszyn wirtualnych i przesyłać żądania zwiększenia limitu za pośrednictwem portalu Azure. Jeśli masz dodatkowe pytania, dowiedz się więcej, zapoznaj się z dokumentami rozwiązywania problemów.

Tworzenie grupy zasobów

Grupa zasobów Azure to grupa logiczna, w której Azure zasoby są wdrażane i zarządzane.

Utwórz grupę zasobów przy użyciu polecenia az group create. Poniższy przykład tworzy grupę zasobów o nazwie myResourceGroup w lokalizacji eastus :

az group create --name myResourceGroup --location eastus

Następujące przykładowe dane wyjściowe przypominają pomyślne utworzenie grupy zasobów:

{
  "id": "/subscriptions/<guid>/resourceGroups/myResourceGroup",
  "location": "eastus",
  "managedBy": null,
  "name": "myResourceGroup",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null
}

Utwórz automatyczny klaster AKS

Utwórz automatyzowany klaster usługi AKS, używając polecenia az aks create z ustawionym parametrem --sku na wartość automatic. W poniższym przykładzie tworzony jest klaster o nazwie myAKSAutomaticCluster z włączoną funkcją Managed Prometheus i włączoną integracją usługi Container Insights:

az aks create \
    --resource-group myResourceGroup \
    --name myAKSAutomaticCluster \
    --sku automatic

Po kilku minutach polecenie zostanie wykonane i zwróci informacje o klastrze w formacie JSON.

Tworzenie automatycznego klastra Kubernetes

  1. Aby utworzyć klaster AKS Automatic, wyszukaj i wybierz Usługi Kubernetes. Spowoduje to przejście do strony Centrum Kubernetes (wersja zapoznawcza).

  2. Na stronie Centrum Kubernetes (wersja zapoznawcza) wybierz pozycję Utwórz>automatyczny klaster Kubernetes.

    Zrzut ekranu przedstawiający przycisk Utwórz automatyczny klaster AKS w portalu Azure.

  3. Na karcie Podstawy wypełnij wszystkie wymagane pola (Subskrypcja, Grupa zasobów, Nazwa klastra Kubernetes i Region), a następnie wybierz pozycję Dalej.

     Zrzut ekranu przedstawiający kartę Tworzenie — podstawy dla klastra automatycznego usługi AKS w portalu Azure.

  4. Na karcie Monitoring wybierz żądane konfiguracje monitorowania z Azure Monitor (Container Insights), Managed Prometheus, Grafana Dashboards, Container Network Observability (ACNS) i Alerts, a następnie wybierz pozycję Next.

     Zrzut ekranu przedstawiający kartę Monitorowanie podczas tworzenia klastra automatycznego usługi AKS w portalu Azure.

  5. Na karcie Advanced wybierz żądane zaawansowane konfiguracje: Dostęp prywatny, Azure Virtual Network, zarządzana tożsamość, Zabezpieczenia Sieci Kontenerowej (ACNS) i zarządzane przestrzenie nazw Kubernetes, a następnie wybierz pozycję Przegląd + utwórz.

     Zrzut ekranu przedstawiający kartę Zaawansowane podczas tworzenia klastra automatycznego usługi AKS w portalu Azure.

  6. Przejrzyj konfiguracje na karcie Przeglądanie i tworzenie , a następnie wybierz pozycję Utwórz , aby wdrożyć klaster automatyczny usługi AKS.

  7. Rozpocznij konfigurowanie swojej pierwszej aplikacji z GitHub i ustaw zautomatyzowany proces wdrażania.

     Zrzut ekranu karty 'Get Started' na karcie 'Przegląd' po utworzeniu automatycznego klastra AKS w portalu Azure.

Przejrzyj plik Bicep

Poniższy plik Bicep definiuje klaster automatyczny usługi AKS:

@description('The name of the managed cluster resource.')
param clusterName string = 'myAKSAutomaticCluster'

@description('The location of the managed cluster resource.')
param location string = resourceGroup().location

resource aks 'Microsoft.ContainerService/managedClusters@2024-03-02-preview' = {
  name: clusterName
  location: location  
  sku: {
  name: 'Automatic'
  }
  properties: {
    agentPoolProfiles: [
      {
        name: 'systempool'
        mode: 'System'
  count: 3
      }
    ]
  }
  identity: {
    type: 'SystemAssigned'
  }
}

Aby uzyskać więcej informacji na temat zasobu zdefiniowanego w pliku Bicep, zobacz Microsoft.ContainerService/managedClusters odniesienie.

Wdróż plik Bicep

  1. Zapisz plik Bicep jako main.bicep na komputer lokalny.

    Ważne

    Plik Bicep ustawia parametr clusterName na ciąg myAKSAutomaticCluster. Jeśli chcesz użyć innej nazwy klastra, pamiętaj o zaktualizowaniu ciągu do preferowanej nazwy klastra przed zapisaniem pliku na komputerze.

  2. Wdróż plik Bicep przy użyciu polecenia [az deployment group create][az-deployment-group-create].

    az deployment group create --resource-group myResourceGroup --template-file main.bicep
    

    Utworzenie klastra AKS może potrwać kilka minut. Przed przejściem do następnego kroku poczekaj na pomyślne wdrożenie klastra.

Łączenie z klastrem

Aby zarządzać klastrem Kubernetes, użyj klienta wiersza polecenia kubernetes kubectl. kubectl jest już zainstalowany, jeśli używasz Azure Cloud Shell. Można zainstalować kubectl lokalnie za pomocą polecenia az aks install-cli. Klastry automatyczne AKS są konfigurowane przy użyciu Microsoft Entra ID dla kontroli dostępu opartej na rolach (RBAC) platformy Kubernetes.

Uwaga

Podczas tworzenia klastra przy użyciu Azure CLI użytkownikowi są przypisane role wbudowane dla .

  1. Skonfiguruj kubectl, aby nawiązać połączenie z klastrem Kubernetes za pomocą 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 myAKSAutomaticCluster
    
  2. Zweryfikuj połączenie z klastrem, używając polecenia kubectl get. To polecenie zwraca listę węzłów klastra.

    kubectl get nodes
    

    W poniższych przykładowych danych wyjściowych przedstawiono, jak jesteś proszony o zalogowanie się.

    To sign in, use a web browser to open the page https://microsoft.com/devicelogin and enter the code AAAAAAAAA to authenticate.
    

    Po zalogowaniu się następujące przykładowe dane wyjściowe przedstawiają zarządzane pule węzłów systemu. Upewnij się, że stan węzła to Gotowe.

    NAME                                STATUS   ROLES   AGE     VERSION
    aks-nodepool1-12345678-vmss000000   Ready    agent   2m26s   v1.28.5
    aks-nodepool1-12345678-vmss000001   Ready    agent   2m26s   v1.28.5
    aks-nodepool1-12345678-vmss000002   Ready    agent   2m26s   v1.28.5
    

Wdrażanie aplikacji

Aby wdrożyć aplikację, należy użyć pliku manifestu, aby utworzyć wszystkie obiekty wymagane do uruchomienia aplikacji AKS Store. Plik manifestu Kubernetes definiuje żądany stan klastra, taki jak jakie obrazy kontenerów mają być uruchamiane. Manifest obejmuje następujące wdrożenia i usługi Kubernetes:

 Zrzut ekranu przedstawiający przykładową architekturę Azure Store.

  • Front sklepu: aplikacja internetowa dla klientów do wyświetlania produktów i składania zamówień.
  • Usługa produktu: wyświetla informacje o produkcie.
  • Usługa zamówień: składa zamówienia.
  • Rabbit MQ: kolejka komunikatów dla kolejki zamówień.

Uwaga

Nie zalecamy uruchamiania kontenerów stanowych, takich jak Rabbit MQ, bez trwałej pamięci w produkcyjnym środowisku. Są one używane tutaj dla uproszczenia, ale zalecamy korzystanie z usług zarządzanych, takich jak Azure Cosmos DB lub Azure Service Bus.

  1. Utwórz przestrzeń nazw aks-store-demo w celu wdrożenia zasobów platformy Kubernetes.

    kubectl create ns aks-store-demo
    
  2. Wdróż aplikację przy użyciu kubectl apply polecenia w aks-store-demo przestrzeni nazw. Plik YAML definiujący wdrożenie znajduje się na GitHub.

    kubectl apply -n aks-store-demo -f https://raw.githubusercontent.com/Azure-Samples/aks-store-demo/main/aks-store-ingress-quickstart.yaml
    

    Następujące przykładowe dane wyjściowe przedstawiają wdrożenia i usługi:

    statefulset.apps/rabbitmq created
    configmap/rabbitmq-enabled-plugins created
    service/rabbitmq created
    deployment.apps/order-service created
    service/order-service created
    deployment.apps/product-service created
    service/product-service created
    deployment.apps/store-front created
    service/store-front created
    ingress/store-front created
    

Testowanie aplikacji

Podczas uruchamiania aplikacji usługa Kubernetes uwidacznia fronton aplikacji w Internecie. Ten proces może potrwać kilka minut.

  1. Sprawdź status wdrożonych podów za pomocą polecenia kubectl get pods. Przed kontynuowaniem upewnij się, że wszystkie zasobniki są Running gotowe. Jeśli jest to pierwsze obciążenie, które wdrażasz, automatyczne dostarczanie węzłów może potrwać kilka minut, aby utworzyć pulę węzłów do uruchamiania podów.

    kubectl get pods -n aks-store-demo
    
  2. Sprawdź publiczny adres IP aplikacji frontonu sklepu. Monitoruj postęp, używając polecenia kubectl get service z argumentem --watch.

    kubectl get ingress store-front -n aks-store-demo --watch
    

    Dane wyjściowe ADRESU dla store-front usługi początkowo są puste:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *                      80      12m
    
  3. Gdy adres zmieni się z pustego na rzeczywisty publiczny adres IP, użyj polecenia CTRL-C , aby zatrzymać kubectl proces oglądania.

    Następujące przykładowe dane wyjściowe pokazują prawidłowy publiczny adres IP przypisany do usługi:

    NAME          CLASS                                HOSTS   ADDRESS        PORTS   AGE
    store-front   webapprouting.kubernetes.azure.com   *       4.255.22.196   80      12m
    
  4. Otwórz przeglądarkę internetową i przejdź do zewnętrznego adresu IP twojego ruchu przychodzącego, aby zobaczyć aplikację Azure Store w działaniu.

    Zrzut ekranu przedstawiający przykładową aplikację sklepu AKS Store.

Usuwanie klastra

Jeśli nie planujesz przechodzenia przez samouczek AKS, wyczyść niepotrzebne zasoby, aby uniknąć opłat Azure.

Usuń grupę zasobów, usługę kontenera i wszystkie powiązane zasoby przy użyciu az group delete polecenia .

az group delete --name myResourceGroup --yes --no-wait

Uwaga

Klaster AKS został utworzony przy użyciu tożsamości zarządzanej przypisanej przez system, która jest domyślną opcją tożsamości używaną w tym przewodniku szybkiego startu. Platforma zarządza tą tożsamością, więc nie trzeba jej ręcznie usuwać.

W tym szybkim przewodniku wdrożono klaster Kubernetes przy pomocy AKS Automatic, a następnie wdrożono prostą aplikację wielokontenerową. Ta przykładowa aplikacja służy tylko do celów demonstracyjnych i nie reprezentuje wszystkich najlepszych rozwiązań dla aplikacji Kubernetes. Aby uzyskać wskazówki dotyczące tworzenia pełnych rozwiązań za pomocą usługi AKS dla środowiska produkcyjnego, zobacz Wskazówki dotyczące rozwiązania AKS.

Aby dowiedzieć się więcej o usłudze AKS Automatyczny, zobacz Wprowadzenie do automatycznego Azure Kubernetes Service (AKS)