Udostępnij przez


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

Dotyczy: ✔️ AKS Automatic

Usługa Azure Kubernetes Service (AKS) Automatic zapewnia najłatwiejsze zarządzane środowisko kubernetes dla deweloperów, inżynierów DevOps i inżynierów platformy. Idealne rozwiązanie dla nowoczesnych aplikacji sztucznej inteligencji, usługa AKS Automatic automatyzuje konfigurację i operacje klastra usługi AKS oraz osadza konfiguracje najlepszych rozwiązań. Użytkownicy dowolnego poziomu umiejętności mogą korzystać z bezpieczeństwa, wydajności i niezawodności Automatyki AKS dla swoich aplikacji. Usługa AKS Automatic obejmuje również umowę SLA dotyczącą gotowości zasobników, która gwarantuje zakończenie 99,9% operacji gotowości zasobników w ciągu 5 minut, zapewniając niezawodną, samonaprawiającą się infrastrukturę dla aplikacji.

Z tego przewodnika Szybki start dowiesz się, jak wykonywać następujące zadania:

  • Wdrażanie klastra automatycznego usługi AKS.
  • Uruchom przykładową aplikację z wieloma kontenerami z grupą mikrousług i frontonów internetowych symulujących scenariusz sprzedaży detalicznej.

Zanim rozpoczniesz

  • Ten artykuł wymaga wersji 2.77.0 lub nowszej interfejsu wiersza polecenia platformy Azure. Jeśli używasz usługi Azure Cloud Shell, najnowsza wersja jest już tam zainstalowana.
  • Jeśli masz wiele subskrypcji platformy Azure, wybierz odpowiedni identyfikator subskrypcji, w którym zasoby mają być rozliczane przy użyciu az account set polecenia .
  • Aby wdrożyć plik Bicep, musisz zapisać dostęp do tworzonych zasobów i uzyskać dostęp do wszystkich operacji w typie Microsoft.Resources/deployments zasobu. Aby na przykład utworzyć maszynę wirtualną, potrzebne są uprawnienia Microsoft.Compute/virtualMachines/write i Microsoft.Resources/deployments/*. Aby uzyskać listę ról i uprawnień, zobacz Role wbudowane platformy Azure.

Ograniczenia

  • Pula węzłów systemowych klastrów automatycznych AKS musi być wdrożona w regionach platformy Azure, które obsługują co najmniej trzy strefy dostępności, efemeryczne dyski systemu operacyjnego oraz system operacyjny Azure Linux.
  • Klastry automatyczne usługi AKS można tworzyć tylko w regionach, w których integracja z siecią wirtualną serwera INTERFEJSu API jest ogólnie dostępna .

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 subskrypcja ma limit przydziału dla 16 procesorów wirtualnych 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. Możesz wyświetlić limity przydziału dla określonych rodzin maszyn wirtualnych i przesłać żądania zwiększenia limitu przydziału za pośrednictwem witryny Azure Portal. Jeśli masz dodatkowe pytania, dowiedz się więcej, zapoznaj się z dokumentami rozwiązywania problemów.

Tworzenie grupy zasobów

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

W poniższym przykładzie tworzona jest grupa zasobów o nazwie myResourceGroup w lokalizacji eastus.

Utwórz grupę zasobów przy użyciu polecenia az group create.

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
}

Tworzenie klastra automatycznego usługi AKS

Aby utworzyć klaster automatyczny usługi AKS, użyj az aks create polecenia . Poniższy przykład tworzy klaster o nazwie myAKSAutomaticCluster z włączoną integracją z funkcją Managed Prometheus i 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.

Łączenie z klastrem

Aby zarządzać klastrem Kubernetes, użyj klienta wiersza polecenia kubernetes kubectl. kubectl jest już zainstalowany, jeśli używasz usługi Azure Cloud Shell. Aby zainstalować kubectl lokalnie, uruchom az aks install-cli polecenie . Klastry automatyczne AKS są konfigurowane z użyciem Microsoft Entra ID dla kontroli dostępu opartej na rolach (RBAC) w Kubernetes.

Uwaga

Podczas tworzenia klastra przy użyciu interfejsu wiersza polecenia platformy Azure użytkownik ma przypisane wbudowane role dla programu Azure Kubernetes Service RBAC Cluster Admin.

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

Zweryfikuj połączenie z klastrem, używając polecenia kubectl get. To polecenie zwraca listę węzłów klastra.

kubectl get nodes

Przykładowy wynik poniżej pokazuje, jak proszono Cię 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-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

Tworzenie automatycznego klastra Kubernetes

  1. Aby utworzyć klaster automatyczny usługi AKS, wyszukaj pozycję Kubernetes Services i wybierz pozycję Automatyczny klaster Kubernetes z opcji listy rozwijanej.

    Zrzut ekranu przedstawiający punkt wejścia do tworzenia klastra automatycznego usługi AKS w witrynie Azure Portal.

  2. Na karcie Podstawy wypełnij wszystkie pola obowiązkowe (Subskrypcja, Grupa zasobów, Nazwa klastra Kubernetes i Region), aby rozpocząć pracę:

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

  3. Na karcie Monitorowanie wybierz konfiguracje monitorowania z poziomu usługi Azure Monitor, zarządzanego rozwiązania Prometheus, pulpitów nawigacyjnych narzędzia Grafana, możliwości obserwowania sieci kontenerów (ACNS) i/lub skonfiguruj alerty. Włącz zarządzaną aplikację Grafana (opcjonalnie), dodaj tagi (opcjonalnie) i przejdź do utworzenia klastra.

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

  4. Na karcie Zaawansowane zaktualizuj ustawienia sieci (opcjonalnie), tożsamości zarządzanej (opcjonalnie), zabezpieczeń i zarządzanych przestrzeni nazw (opcjonalnie) i przejdź do tworzenia klastra.

    Zrzut ekranu przedstawiający zakładkę Zaawansowane podczas tworzenia automatycznego klastra AKS w portalu Azure.

  5. Rozpocznij konfigurowanie pierwszej aplikacji z usługi GitHub i konfigurowanie zautomatyzowanego potoku wdrażania.

    Zrzut ekranu przedstawiający kartę Wprowadzenie w bloku Przegląd po utworzeniu klastra automatycznego usługi AKS w witrynie Azure Portal.

Łączenie z klastrem

Aby zarządzać klastrem Kubernetes, użyj klienta wiersza polecenia kubernetes kubectl. kubectl jest już zainstalowany, jeśli używasz usługi Azure Cloud Shell. Aby zainstalować kubectl lokalnie, uruchom polecenie az aks install-cli . Klastry automatyczne AKS są konfigurowane z użyciem Microsoft Entra ID dla kontroli dostępu opartej na rolach (RBAC) w Kubernetes. Podczas tworzenia klastra przy użyciu witryny Azure Portal użytkownik ma przypisane wbudowane role dla programu Azure Kubernetes Service RBAC Cluster Admin.

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

Zweryfikuj połączenie z klastrem, używając polecenia kubectl get. To polecenie zwraca listę węzłów klastra.

kubectl get nodes

Przykładowy wynik poniżej pokazuje, jak proszono Cię 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-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000002   Ready    agent   2m26s   v1.28.5

Tworzenie grupy zasobów

Grupa zasobów platformy Azure to grupa logiczna, w której zasoby platformy Azure są wdrażane i zarządzane. Podczas tworzenia grupy zasobów zostanie wyświetlony monit o określenie lokalizacji. Ta lokalizacja to lokalizacja magazynu metadanych grupy zasobów i lokalizacja, w której zasoby są uruchamiane na platformie Azure, jeśli nie określisz innego regionu podczas tworzenia zasobów.

W poniższym przykładzie tworzona jest grupa zasobów o nazwie myResourceGroup w lokalizacji eastus.

Utwórz grupę zasobów przy użyciu polecenia az group create.

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
}

Przejrzyj plik programu Bicep

Ten plik Bicep definiuje klaster automatyczny usługi AKS. W wersji zapoznawczej należy określić profil puli agentów puli węzłów systemu .

@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 dokumentację Microsoft.ContainerService/managedClusters .

Wdróż plik Bicep

  1. Zapisz plik Bicep jako main.bicep na komputerze lokalnym.

    Ważne

    Plik Bicep ustawia clusterName parametr 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 interfejsu wiersza polecenia platformy Azure.

    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 usługi Azure Cloud Shell. Aby zainstalować kubectl lokalnie, uruchom polecenie az aks install-cli . Klastry automatyczne AKS są konfigurowane z użyciem Microsoft Entra ID dla kontroli dostępu opartej na rolach (RBAC) w Kubernetes.

Ważne

Podczas tworzenia klastra przy użyciu Bicep należy przypisać jedną z wbudowanych ról, takich jak Azure Kubernetes Service RBAC Reader, Azure Kubernetes Service RBAC Writer, Azure Kubernetes Service RBAC Admin lub Azure Kubernetes Service RBAC Cluster Admin, do użytkowników, określając zakres do klastra lub określonej przestrzeni nazw, na przykład przy użyciu az role assignment create --role "Azure Kubernetes Service RBAC Cluster Admin" --scope <AKS cluster resource id> --assignee user@contoso.com. Upewnij się również, że użytkownicy mają wbudowaną Azure Kubernetes Service Cluster User rolę, aby mogli uruchamiać polecenie az aks get-credentials, a następnie uzyskać narzędzie kubeconfig klastra usługi AKS przy użyciu az aks get-credentials polecenia .

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 

Zweryfikuj połączenie z klastrem, używając polecenia kubectl get. To polecenie zwraca listę węzłów klastra.

kubectl get nodes

Przykładowy wynik poniżej pokazuje, jak proszono Cię 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-13213685-vmss000000   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-vmss000001   Ready    agent   2m26s   v1.28.5
aks-nodepool1-13213685-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 sklepu AKS. 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ę sklepu 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łego przechowywania w środowisku produkcyjnym. 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ę w witrynie 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 wdrożone obciążenie, automatyczne aprowizowanie węzłów może potrwać kilka minut, aby utworzyć pulę węzłów do uruchamiania zasobnikó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ą pod zewnętrznym adresem IP ruchu przychodzącego, aby zobaczyć działanie aplikacji sklepu Azure Store.

    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. Uruchom polecenie az group delete , aby usunąć grupę zasobów, usługę kontenera i wszystkie powiązane zasoby.

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

Uwaga

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

Następne kroki

W tym przewodniku Szybki start wdrożono klaster Kubernetes przy użyciu usługi AKS Automatic , a następnie wdrożono w niej prostą aplikację z wieloma kontenerami. 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 Automatic, przejdź do wprowadzenia.