Tworzenie pul węzłów dla klastra w usłudze Azure Kubernetes Service (AKS)

W usłudze Azure Kubernetes Service (AKS) węzły tej samej konfiguracji są grupowane razem w pule węzłów. Te pule węzłów zawierają bazowe maszyny wirtualne, na których są uruchamiane aplikacje. Podczas tworzenia klastra usługi AKS należy zdefiniować początkową liczbę węzłów i ich rozmiar (SKU), która tworzy pulę węzłów systemowych.

Aby obsługiwać aplikacje o różnych wymaganiach obliczeniowych lub magazynowych, można utworzyć pule węzłów użytkownika. Pule węzłów systemu służą głównemu celowi hostowania krytycznych zasobników systemu, takich jak CoreDNS i konnectivity. Pule węzłów użytkownika służą głównemu celowi hostowania zasobników aplikacji. Na przykład użyj większej liczby pul węzłów użytkownika, aby zapewnić procesory GPU dla aplikacji intensywnie korzystających z obliczeń lub dostęp do magazynu SSD o wysokiej wydajności. Jeśli jednak chcesz mieć tylko jedną pulę w klastrze usługi AKS, możesz zaplanować zasobniki aplikacji w pulach węzłów systemowych.

Uwaga

Ta funkcja umożliwia większą kontrolę nad tworzeniem wielu pul węzłów i zarządzaniem nimi oraz wymaga oddzielnych poleceń dla operacji create/update/delete (CRUD). Wcześniej operacje klastra za pośrednictwem az aks create interfejsu API zarządzanego klastra lub az aks update używane były jedynymi opcjami zmiany płaszczyzny sterowania i pojedynczej puli węzłów. Ta funkcja uwidacznia oddzielny zestaw operacji dla pul agentów za pośrednictwem interfejsu API agentPool i wymaga użycia az aks nodepool zestawu poleceń do wykonywania operacji w pojedynczej puli węzłów.

W tym artykule pokazano, jak utworzyć co najmniej jedną pulę węzłów w klastrze usługi AKS.

Zanim rozpoczniesz

Ograniczenia

Podczas tworzenia klastrów usługi AKS, które obsługują wiele pul węzłów, obowiązują następujące ograniczenia:

  • Zobacz Limity przydziału, ograniczenia rozmiaru maszyny wirtualnej i dostępność regionów w usłudze Azure Kubernetes Service (AKS).
  • Pule węzłów systemowych można usunąć, jeśli masz inną pulę węzłów systemowych, która ma zostać utworzona w klastrze usługi AKS. W przeciwnym razie nie można usunąć puli węzłów systemowych.
  • Pule systemu muszą zawierać co najmniej jeden węzeł, a pule węzłów użytkownika mogą zawierać zero lub więcej węzłów.
  • Klaster usługi AKS musi używać modułu równoważenia obciążenia jednostki SKU w warstwie Standardowa do korzystania z wielu pul węzłów. Ta funkcja nie jest obsługiwana w przypadku modułów równoważenia obciążenia jednostek SKU w warstwie Podstawowa.
  • Klaster usługi AKS musi używać zestawów skalowania maszyn wirtualnych dla węzłów.
  • Nazwa puli węzłów może zawierać tylko małe litery alfanumeryczne i musi zaczynać się małą literą.
    • W przypadku pul węzłów systemu Linux długość musi zawierać się od 1 do 12 znaków.
    • W przypadku pul węzłów systemu Windows długość musi wynosić od 1 do 6 znaków.
  • Wszystkie pule węzłów muszą znajdować się w tej samej sieci wirtualnej.
  • Podczas tworzenia wielu pul węzłów w czasie tworzenia klastra wersje platformy Kubernetes dla pul węzłów muszą być zgodne z wersją ustawioną dla płaszczyzny sterowania.

Tworzenie klastra AKS

Ważne

Jeśli uruchamiasz jedną pulę węzłów systemowych dla klastra usługi AKS w środowisku produkcyjnym, zalecamy użycie co najmniej trzech węzłów dla puli węzłów. Jeśli jeden węzeł ulegnie awarii, utracisz zasoby płaszczyzny sterowania, a nadmiarowość zostanie naruszona. To ryzyko można ograniczyć, mając więcej węzłów płaszczyzny sterowania.

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

    az group create --name myResourceGroup --location eastus
    
  2. Utwórz klaster usługi AKS z jedną pulą węzłów przy użyciu az aks create polecenia .

    az aks create \
        --resource-group myResourceGroup \
        --name myAKSCluster \
        --vm-set-type VirtualMachineScaleSets \
        --node-count 2 \
        --generate-ssh-keys \
        --load-balancer-sku standard
    

    Utworzenie klastra trwa kilka minut.

  3. Gdy klaster jest gotowy, pobierz poświadczenia klastra az aks get-credentials przy użyciu polecenia .

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Dodawanie puli węzłów

Klaster utworzony w poprzednim kroku ma jedną pulę węzłów. W tej sekcji dodamy drugą pulę węzłów do klastra.

  1. Utwórz nową pulę węzłów przy użyciu az aks nodepool add polecenia . Poniższy przykład tworzy pulę węzłów o nazwie mynodepool , która uruchamia trzy węzły:

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name mynodepool \
        --node-count 3
    
  2. Sprawdź stan pul węzłów przy użyciu az aks node pool list polecenia i określ nazwę grupy zasobów i klastra.

    az aks nodepool list --resource-group myResourceGroup --cluster-name myAKSCluster
    

    Poniższe przykładowe dane wyjściowe pokazują, że pula mynodepool została pomyślnie utworzona z trzema węzłami. Po utworzeniu klastra usługi AKS w poprzednim kroku utworzono domyślną pulę węzłów1 z liczbą węzłów 2.

    [
      {
        ...
        "count": 3,
        ...
        "name": "mynodepool",
        "orchestratorVersion": "1.15.7",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      },
      {
        ...
        "count": 2,
        ...
        "name": "nodepool1",
        "orchestratorVersion": "1.15.7",
        ...
        "vmSize": "Standard_DS2_v2",
        ...
      }
    ]
    

Pule węzłów ARM64

Procesor ARM64 zapewnia zasoby obliczeniowe o niskiej mocy dla obciążeń platformy Kubernetes. Aby utworzyć pulę węzłów ARM64, należy wybrać maszynę wirtualną z serii Dpsv5, Dplsv5 lub Epsv5.

Ograniczenia

  • Pule węzłów ARM64 nie są obsługiwane w klastrach z obsługą usługi Defender.
  • Pule węzłów z obsługą protokołu FIPS nie są obsługiwane w przypadku jednostek SKU ARM64.

Dodawanie puli węzłów ARM64

  • Dodaj pulę węzłów ARM64 do istniejącego klastra przy użyciu elementu az aks nodepool add.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name armpool \
        --node-count 3 \
        --node-vm-size Standard_D2pds_v5
    

Pule węzłów systemu Linux platformy Azure

Host kontenera systemu Linux platformy Azure dla usługi AKS to dystrybucja systemu Linux typu open source dostępna jako host kontenera usługi AKS. Zapewnia wysoką niezawodność, bezpieczeństwo i spójność. Obejmuje on tylko minimalny zestaw pakietów potrzebnych do uruchamiania obciążeń kontenerów, co poprawia czas rozruchu i ogólną wydajność.

Dodawanie puli węzłów systemu Linux platformy Azure

  • Dodaj pulę węzłów systemu Linux platformy Azure do istniejącego klastra przy użyciu az aks nodepool add polecenia i określ polecenie --os-sku AzureLinux.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name azlinuxpool \
        --os-sku AzureLinux
    

Migrowanie węzłów systemu Ubuntu do węzłów systemu Linux platformy Azure

Istniejące węzły systemu Ubuntu można migrować do systemu Azure Linux przy użyciu jednej z następujących metod:

Pule węzłów z unikatowymi podsieciami

Obciążenie może wymagać podzielenia węzłów klastra na oddzielne pule na potrzeby izolacji logicznej. Oddzielne podsieci dedykowane dla każdej puli węzłów w klastrze mogą pomóc w obsłudze tej izolacji, co może spełniać wymagania, takie jak nieciągła przestrzeń adresowa sieci wirtualnej do podziału między pule węzłów.

Uwaga

Upewnij się, że używasz wersji 2.35.0 interfejsu wiersza polecenia platformy Azure lub nowszej.

Ograniczenia

  • Wszystkie podsieci przypisane do pul węzłów muszą należeć do tej samej sieci wirtualnej.
  • Zasobniki systemowe muszą mieć dostęp do wszystkich węzłów i zasobników w klastrze, aby zapewnić krytyczne funkcje, takie jak rozpoznawanie nazw DNS i tunelowanie dzienników kubectl/exec/port-forward proxy.
  • Po rozwinięciu sieci wirtualnej po utworzeniu klastra należy zaktualizować klaster przed dodaniem podsieci spoza oryginalnego bloku CIDR. Podczas gdy usługa AKS errors-out w puli agentów dodaje, aks-preview rozszerzenie interfejsu wiersza polecenia platformy Azure (wersja 0.5.66 lub nowsza) obsługuje teraz uruchamianie az aks update polecenia tylko z wymaganymi -g <resourceGroup> -n <clusterName> argumentami. To polecenie wykonuje operację aktualizacji bez wprowadzania żadnych zmian, które mogą odzyskać klaster zablokowany w stanie niepowodzenia.
  • W klastrach z platformą Kubernetes w wersji mniejszej niż 1.23.3 ruch SNATs kube-proxy z nowych podsieci, co może spowodować usunięcie pakietów przez usługę Azure Network Policy.
  • Ruch SNAT węzłów systemu Windows do nowych podsieci do momentu ponownego odtworzenia puli węzłów.
  • Wewnętrzne moduły równoważenia obciążenia są domyślne dla jednej z podsieci puli węzłów.

Dodawanie puli węzłów z unikatową podsiecią

  • Dodaj pulę węzłów z unikatową podsiecią do istniejącego klastra przy użyciu az aks nodepool add polecenia i określ .--vnet-subnet-id

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name mynodepool \
        --node-count 3 \
        --vnet-subnet-id <YOUR_SUBNET_RESOURCE_ID>
    

Pule węzłów z obsługą protokołu FIPS

Aby uzyskać więcej informacji na temat włączania standardu FIPS (Federal Information Process Standard) dla klastra usługi AKS, zobacz Enable Federal Information Process Standard (FIPS) for Azure Kubernetes Service (AKS) node pools (Enable Federal Information Process Standard) for Azure Kubernetes Service (AKS) node pools (Enable Federal Information Process Standard) for Azure Kubernetes Service (AKS).

Pule węzłów systemu Windows Server z containerd

Począwszy od platformy Kubernetes w wersji 1.20 lub nowszej, możesz określić containerd jako środowisko uruchomieniowe kontenera dla pul węzłów systemu Windows Server 2019. Począwszy od platformy Kubernetes 1.23, containerd jest domyślnym i jedynym środowiskiem uruchomieniowym kontenera dla systemu Windows.

Ważne

W przypadku korzystania containerd z pul węzłów systemu Windows Server 2019:

  • Zarówno płaszczyzna sterowania, jak i pule węzłów systemu Windows Server 2019 muszą używać platformy Kubernetes w wersji 1.20 lub nowszej.
  • Podczas tworzenia lub aktualizowania puli węzłów w celu uruchamiania kontenerów systemu Windows Server wartość --node-vm-size domyślna to Standard_D2s_v3, co było minimalnym zalecanym rozmiarem pul węzłów systemu Windows Server 2019 przed platformą Kubernetes w wersji 1.20. Minimalny zalecany rozmiar pul węzłów systemu Windows Server 2019 jest containerdStandard_D4s_v3. Podczas ustawiania parametru --node-vm-size sprawdź listę ograniczonych rozmiarów maszyn wirtualnych.
  • Zalecamy używanie etykiet lub defektów z pulami węzłów systemu Windows Server 2019 uruchomionymi containerd i tolerowanymi lub selektorami węzłów we wdrożeniach, aby zagwarantować prawidłowe zaplanowanie obciążeń.

Dodawanie puli węzłów systemu Windows Server za pomocą polecenia containerd

  • Dodaj pulę węzłów systemu Windows Server do containerd istniejącego klastra przy użyciu polecenia az aks nodepool add.

    Uwaga

    Jeśli nie określisz nagłówka niestandardowego WindowsContainerRuntime=containerd , pula węzłów nadal będzie domyślnie używana containerd jako środowisko uruchomieniowe kontenera.

    az aks nodepool add \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --os-type Windows \
        --name npwcd \
        --node-vm-size Standard_D4s_v3 \
        --kubernetes-version 1.20.5 \
        --aks-custom-headers WindowsContainerRuntime=containerd \
        --node-count 1
    

Uaktualnianie określonej istniejącej puli węzłów systemu Windows Server do containerd

  • Uaktualnij określoną pulę węzłów z platformy Docker do containerd polecenia az aks nodepool upgrade .

    az aks nodepool upgrade \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name npwd \
        --kubernetes-version 1.20.7 \
        --aks-custom-headers WindowsContainerRuntime=containerd
    

Uaktualnij wszystkie istniejące pule węzłów systemu Windows Server do containerd

  • Uaktualnij wszystkie pule węzłów z platformy Docker do containerd polecenia az aks nodepool upgrade .

    az aks nodepool upgrade \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --kubernetes-version 1.20.7 \
        --aks-custom-headers WindowsContainerRuntime=containerd
    

Usuwanie puli węzłów

Jeśli nie potrzebujesz już puli węzłów, możesz ją usunąć i usunąć bazowe węzły maszyny wirtualnej.

Uwaga

Po usunięciu puli węzłów usługa AKS nie wykonuje kordonu i opróżniania i nie ma opcji odzyskiwania dla utraty danych, które mogą wystąpić po usunięciu puli węzłów. Jeśli zasobniki nie mogą być zaplanowane w innych pulach węzłów, te aplikacje staną się niedostępne. Upewnij się, że nie usuwasz puli węzłów, gdy aplikacje w użyciu nie mają kopii zapasowych danych ani możliwości uruchamiania w innych pulach węzłów w klastrze. Aby zminimalizować zakłócenia ponownego uruchamiania zasobników aktualnie uruchomionych w puli węzłów, którą chcesz usunąć, przed usunięciem wykonaj kordon i opróżnij wszystkie węzły w puli węzłów.

  • Usuń pulę węzłów przy użyciu az aks nodepool delete polecenia i określ nazwę puli węzłów.

    az aks nodepool delete -g myResourceGroup --cluster-name myAKSCluster --name mynodepool --no-wait
    

    Usunięcie węzłów i puli węzłów trwa kilka minut.

Następne kroki

W tym artykule przedstawiono sposób tworzenia wielu pul węzłów w klastrze usługi AKS. Aby dowiedzieć się więcej o zarządzaniu wieloma pulami węzłów, zobacz Zarządzanie wieloma pulami węzłów dla klastra w usłudze Azure Kubernetes Service (AKS).