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
- Potrzebny jest interfejs wiersza polecenia platformy Azure w wersji 2.2.0 lub nowszej 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. - Przejrzyj opcje magazynu dla aplikacji w usłudze Azure Kubernetes Service , aby zaplanować konfigurację magazynu.
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).
- Możesz usunąć pulę węzłów systemowych, 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.
Utwórz grupę zasobów platformy Azure przy użyciu
az group create
polecenia .az group create --name $RESOURCE_GROUP_NAME --location $LOCATION
Utwórz klaster usługi AKS z jedną pulą węzłów przy użyciu
az aks create
polecenia .az aks create \ --resource-group $RESOURCE_GROUP_NAME \ --name $CLUSTER_NAME \ --vm-set-type VirtualMachineScaleSets \ --node-count 2 \ --location $LOCATION \ --load-balancer-sku standard \ --generate-ssh-keys
Utworzenie klastra trwa kilka minut.
Gdy klaster jest gotowy, pobierz poświadczenia klastra
az aks get-credentials
przy użyciu polecenia .az aks get-credentials --resource-group $RESOURCE_GROUP_NAME --name $CLUSTER_NAME
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 $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $NODE_POOL_NAME \ --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 $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME
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 włączoną usługą Defender w wersji mniejszej niż 1.29.0.
- Pule węzłów z obsługą protokołu FIPS nie są obsługiwane w przypadku jednostek SKU ARM64.
- Pule węzłów systemu Windows 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 $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $ARM_NODE_POOL_NAME \ --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 $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $AZ_LINUX_NODE_POOL_NAME \ --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:
- Usuń istniejące pule węzłów i dodaj nowe pule węzłów systemu Linux platformy Azure.
- Migracja jednostki SKU systemu operacyjnego w miejscu.
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 uruchamianieaz 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 $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $NODE_POOL_NAME \ --node-count 3 \ --vnet-subnet-id $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 jestcontainerd
Standard_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 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 $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --os-type Windows \ --name $CONTAINER_D_NODE_POOL_NAME \ --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 $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --name $CONTAINER_D_NODE_POOL_NAME \ --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 $RESOURCE_GROUP_NAME \ --cluster-name $CLUSTER_NAME \ --kubernetes-version 1.20.7 \ --aks-custom-headers WindowsContainerRuntime=containerd
Pule węzłów z efemeralnymi dyskami systemu operacyjnego
Dodaj pulę węzłów, która używa efemerycznych dysków systemu operacyjnego do istniejącego klastra przy użyciu
az aks nodepool add
polecenia z flagą ustawioną na--node-osdisk-type
Ephemeral
.Uwaga
- Podczas tworzenia klastra można określić efemeryczne dyski systemu operacyjnego przy użyciu
--node-osdisk-type
flagi z poleceniemaz aks create
. - Jeśli chcesz utworzyć pule węzłów z dyskami systemu operacyjnego dołączonymi do sieci, możesz to zrobić, określając wartość
--node-osdisk-type Managed
.
az aks nodepool add --name $EPHEMERAL_NODE_POOL_NAME --cluster-name $CLUSTER_NAME --resource-group $RESOURCE_GROUP_NAME -s Standard_DS3_v2 --node-osdisk-type Ephemeral
- Podczas tworzenia klastra można określić efemeryczne dyski systemu operacyjnego przy użyciu
Ważne
Dzięki efemerycznemu systemowi operacyjnemu można wdrażać maszyny wirtualne i obrazy wystąpień do rozmiaru pamięci podręcznej maszyny wirtualnej. Domyślna konfiguracja dysku systemu operacyjnego węzła w usłudze AKS używa 128 GB, co oznacza, że potrzebny jest rozmiar maszyny wirtualnej z pamięcią podręczną większą niż 128 GB. Domyślny Standard_DS2_v2 ma rozmiar pamięci podręcznej 86 GB, który nie jest wystarczająco duży. Jednostka SKU maszyny wirtualnej Standard_DS3_v2 ma rozmiar pamięci podręcznej 172 GB, co jest wystarczająco duże. Możesz również zmniejszyć domyślny rozmiar dysku systemu operacyjnego przy użyciu polecenia --node-osdisk-size
, ale pamiętaj, że minimalny rozmiar obrazów usługi AKS wynosi 30 GB.
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 --resource-group $RESOURCE_GROUP_NAME --cluster-name $CLUSTER_NAME --name $NODE_POOL_NAME --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).
Azure Kubernetes Service