Notatka
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W Azure Kubernetes Service (AKS) węzły tej samej konfiguracji są grupowane razem w pule węzłów node. Pule węzłów zawierają bazowe maszyny wirtualne, które uruchamiają aplikacje. Pule węzłów systemowych i pule węzłów użytkownika to dwa różne rodzaje pul węzłów w klastrach AKS. W tym artykule wyjaśniono, jak zarządzać pulami węzłów systemowych w usłudze AKS. Aby uzyskać informacje o sposobie korzystania z wielu pul węzłów, zobacz tworzenie pul węzłów.
-
Pule węzłów systemowych: podstawowym celem jest hostowanie krytycznych zasobników systemu, takich jak
CoreDNSimetrics-server. Pule węzłów systemowych nie powinny być używane do uruchamiania aplikacji. Pule węzłów systemowych używają systemu Ubuntu Linux lub Azure Linux. - Pule węzłów użytkownika: Podstawowym celem jest hostowanie podów aplikacyjnych i separacja aplikacji od puli węzłów systemowych. Ta izolacja zapobiega aplikacji spowodowaniu niestabilności puli węzłów systemowych klastra. Pule węzłów użytkownika mogą używać systemu Ubuntu Linux, Azure Linux lub Windows.
Produkcyjny klaster AKS z jedną pulą węzłów systemu musi zawierać co najmniej dwa węzły. Zaleceniem dla produkcyjnego klastra usługi AKS z jedną pulą węzłów systemowych jest posiadanie co najmniej trzech węzłów w celu zwiększenia odporności na uszkodzenia i stref dostępności. Na przykład domyślna liczba węzłów dla polecenia az aks create wynosi trzy, a polecenie to tworzy nowy klaster z jedną pulą węzłów systemowych Linux i trzema węzłami Linux.
Możliwe, ale niezalecane, jest planowanie zasobników aplikacji w puli węzłów systemowych, jeśli w klastrze AKS znajduje się tylko jedna pula węzłów. Lepszym rozwiązaniem jest utworzenie puli węzłów użytkownika dla aplikacji.
Zanim rozpoczniesz
Potrzebujesz Azure CLI w wersji 2.31 lub nowszej zainstalowanej i skonfigurowanej. Aby znaleźć wersję, uruchom az --version polecenie . Jeśli musisz zainstalować lub uaktualnić, zobacz Install Azure CLI.
Potrzebujesz Azure PowerShell w wersji 7.5.0 lub nowszej zainstalowanej i skonfigurowanej. Aby znaleźć wersję, uruchom Get-InstalledModule -Name Az polecenie . Jeśli musisz zainstalować lub uaktualnić, zobacz Install Azure PowerShell.
Przed rozpoczęciem upewnij się, że masz następujące wymagania wstępne:
- Aktywna subskrypcja platformy Azure.
- Narzędzie Terraform zainstalowane lokalnie.
- Azure CLI zainstalowane i zalogowane.
- Uprawnienia do tworzenia zasobów usługi AKS i zarządzania nimi.
Ustaw subskrypcję:
az account set --subscription <subscription-id>
Ograniczenia
Podczas tworzenia klastrów usługi AKS obsługujących pule węzłów systemowych i zarządzania nimi mają zastosowanie następujące ograniczenia.
- Zobacz Limity przydziału, ograniczenia rozmiaru maszyny wirtualnej i dostępność regionów w usłudze AKS.
- Aby ustawić tryb puli węzłów, należy użyć wersji interfejsu
2020-03-01API lub nowszej. Klastry utworzone w wersjach interfejsu API starszych niż2020-03-01zawierają tylko pule węzłów użytkowników, ale można je migrować tak, aby zawierały pule węzłów systemowych, wykonując kroki aktualizacji trybu puli. - 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 Windows długość musi wynosić od jednego do sześciu znaków.
- Tryb działania puli węzłów jest wymaganą właściwością i musi być wyraźnie określany przy użyciu szablonów ARM lub bezpośrednich wywołań API.
Grupy węzłów systemu i użytkownika
W przypadku puli węzłów systemowych usługa AKS automatycznie przypisuje etykietę kubernetes.azure.com/mode: system do swoich węzłów. Dzięki temu usługa AKS preferuje rozmieszczenie zasobników systemowych w pulach węzłów, które zawierają tę etykietę. Ta etykieta nie uniemożliwia harmonogramowania zasobników aplikacji w pulach węzłów systemowych. Zalecamy jednak odizolowanie zasobników systemowych klasy krytycznej od zasobników aplikacji, aby zapobiec przypadkowemu usunięciu zasobników systemowych przez nieprawidłowo skonfigurowane lub niepoprawnie działające zasobniki aplikacji.
To zachowanie można wymusić, tworząc dedykowaną pulę węzłów systemowych. Użyj taintu, aby uniemożliwić przydzielanie zasobników aplikacji do pul węzłów systemowych.
Pule węzłów systemowych mają następujące ograniczenia:
- Pule węzłów systemowych muszą obsługiwać co najmniej 30 zasobników zgodnie z opisem w formule minimalnej i maksymalnej wartości dla zasobników.
- Zasoby
osTypesystemu muszą działać na systemie Linux. - Pule węzłów użytkownika
osTypemogą być Linuxowe lub Windowsowe. - Pule systemu muszą zawierać co najmniej dwa węzły, ale zalecenie to trzy węzły. Grupy węzłów użytkownika mogą zawierać zero lub więcej węzłów.
- Pule węzłów systemowych wymagają VM SKU o co najmniej 4 vCPU i 4 GB pamięci.
- Maszyny wirtualne serii B nie są obsługiwane w przypadku pul węzłów systemowych.
- Zalecane jest, aby używać co najmniej trzech węzłów po 8 vCPU lub dwóch węzłów z co najmniej 16 vCPU (na przykład Standard_DS4_v2), szczególnie w przypadku dużych klastrów komputerowych (wiele replik podów CoreDNS, 3-4+ dodatków itp.).
- Pule węzłów typu spot wymagają pul węzłów użytkownika.
- Dodanie kolejnej puli węzłów systemowych lub zmiana, która pula węzłów jest pulą systemową, nie powoduje automatycznego przenoszenia zasobników systemowych. Zasobniki systemowe mogą nadal działać w tej samej puli węzłów, nawet jeśli zmienisz ją na pulę węzłów użytkownika. Jeśli usuniesz lub zmniejszysz skalę puli węzłów z uruchomionymi zasobnikami systemowymi, które wcześniej należały do systemowej puli węzłów, te zasobniki systemowe zostaną ponownie wdrożone, preferencyjnie zaplanowane w nowej systemowej puli węzłów.
Za pomocą pul węzłów można wykonać następujące operacje:
- Utwórz dedykowaną pulę węzłów systemowych (preferuj umieszczanie zasobników systemowych w pulach węzłów
mode:system) - Zmień pulę węzłów systemowych na pulę węzłów użytkownika, pod warunkiem że w klastrze AKS istnieje inna pula węzłów systemowych, które mogą przejąć jej rolę.
- Zmień pulę węzłów użytkownika na pulę węzłów systemowych.
- Usuń pule węzłów użytkownika.
- Pule węzłów systemowych można usunąć, pod warunkiem że w klastrze usługi AKS zostanie utworzona inna pula węzłów systemowych.
- Klaster AKS może mieć wiele pul węzłów systemowych, ale wymaga co najmniej jednej takiej puli.
- Jeśli chcesz zmienić różne niezmienne ustawienia w istniejących pulach węzłów, możesz utworzyć nowe pule węzłów, aby je zamienić. Przykładem jest dodanie nowej puli węzłów z nowym
maxPodsustawieniem i usunięcie starej puli węzłów. - Użyj node affinity, aby wymagać lub preferować, które węzły mogą być zaplanowane na podstawie etykiet węzłów. Możesz ustawić
keynakubernetes.azure.com,operatornaIn, ivaluesnauserlubsystemw pliku YAML, stosując tę definicję za pomocąkubectl apply -f yourYAML.yaml.
Utwórz nowy klaster AKS z pulą węzłów systemowych
Podczas tworzenia nowego klastra usługi AKS początkowa pula węzłów jest domyślnie ustawiona na tryb typu System. Podczas tworzenia nowych pul węzłów za pomocą az aks nodepool add, te pule węzłów są pulami węzłów użytkownika, chyba że wyraźnie określisz parametr trybu.
Utwórz zmienne dla grupy zasobów, nazwy klastra i lokalizacji dla poleceń używanych w tym artykule. W tym artykule określono wartości lub można użyć własnych wartości.
export RESOURCE_GROUP="myResourceGroup"
export CLUSTER_NAME="myAKSCluster"
export LOCATION="eastus"
export NEW_SYSTEM_NP="systempool"
export NEW_NODE_POOL="mynodepool"
Poniższy przykład tworzy grupę zasobów o nazwie myResourceGroup w regionie eastus .
az group create --name $RESOURCE_GROUP --location $LOCATION
Użyj polecenia az aks create, aby utworzyć klaster AKS. Poniższy przykład tworzy klaster o nazwie myAKSCluster z jedną dedykowaną pulą systemu zawierającą dwa węzły. W przypadku obciążeń produkcyjnych upewnij się, że używasz pul węzłów systemowych z co najmniej trzema węzłami. Wykonanie tej operacji trwa kilka minut.
az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --node-count 2 --generate-ssh-keys
Podczas tworzenia nowego klastra usługi AKS początkowa pula węzłów jest domyślnie ustawiona na tryb typu system. Podczas tworzenia nowych pul węzłów za pomocą New-AzAksNodePool, te pule węzłów są pulami węzłów użytkownika. Tryb puli węzłów można aktualizować w dowolnym momencie.
Utwórz zmienne dla grupy zasobów, nazwy klastra i lokalizacji dla poleceń używanych w tym artykule. W tym artykule określono wartości lub można użyć własnych wartości.
$ResourceGroup="myResourceGroup"
$ClusterName="myAKSCluster"
$Location="eastus"
$NewSystemNP="systempool"
$NewNodePool="mynodepool"
Poniższy przykład tworzy grupę zasobów o nazwie myResourceGroup w regionie eastus .
New-AzResourceGroup -ResourceGroupName $ResourceGroup -Location $Location
Użyj cmdletu New-AzAksCluster, aby utworzyć klaster AKS. Poniższy przykład tworzy klaster o nazwie myAKSCluster z jedną dedykowaną pulą systemu zawierającą dwa węzły. W przypadku obciążeń produkcyjnych upewnij się, że używasz pul węzłów systemowych z co najmniej trzema węzłami. Wykonanie operacji trwa kilka minut.
New-AzAksCluster -ResourceGroupName $ResourceGroup -Name $ClusterName -NodeCount 2 -GenerateSshKey
Użyj następującej konfiguracji Terraform, aby utworzyć klaster AKS z pulą węzłów systemowych.
Tworzenie pliku konfiguracji narzędzia Terraform
Utwórz plik o nazwie main.tfi dodaj następującą konfigurację udostępnioną:
terraform {
required_version = ">= 1.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
}
}
provider "azurerm" {
features {}
}
Tworzenie grupy zasobów
Dodaj następującą konfigurację grupy zasobów:
resource "azurerm_resource_group" "rg" {
name = "aks-system-pool-rg"
location = "East US"
}
Grupa zasobów służy do organizowania zasobów Azure i zarządzania nimi.
Tworzenie nowego klastra AKS
Dodaj następującą konfigurację, aby utworzyć klaster usługi AKS. Początkowa pula węzłów jest tworzona jako pula węzłów systemowych i jest wymagana do wykonania operacji klastra.
resource "azurerm_kubernetes_cluster" "aks" {
name = "aks-system-pool-cluster"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
dns_prefix = "akssystempool"
default_node_pool {
name = "systemnp"
vm_size = "Standard_D4s_v5"
node_count = 2
min_count = 2
max_count = 3
max_pods = 30
enable_auto_scaling = true
}
identity {
type = "SystemAssigned"
}
network_profile {
network_plugin = "azure"
load_balancer_sku = "standard"
}
}
Dodaj dedykowaną pulę węzłów systemowych do istniejącego klastra usługi AKS
Do istniejących klastrów usługi AKS można dodać co najmniej jedną pulę węzłów systemowych. Zaleca się zaplanowanie zasobników aplikacji w pulach węzłów użytkownika i dedykować pule węzłów systemowych tylko do krytycznych zasobników systemu. To rozdzielenie zapobiega przypadkowemu usuwaniu przez nieautoryzowane zasobniki aplikacji systemowych zasobników. Wymuś to zachowanie za pomocą CriticalAddonsOnly=true:NoScheduletaint dla pul węzłów systemowych.
Następujące polecenie dodaje dedykowaną pulę węzłów w trybie typu System z trzema węzłami. Polecenie az aks nodepool add domyślnie dodaje trzy węzły, ale możesz używać parametru --node-count, aby określić liczbę węzłów, które chcesz dodać.
az aks nodepool add \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_SYSTEM_NP \
--node-count 3 \
--node-taints CriticalAddonsOnly=true:NoSchedule \
--mode System
Do istniejących klastrów usługi AKS można dodać co najmniej jedną pulę węzłów systemowych. Zaleca się zaplanowanie zasobników aplikacji w pulach węzłów użytkownika i dedykować pule węzłów systemowych tylko do krytycznych zasobników systemu. Dodanie większej liczby pul węzłów systemowych zapobiega przypadkowemu usunięciu zasobników systemowych przez zasobniki aplikacji. Wymuś zachowanie z CriticalAddonsOnly=true:NoScheduletaint dla pul węzłów systemowych.
Następujące polecenie dodaje dedykowaną pulę węzłów w trybie typu System z trzema węzłami.
$systempoolparams = @{
ResourceGroupName = $ResourceGroup
ClusterName = $ClusterName
Name = $NewSystemNP
Count = 3
Mode = 'System'
NodeTaint = 'CriticalAddonsOnly=true:NoSchedule'
}
New-AzAksNodePool @systempoolparams
Dodaj drugą pulę węzłów skonfigurowaną jako pulę węzłów systemowych w celu odizolowania krytycznych obciążeń systemowych.
resource "azurerm_kubernetes_cluster_node_pool" "system_pool" {
name = "systempool"
kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
vm_size = "Standard_D4s_v5"
node_count = 3
mode = "System"
max_pods = 30
node_taints = [
"CriticalAddonsOnly=true:NoSchedule"
]
}
Ta konfiguracja stosuje CriticalAddonsOnly=true:NoSchedule defekt, aby obciążenia aplikacji nie zostały zaplanowane w dedykowanej puli węzłów systemu.
Dodawanie puli węzłów użytkownika
Aby oddzielić obciążenia aplikacji od składników systemowych, dodaj pulę węzłów użytkownika.
resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
name = "userpool"
kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
vm_size = "Standard_D4s_v5"
node_count = 2
mode = "User"
max_pods = 30
enable_auto_scaling = true
min_count = 2
max_count = 4
}
Pule węzłów użytkownika zapewniają dedykowane środowisko dla zasobników aplikacji.
Ostatnie sprawdzenie przed wdrożeniem
Twoje main.tf powinno zawierać:
- Konfiguracja Terraform i konfigurowanie dostawcy
- Grupa zasobów
- Klaster AKS z domyślną pulą węzłów systemu
- Dedykowana pula węzłów systemowych
- Opcjonalna pula węzłów użytkownika, jeśli jest wymagana
Ukończona konfiguracja wygląda podobnie do poniższego przykładu:
terraform {
required_version = ">= 1.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
}
}
provider "azurerm" {
features {}
}
resource "azurerm_resource_group" "rg" {
name = "aks-system-pool-rg"
location = "East US"
}
resource "azurerm_kubernetes_cluster" "aks" {
name = "aks-system-pool-cluster"
location = azurerm_resource_group.rg.location
resource_group_name = azurerm_resource_group.rg.name
dns_prefix = "akssystempool"
default_node_pool {
name = "systemnp"
vm_size = "Standard_D4s_v5"
node_count = 2
min_count = 2
max_count = 3
max_pods = 30
enable_auto_scaling = true
}
identity {
type = "SystemAssigned"
}
network_profile {
network_plugin = "azure"
load_balancer_sku = "standard"
}
}
resource "azurerm_kubernetes_cluster_node_pool" "system_pool" {
name = "systempool"
kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
vm_size = "Standard_D4s_v5"
node_count = 3
mode = "System"
max_pods = 30
node_taints = [
"CriticalAddonsOnly=true:NoSchedule"
]
}
resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
name = "userpool"
kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
vm_size = "Standard_D4s_v5"
node_count = 2
mode = "User"
max_pods = 30
enable_auto_scaling = true
min_count = 2
max_count = 4
}
Weryfikacja konfiguracji
Uruchom następujące polecenia, aby sformatować, zainicjować i zweryfikować konfigurację:
terraform fmt
terraform init
terraform validate
Przeglądanie planu wykonania
Uruchom następujące polecenie, aby przejrzeć plan wykonania przed wdrożeniem:
terraform plan
Stosowanie konfiguracji
Uruchom następujące polecenie, aby utworzyć klaster AKS i pule węzłów.
terraform apply
Weryfikowanie wdrożenia
Sprawdź konfigurację dedykowanej puli węzłów systemowych:
az aks nodepool show \
--resource-group aks-system-pool-rg \
--cluster-name aks-system-pool-cluster \
--name systempool
Przejrzyj dane wyjściowe i upewnij się, że pula węzłów jest skonfigurowana z mode ustawionym na System.
Połącz się z klastrem i wyświetl listę węzłów:
az aks get-credentials \
--resource-group aks-system-pool-rg \
--name aks-system-pool-cluster
kubectl get nodes
Pokaż szczegóły Twojej puli węzłów
Szczegóły puli węzłów można sprawdzić za pomocą następującego polecenia.
az aks nodepool show \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_SYSTEM_NP \
--query "{Count:count, Mode:mode, NodePool:name, NodeTaint:nodeTaints, ResourceGroup:resourceGroup}"
Tryb typu System jest definiowany dla pul węzłów systemowych, a tryb typu Użytkownik jest definiowany dla pul węzłów użytkownika. W przypadku puli systemu sprawdź, czy atrybut nodeTaints jest ustawiony na CriticalAddonsOnly=true:NoSchedule, co uniemożliwia przydzielenie zasobników aplikacji w tej puli węzłów.
{
"Count": 3,
"Mode": "System",
"NodePool": "systempool",
"NodeTaint": [
"CriticalAddonsOnly=true:NoSchedule"
],
"ResourceGroup": "myResourceGroup"
}
Szczegóły puli węzłów można sprawdzić za pomocą następującego polecenia.
Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewSystemNP |
Select-Object -Property Count, Mode, Name, NodeTaints
Tryb typu System jest definiowany dla pul węzłów systemowych, a tryb typu Użytkownik jest definiowany dla pul węzłów użytkownika. W przypadku puli systemu sprawdź, czy <
Count Mode Name NodeTaints
----- ---- ---- ----------
3 System systempool {CriticalAddonsOnly=true:NoSchedule}
Ten krok został uwzględniony w kroku Weryfikowanie wdrożenia w poprzedniej sekcji.
Tryb typu System jest definiowany dla pul węzłów systemowych, a tryb typu Użytkownik jest definiowany dla pul węzłów użytkownika. W przypadku puli systemu sprawdź, czy atrybut nodeTaints jest ustawiony na CriticalAddonsOnly=true:NoSchedule, co uniemożliwia przydzielenie zasobników aplikacji w tej puli węzłów.
Aktualizowanie istniejących pul węzłów systemu klastra i użytkowników
Uwaga
Aby ustawić tryb puli węzłów systemu, należy użyć wersji interfejsu API 2020-03-01 lub wyższej. Klastry utworzone na starszych wersjach interfejsu API niż 2020-03-01 zawierają wyłącznie pule węzłów użytkownika. Aby otrzymywać funkcje puli węzłów systemowych i korzyści ze starszych klastrów, zaktualizuj tryb istniejących pul węzłów przy użyciu następujących poleceń w najnowszej wersji Azure CLI.
Tryby można zmieniać zarówno dla pul węzłów systemowych, jak i pul węzłów użytkownika. Pulę węzłów systemowych można zmienić na pulę węzłów użytkownika tylko wtedy, gdy w klastrze usługi AKS istnieje już inna pula węzłów systemu.
Uruchom to polecenie, aby utworzyć nową pulę węzłów trybu systemu.
az aks nodepool add \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_NODE_POOL \
--node-count 3 \
--mode System
Możesz zweryfikować tryb za pomocą następującego polecenia.
az aks nodepool show \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_NODE_POOL \
--query mode --output tsv
System
Uruchom to polecenie, aby zmienić pulę węzłów systemowych na pulę węzłów użytkownika.
az aks nodepool update \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_NODE_POOL \
--mode User
Możesz sprawdzić, czy tryb został zmieniony za pomocą następującego polecenia.
az aks nodepool show \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_NODE_POOL \
--query mode --output tsv
User
Uwaga
Aby ustawić tryb puli węzłów systemu, należy użyć wersji interfejsu API 2020-03-01 lub wyższej. Klastry utworzone na starszych wersjach interfejsu API niż 2020-03-01 zawierają wyłącznie pule węzłów użytkownika. Aby otrzymywać funkcje puli węzłów systemowych i korzyści ze starszych klastrów, zaktualizuj tryb istniejących pul węzłów przy użyciu następujących poleceń w najnowszej wersji Azure PowerShell.
Tryby można zmieniać zarówno dla pul węzłów systemowych, jak i pul węzłów użytkownika. Pulę węzłów systemowych można zmienić na pulę węzłów użytkownika tylko wtedy, gdy w klastrze usługi AKS istnieje już inna pula węzłów systemu.
Uruchom to polecenie, aby utworzyć nową pulę węzłów trybu systemu.
$newpoolparams = @{
ResourceGroupName = $ResourceGroup
ClusterName = $ClusterName
Name = $NewNodePool
Count = 3
Mode = 'System'
}
New-AzAksNodePool @newpoolparams
Możesz zweryfikować tryb za pomocą następującego polecenia.
Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool |
Select-Object -Property Mode
Mode
----
System
Uruchom to polecenie, aby zmienić pulę węzłów systemowych na pulę węzłów użytkownika.
$updateuserpoolparams = @{
ResourceGroupName = $ResourceGroup
ClusterName = $ClusterName
Name = $NewNodePool
Mode = 'User'
}
Update-AzAksNodePool @updateuserpoolparams
Możesz zweryfikować tryb za pomocą następującego polecenia.
Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool |
Select-Object -Property Mode
Mode
----
User
Aby zmienić tryb istniejącej puli węzłów, zaktualizuj mode wartość w konfiguracji programu Terraform i ponownie zastosuj wdrożenie.
Na przykład następująca konfiguracja zmienia user_pool pulę węzłów na pulę węzłów systemowych:
resource "azurerm_kubernetes_cluster_node_pool" "user_pool" {
name = "userpool"
kubernetes_cluster_id = azurerm_kubernetes_cluster.aks.id
vm_size = "Standard_D4s_v5"
node_count = 2
mode = "System"
max_pods = 30
enable_auto_scaling = true
min_count = 2
max_count = 4
}
Po zaktualizowaniu konfiguracji uruchom polecenie:
terraform plan
terraform apply
Aby zmienić dedykowaną pulę węzłów systemowych na pulę węzłów użytkownika, zaktualizuj mode wartość parametru system_pool do User i ponownie zastosuj konfigurację.
Usuń pulę węzłów systemowych
Uwaga
Aby użyć pul węzłów systemowych w klastrach AKS przed określoną wersją interfejsu API 2020-03-01, dodaj nową pulę węzłów systemowych, a następnie usuń oryginalną, domyślną pulę węzłów.
Aby można było usunąć jeden z nich, musisz mieć co najmniej dwie pule węzłów systemowych w klastrze usługi AKS.
az aks nodepool delete \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--name $NEW_NODE_POOL
Po usunięciu puli węzłów systemowych należy zachować oryginalną pulę węzłów systemowych utworzoną razem z klastrem oraz dodatkową pulę węzłów systemowych, którą utworzono w sekcji dodaj dedykowaną pulę węzłów systemowych do istniejącego klastra usługi AKS.
az aks nodepool list \
--resource-group $RESOURCE_GROUP \
--cluster-name $CLUSTER_NAME \
--query "[].{Name:name, Mode:mode}" --output table
Uwaga
Aby użyć pul węzłów systemowych w klastrach AKS przed określoną wersją interfejsu API 2020-03-01, dodaj nową pulę węzłów systemowych, a następnie usuń oryginalną, domyślną pulę węzłów.
Aby można było usunąć jeden z nich, musisz mieć co najmniej dwie pule węzłów systemowych w klastrze usługi AKS.
Następujące polecenie wyświetla monit w celu potwierdzenia, czy chcesz usunąć pulę węzłów. Wpisz Y, aby potwierdzić.
Remove-AzAksNodePool $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool
Po usunięciu puli węzłów systemowych należy zachować oryginalną pulę węzłów systemowych utworzoną razem z klastrem oraz dodatkową pulę węzłów systemowych, którą utworzono w sekcji dodaj dedykowaną pulę węzłów systemowych do istniejącego klastra usługi AKS.
Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName
Klaster musi zawsze zawierać co najmniej jedną pulę węzłów systemowych. Jeśli klaster ma więcej niż jedną pulę węzłów systemowych, możesz go usunąć, usuwając blok zasobów z konfiguracji programu Terraform i stosując zmianę.
Na przykład usuń system_pool blok zasobów, a następnie uruchom polecenie:
terraform plan
terraform apply
Czyszczenie zasobów
Po usunięciu grupy zasobów klastra usługi AKS zostaną usunięte wszystkie zasoby klastra i powiązana grupa zasobów węzła (MC_).
Aby usunąć klaster, użyj polecenia az group delete, aby usunąć grupę zasobów AKS.
az group delete --name $RESOURCE_GROUP --yes --no-wait
Aby usunąć klaster, użyj polecenia Remove-AzResourceGroup , aby usunąć grupę zasobów usługi AKS:
Remove-AzResourceGroup -Name $ResourceGroup -Force
Po zakończeniu usuń zasoby:
terraform destroy
Następne kroki
W tym artykule dowiedziałeś się, jak tworzyć pule węzłów systemowych i zarządzać nimi w klastrze usługi AKS. Aby uzyskać informacje na temat uruchamiania i zatrzymywania pul węzłów usługi AKS, zobacz Uruchamianie i zatrzymywanie pul węzłów usługi AKS.