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
- Interfejs wiersza polecenia platformy Azure w wersji 2.2.0 lub nowszej jest zainstalowany i skonfigurowany. Uruchom polecenie
az --version
, aby dowiedzieć się, jaka wersja jest używana. Jeśli konieczna będzie instalacja lub uaktualnienie, zobacz Instalowanie interfejsu wiersza polecenia platformy Azure. - Zapoznaj się z opcjami magazynu dla aplikacji w Azure Kubernetes Service, aby zaplanować konfigurację magazynu.
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.
Utwórz grupę zasobów platformy
az group create
Azure przy użyciu polecenia .az group create --name myResourceGroup --location eastus
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.
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.
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
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 add
klastra 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 AzureLinux
polecenie .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
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.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łanieaz 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-id
parametr .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 jestcontainerd
Standard_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 poleceniaaz aks nodepool add
.Uwaga
Jeśli nie określisz nagłówka niestandardowego
WindowsContainerRuntime=containerd
, pula węzłów nadal będzie domyślnie używanacontainerd
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
poleceniaaz 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
poleceniaaz 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).