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

W 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, które uruchamiają aplikacje. Podczas tworzenia klastra usługi AKS należy zdefiniować początkową liczbę węzłów i ich rozmiar (SKU), który tworzy pulę węzłów systemowych.

Aby obsługiwać aplikacje, które mają różne wymagania dotyczące zasobów obliczeniowych lub magazynu, możesz utworzyć pule węzłów użytkownika. Pule węzłów systemowych służą głównemu celowi hostowania krytycznych zasobników systemu, takich jak CoreDNS i konnectivity. Pule węzłów użytkownika służą do podstawowego celu 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ń na potrzeby operacji tworzenia/aktualizowania/usuwania. Wcześniej operacje klastra za pośrednictwem az aks create interfejsu az aks update API zarządzanegocluster i 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 puli agentów 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ą pule węzłów w klastrze usługi AKS.

Zanim rozpoczniesz

Ograniczenia

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

  • Zobacz Limity przydziału, ograniczenia rozmiaru maszyny wirtualnej i dostępność regionu w Azure Kubernetes Service (AKS).
  • Pule węzłów systemowych można usunąć, jeśli istnieje inna pula węzłów systemu, która ma zostać utworzona w klastrze usługi AKS.
  • 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 jednostki SKU w warstwie Podstawowa.
  • Klaster usługi AKS musi używać Virtual Machine Scale Sets dla węzłów.
  • Nazwa puli węzłów może zawierać tylko małe litery alfanumeryczne i musi zaczynać się od małej litery.
    • W przypadku pul węzłów systemu Linux długość musi wynosić od 1 do 12 znaków.
    • W przypadku pul węzłów systemu Windows długość musi zawierać się 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ć, korzystając z większej liczby węzłów płaszczyzny sterowania.

  1. Utwórz grupę zasobów platformy az group create Azure przy użyciu 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 przy użyciu az aks get-credentials 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ń 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 az aks nodepool addklastra przy użyciu polecenia .

    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 platformy Azure z systemem Linux

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ń kontenera, co poprawia czas rozruchu i ogólną wydajność.

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

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

    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

  1. Dodaj pulę węzłów platformy Azure dla systemu Linux do istniejącego klastra.

    Uwaga

    Podczas dodawania nowej puli węzłów systemu Linux platformy Azure należy dodać co najmniej jedną pulę węzłów jako --mode System. W przeciwnym razie usługa AKS nie umożliwi usunięcia istniejącej puli węzłów systemu Ubuntu.

  2. Cordon istniejących węzłów systemu Ubuntu.

  3. Opróżnij istniejące węzły systemu Ubuntu.

  4. Usuń istniejące węzły systemu Ubuntu przy użyciu az aks delete polecenia .

    az aks nodepool delete \
        --resource-group myResourceGroup \
        --cluster-name myAKSCluster \
        --name mynodepool
    

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 brak ciągłej przestrzeni adresowej sieci wirtualnej do podziału między pule węzłów.

Uwaga

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

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 poza oryginalnym blokiem CIDR. Podczas dodawania błędów usługi AKS w puli aks-preview agentów rozszerzenie interfejsu wiersza polecenia platformy Azure (wersja 0.5.66+) obsługuje teraz działanie az aks update -g <resourceGroup> -n <clusterName> bez żadnych opcjonalnych argumentów. 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 < 1.23.3 usługa kube-proxy będzie prowadzić do ruchu SNAT 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-idparametr .

    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).

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

Począwszy od platformy Kubernetes w wersji 1.20 i nowszej, można 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 z containerd 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 do uruchamiania kontenerów systemu Windows Server wartość --node-vm-size domyślna to Standard_D2s_v3, czyli minimalny zalecany rozmiar pul węzłów systemu Windows Server 2019 przed kubernetes 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.
  • Zdecydowanie zalecamy używanie defektów lub etykiet z uruchomionymi containerd pulami węzłów systemu Windows Server 2019 i tolerancjami lub selektorami węzłów we wdrożeniach w celu zagwarantowania, że obciążenia są prawidłowo zaplanowane.

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 pula węzłów nie jest już potrzebna, możesz ją usunąć i usunąć bazowe węzły maszyny wirtualnej.

Przestroga

Po usunięciu puli węzłów usługa AKS nie wykonuje kordonu i opróżniania i nie ma opcji odzyskiwania utraty danych, które mogą wystąpić po usunięciu puli węzłów. Jeśli nie można zaplanować zasobników w innych pulach węzłów, te aplikacje staną się niedostępne. Upewnij się, że nie usuwasz puli węzłów, gdy w używanych aplikacjach nie ma kopii zapasowych danych ani możliwości uruchamiania ich w innych pulach węzłów w klastrze. Aby zminimalizować zakłócenia związane z ponownym harmonogramem 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 zajmuje 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ę, jak zarządzać wieloma pulami węzłów, zobacz Zarządzanie wieloma pulami węzłów dla klastra w usłudze Azure Kubernetes Service (AKS).