Azure Kubernetes Service (AKS) sistem düğümü havuzlarını yönetme

Azure Kubernetes Service (AKS)'da, aynı yapılandırmanın düğümleri node havuzları olarak gruplandırılır. Düğüm havuzları, uygulamalarınızı çalıştıran temel alınan sanal makineleri (VM) içerir. Sistem düğümü havuzları ve kullanıcı düğümü havuzları, AKS kümeleriniz için iki farklı düğüm havuzu modudır. Bu makalede AKS'de sistem düğümü havuzlarının nasıl yönetileceğini açıklanmaktadır. Birden çok düğüm havuzunu kullanma hakkında bilgi için bkz. Düğüm havuzları oluşturma.

  • Sistem düğümü havuzları: Birincil amaç ve CoreDNSgibi metrics-server kritik sistem podlarını barındırmaktır. Sistem düğümü havuzları uygulamanızı çalıştırmak için kullanılmamalıdır. Sistem düğümü havuzları Ubuntu Linux veya Azure Linux kullanır.
  • Kullanıcı düğümü havuzları: Birincil amaç, uygulama podlarınızı barındırmak ve uygulamaları sistem düğümü havuzundan yalıtmaktır. Bu yalıtım, bir uygulamanın kümenizin sistem düğümü havuzunda dengesizlik oluşturmasını önler. Kullanıcı düğümü havuzları Ubuntu Linux, Azure Linux veya Windows kullanabilir.

Tek bir sistem düğümü havuzuna sahip bir üretim AKS kümesi en az iki düğüm içermelidir. Tek bir sistem düğümü havuzuna sahip bir üretim AKS kümesi için öneri, iyileştirilmiş hataya dayanıklılık ve kullanılabilirlik alanları için en az üç düğüme sahip olmaktır. Örneğin, komutun az aks create varsayılan düğüm sayısı üç olur ve tek bir Linux sistem düğümü havuzu ve üç Linux düğümü ile yeni bir küme oluşturur.

AKS kümenizde yalnızca bir düğüm havuzu varsa, uygulama podlarını sistem düğümü havuzunda zamanlamak mümkündür, ancak önerilmez. Uygulamanız için bir kullanıcı düğümü havuzu oluşturmak daha iyi bir çözümdür.

Başlamadan önce

Azure CLI sürüm 2.31 veya sonraki bir sürümün yüklü ve yapılandırılmış olması gerekir. Sürümü bulmak için komutunu çalıştırın az --version . Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure CLI yükleme.

Azure PowerShell sürüm 7.5.0 veya üzerinin yüklü ve yapılandırılmış olması gerekir. Sürümü bulmak için komutunu çalıştırın Get-InstalledModule -Name Az . Yüklemeniz veya yükseltmeniz gerekiyorsa bkz. Azure PowerShell yükleme.

Başlamadan önce aşağıdaki önkoşullara sahip olduğunuzdan emin olun:

  • Etkin bir Azure aboneliği.
  • Terraform yerel olarak yüklendi.
  • Azure CLI yüklendi ve oturum açtı.
  • AKS kaynaklarını oluşturma ve yönetme izinleri.

Aboneliğinizi ayarlayın:

az account set --subscription <subscription-id>

Sınırlamalar

Sistem düğümü havuzlarını destekleyen AKS kümelerini oluşturur ve yönetirken aşağıdaki sınırlamalar geçerlidir.

  • Bkz. AKS'de kotalar, VM boyutu kısıtlamaları ve bölge kullanılabilirliği.
  • Düğüm havuzu modunu ayarlamak için API sürümü 2020-03-01 veya daha büyük bir sürüm kullanılmalıdır. 2020-03-01'den daha eski API sürümlerinde oluşturulan kümeler yalnızca kullanıcı düğüm havuzları içerir, ancak güncelleştirme havuzu modu adımları izlenerek sistem düğüm havuzlarını içerecek şekilde dönüştürülebilir.
  • Düğüm havuzunun adı yalnızca küçük harfli alfasayısal karakterler içerebilir ve küçük harfle başlamalıdır. Linux düğüm havuzları için uzunluk 1 ile 12 karakter arasında olmalıdır. Windows düğüm havuzları için uzunluk bir ile altı karakter arasında olmalıdır.
  • Düğüm havuzunun modu gerekli bir konfigürasyon özelliğidir ve ARM şablonları veya doğrudan API çağrıları kullanıldığında açıkça ayarlanmalıdır.

Sistem ve kullanıcı düğüm havuzları

Bir sistem düğüm havuzu için AKS, etiketi kubernetes.azure.com/mode: system otomatik olarak düğümlere atar. Bu, AKS'nin bu etiketi içeren düğüm havuzlarında sistem podlarını zamanlamayı tercih etmesine neden olur. Bu etiket, sistem düğümü havuzlarında uygulama podlarını zamanlamanızı engellemez. Ancak hatalı yapılandırılmış veya hatalı uygulama podlarının sistem podlarını yanlışlıkla silmesini önlemek için kritik sistem podlarını uygulama podlarınızdan yalıtmanızı öneririz.

Ayrılmış bir sistem düğümü havuzu oluşturarak bu davranışı zorunlu kılabilirsiniz. Uygulama podlarının sistem düğüm havuzlarında planlanmasını önlemek için CriticalAddonsOnly=true:NoSchedule taint'ini kullanın.

Sistem düğümü havuzları aşağıdaki kısıtlamalara sahiptir:

  • Sistem düğümü havuzları, podlar için en düşük ve en yüksek değer formülüyle açıklandığı gibi en az 30 pod desteklemelidir.
  • Sistem havuzları osType Linux olmalıdır.
  • osType kullanıcı düğümü havuzları Linux veya Windows olabilir.
  • Sistem havuzları en az iki düğüm içermelidir, ancak öneri üç düğümdür. Kullanıcı düğümü havuzları sıfır veya daha fazla düğüm içerebilir.
  • Sistem düğümü havuzları en az 4 vCPU ve 4 GB bellek içeren bir VM SKU'su gerektirir.
  • B serisi VM'ler sistem düğümü havuzları için desteklenmez.
  • Özellikle büyük kümeler (Çoklu CoreDNS Pod çoğaltmaları, 3-4+ eklentiler vb.) için en az 8 vCPU veya en az 16 vCPU içeren iki düğüm (örneğin, Standard_DS4_v2) önerilir.
  • Spot düğüm havuzları için kullanıcı düğümü havuzları gerekir.
  • Başka bir sistem düğümü havuzu eklemek veya hangi düğüm havuzunun sistem düğümü havuzu olduğunu değiştirmek sistem podlarını otomatik olarak taşımaz. Sistem podları, kullanıcı düğümü havuzuna değiştirseniz bile yine de aynı düğüm havuzunda çalışmaya devam edebilir. Daha önce sistem düğümü havuzu olan sistem podlarını çalıştıran bir düğüm havuzunu siler veya daraltırsanız, bu sistem podları yeni sistem düğümü havuzuna tercih edilen zamanlamayla yeniden dağıtılır.

Düğüm havuzlarıyla aşağıdaki işlemleri yapabilirsiniz:

  • Ayrılmış bir sistem düğümü havuzu oluşturun (sistem podlarının düğüm havuzlarına mode:systemzamanlamasını tercih edin)
  • AKS kümesindeki yerini alacak başka bir sistem düğümü havuzunuz olması koşuluyla sistem düğümü havuzunu kullanıcı düğümü havuzu olarak değiştirin.
  • Kullanıcı düğümü havuzunu sistem düğümü havuzu olarak değiştirin.
  • Kullanıcı düğümü havuzlarını silin.
  • AKS kümesindeki yerini alacak başka bir sistem düğümü havuzunuz olması koşuluyla sistem düğümü havuzlarını silebilirsiniz.
  • AKS kümesi birden çok sistem düğümü havuzuna sahip olabilir ve en az bir sistem düğümü havuzu gerektirir.
  • Mevcut düğüm havuzlarında çeşitli sabit ayarları değiştirmek istiyorsanız, bunları değiştirmek için yeni düğüm havuzları oluşturabilirsiniz. Örneklerden biri, yeni bir ayara sahip yeni maxPods bir düğüm havuzu eklemek ve eski düğüm havuzunu silmektir.
  • Düğüm yakınlığınıgerektirmek veya tercih etmek için düğüm etiketlerine göre hangi düğümlerin zamanlanabileceğini kullanın. YAML dosyanız için key'yı kubernetes.azure.com, operator'yı In, ve values'yı user veya system olarak ayarlayabilir ve kubectl apply -f yourYAML.yaml kullanarak bu tanımı uygulayabilirsiniz.

Sistem düğümü havuzuyla yeni bir AKS kümesi oluşturma

Yeni bir AKS kümesi oluşturduğunuzda, ilk düğüm havuzu varsayılan olarak türünde Systembir moda geçer. ile az aks nodepool addyeni düğüm havuzları oluşturduğunuzda, mode parametresini açıkça belirtmediğiniz sürece bu düğüm havuzları kullanıcı düğümü havuzlarıdır.

Bu makalede kullanılan komutlar için kaynak grubu, küme adı ve konum için değişkenler oluşturun. Bu makale değerleri belirtir veya kendi değerlerinizi kullanabilirsiniz.

export RESOURCE_GROUP="myResourceGroup"
export CLUSTER_NAME="myAKSCluster"
export LOCATION="eastus"
export NEW_SYSTEM_NP="systempool"
export NEW_NODE_POOL="mynodepool"

Aşağıdaki örnek, eastus bölgesinde myResourceGroup adlı bir kaynak grubu oluşturur.

az group create --name $RESOURCE_GROUP --location $LOCATION

az aks create AKS kümesi oluşturmak için komutunu kullanın. Aşağıdaki örnek, iki düğüm içeren bir ayrılmış sistem havuzuna sahip myAKSCluster adlı bir küme oluşturur. Üretim iş yükleriniz için en az üç düğüme sahip sistem düğümü havuzları kullandığınızdan emin olun. Bu işlemin tamamlanması birkaç dakika sürer.

az aks create --resource-group $RESOURCE_GROUP --name $CLUSTER_NAME --node-count 2 --generate-ssh-keys

Yeni bir AKS kümesi oluşturduğunuzda, ilk düğüm havuzu varsayılan olarak türünde systembir moda geçer. ile New-AzAksNodePoolyeni düğüm havuzları oluşturduğunuzda, bu düğüm havuzları kullanıcı düğümü havuzlarıdır. İstediğiniz zaman, bir düğüm havuzunun modu güncellenebilir.

Bu makalede kullanılan komutlar için kaynak grubu, küme adı ve konum için değişkenler oluşturun. Bu makale değerleri belirtir veya kendi değerlerinizi kullanabilirsiniz.

$ResourceGroup="myResourceGroup"
$ClusterName="myAKSCluster"
$Location="eastus"
$NewSystemNP="systempool"
$NewNodePool="mynodepool"

Aşağıdaki örnek, eastus bölgesinde myResourceGroup adlı bir kaynak grubu oluşturur.

New-AzResourceGroup -ResourceGroupName $ResourceGroup -Location $Location

Aks kümesi oluşturmak için New-AzAksCluster cmdlet'ini kullanın. Aşağıdaki örnek, iki düğüm içeren bir ayrılmış sistem havuzuna sahip myAKSCluster adlı bir küme oluşturur. Üretim iş yükleriniz için en az üç düğüme sahip sistem düğümü havuzları kullandığınızdan emin olun. İşlemin tamamlanması birkaç dakika sürer.

New-AzAksCluster -ResourceGroupName $ResourceGroup -Name $ClusterName -NodeCount 2 -GenerateSshKey

Sistem düğümü havuzuna sahip bir AKS kümesi oluşturmak için aşağıdaki Terraform yapılandırmasını kullanın.

Terraform yapılandırma dosyasını oluşturma

adlı main.tfbir dosya oluşturun ve aşağıdaki paylaşılan yapılandırmayı ekleyin:

terraform {
 required_version = ">= 1.0"
 required_providers {
   azurerm = {
     source  = "hashicorp/azurerm"
     version = "~> 4.0"
   }
 }
}
provider "azurerm" {
 features {}
}

Bir kaynak grubu oluşturun

Aşağıdaki kaynak grubu yapılandırmasını ekleyin:

resource "azurerm_resource_group" "rg" {
 name     = "aks-system-pool-rg"
 location = "East US"
}

Kaynak grubu, Azure kaynakları düzenlemek ve yönetmek için kullanılır.

Yeni AKS kümesi oluşturma

AKS kümesi oluşturmak için aşağıdaki yapılandırmayı ekleyin. İlk düğüm havuzu bir sistem düğümü havuzu olarak oluşturulur ve küme işlemi için gereklidir.

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"
 }
}

Mevcut AKS kümesine ayrılmış bir sistem düğümü havuzu ekleme

Mevcut AKS kümelerine bir veya daha fazla sistem düğümü havuzu ekleyebilirsiniz. Öneri, uygulama podlarınızı kullanıcı düğümü havuzlarında zamanlamak ve sistem düğümü havuzlarını yalnızca kritik sistem podlarına ayırmaktır. Bu ayırma, düzenbaz uygulama podlarının sistem podlarını yanlışlıkla silmesini önler. Sistem düğümü havuzlarınız için CriticalAddonsOnly=true:NoScheduletaint özelliğiyle bu davranışı zorlayın.

Aşağıdaki komut, üç düğüm içeren mod tipi System özel bir düğüm havuzu ekler. komutu az aks nodepool add varsayılan olarak üç düğüm ekler, ancak istediğiniz düğüm sayısını belirtmek için parametresini kullanırsınız --node-count .

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

Mevcut AKS kümelerine bir veya daha fazla sistem düğümü havuzu ekleyebilirsiniz. Öneri, uygulama podlarınızı kullanıcı düğümü havuzlarında zamanlamak ve sistem düğümü havuzlarını yalnızca kritik sistem podlarına ayırmaktır. Daha fazla sistem düğümü havuzu eklemek, hatalı uygulama podlarının sistem podlarını yanlışlıkla silmesini önler. Sistem düğümü havuzlarınız için CriticalAddonsOnly=true:NoScheduletaint davranışını dayatın.

Aşağıdaki komut, üç düğüm içeren mod tipi System özel bir düğüm havuzu ekler.

$systempoolparams = @{
  ResourceGroupName = $ResourceGroup
  ClusterName = $ClusterName
  Name = $NewSystemNP
  Count = 3
  Mode = 'System'
  NodeTaint = 'CriticalAddonsOnly=true:NoSchedule'
}

New-AzAksNodePool @systempoolparams

Kritik sistem iş yüklerini yalıtmak için sistem düğümü havuzu olarak yapılandırılmış ikinci bir düğüm havuzu ekleyin.

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"
 ]
}

Bu yapılandırma, uygulama iş yüklerinin özel sistem düğümü havuzunda programlanmaması için CriticalAddonsOnly=true:NoSchedule taint uygular.

Kullanıcı düğümü havuzu ekleme

Uygulama iş yüklerini sistem bileşenlerinden ayırmak için bir kullanıcı düğümü havuzu ekleyin.

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
}

Kullanıcı düğümü havuzları, uygulama podları için ayrılmış bir ortam sağlar.

Dağıtımdan önce son denetim

Sizin main.tf şunları içermelidir:

  • Terraform ve sağlayıcı yapılandırması
  • Kaynak Grubu
  • Varsayılan sistem düğümü havuzuna sahip AKS kümesi
  • Ayrılmış sistem düğümü havuzu
  • Gerekirse kullanıcı için isteğe bağlı düğüm havuzu

Tamamlanmış bir yapılandırma aşağıdaki örneğe benzer:

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
}

Yapılandırmayı doğrulama

Yapılandırmayı biçimlendirmek, başlatmak ve doğrulamak için aşağıdaki komutları çalıştırın:

terraform fmt
terraform init
terraform validate

Yürütme planını gözden geçirme

Dağıtımdan önce yürütme planını gözden geçirmek için aşağıdaki komutu çalıştırın:

terraform plan

Yapılandırmayı uygulama

AKS kümesini ve düğüm havuzlarını oluşturmak için aşağıdaki komutu çalıştırın:

terraform apply

Dağıtımı doğrulayın.

Ayrılmış sistem düğümü havuzu yapılandırmasını denetleyin:

az aks nodepool show \
 --resource-group aks-system-pool-rg \
 --cluster-name aks-system-pool-cluster \
 --name systempool

Çıktıyı gözden geçirin ve düğüm havuzunun modeSystem ile yapılandırıldığını onaylayın. Kümeye bağlanın ve düğümleri listeleyin:

az aks get-credentials \
 --resource-group aks-system-pool-rg \
 --name aks-system-pool-cluster

kubectl get nodes

Düğüm havuzunuzun ayrıntılarını göster

Aşağıdaki komutla düğüm havuzunuzun ayrıntılarını de kontrol edebilirsiniz.

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}"

Sistem düğümü havuzları için Sistem türünde bir mod ve kullanıcı düğümü havuzları için Kullanıcı türünde bir mod tanımlanır. Sistem havuzu için, nodeTaints özelliğinin CriticalAddonsOnly=true:NoSchedule olarak ayarlandığını ve bu sayede uygulama podlarının bu düğüm havuzunda zamanlanmasının önlendiğini doğrulayın.

{
  "Count": 3,
  "Mode": "System",
  "NodePool": "systempool",
  "NodeTaint": [
    "CriticalAddonsOnly=true:NoSchedule"
  ],
  "ResourceGroup": "myResourceGroup"
}

Aşağıdaki komutla düğüm havuzunuzun ayrıntılarını de kontrol edebilirsiniz.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewSystemNP |
  Select-Object -Property Count, Mode, Name, NodeTaints

Sistem düğümü havuzları için Sistem türünde bir mod ve kullanıcı düğümü havuzları için Kullanıcı türünde bir mod tanımlanır. Sistem havuzu için, uygulama podlarının bu düğüm havuzunda zamanlanmasını engelleyen taint'in `CriticalAddonsOnly=true:NoSchedule` olarak ayarlandığını doğrulayın.

Count Mode   Name       NodeTaints
----- ----   ----       ----------
    3 System systempool {CriticalAddonsOnly=true:NoSchedule}

Bu adım, önceki bölümün Dağıtımı doğrulama adımına eklenmiştir.

Sistem düğümü havuzları için Sistem türünde bir mod ve kullanıcı düğümü havuzları için Kullanıcı türünde bir mod tanımlanır. Sistem havuzu için, nodeTaints özelliğinin CriticalAddonsOnly=true:NoSchedule olarak ayarlandığını ve bu sayede uygulama podlarının bu düğüm havuzunda zamanlanmasının önlendiğini doğrulayın.

Mevcut küme sistemini ve kullanıcı düğümü havuzlarını güncelleştirme

Not

Sistem düğümü havuz modunu ayarlamak için 2020-03-01 veya daha büyük bir API sürümü kullanılmalıdır. Bundan eski 2020-03-01 API sürümlerinde oluşturulan kümeler, sonuç olarak yalnızca kullanıcı düğümü havuzları içerir. Eski kümelerde sistem düğümü havuzu işlevselliğini ve avantajlarını almak için, mevcut düğüm havuzlarının modunu en son Azure CLI sürümünde aşağıdaki komutlarla güncelleştirin.

Hem sistem düğümü havuzlarının hem de kullanıcı düğümü havuzlarının modlarını değiştirebilirsiniz. Bir sistem düğümü havuzunu yalnızca AKS kümesinde zaten başka bir sistem düğümü havuzu varsa bir kullanıcı düğümü havuzuyla değiştirebilirsiniz.

Yeni bir sistem modu düğüm havuzu oluşturmak için bu komutu çalıştırın.

az aks nodepool add \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL \
  --node-count 3 \
  --mode System

Modu aşağıdaki komutla doğrulayabilirsiniz.

az aks nodepool show \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL \
  --query mode --output tsv
System

Sistem düğümü havuzunu kullanıcı düğümü havuzuyla değiştirmek için bu komutu çalıştırın.

az aks nodepool update \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL \
  --mode User

Modun değiştiğini aşağıdaki komutla doğrulayabilirsiniz.

az aks nodepool show \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL \
  --query mode --output tsv
User

Not

Sistem düğümü havuz modunu ayarlamak için 2020-03-01 veya daha büyük bir API sürümü kullanılmalıdır. Bundan eski 2020-03-01 API sürümlerinde oluşturulan kümeler, sonuç olarak yalnızca kullanıcı düğümü havuzları içerir. Eski kümelerde sistem düğümü havuzu işlevselliğini ve avantajlarını almak için, mevcut düğüm havuzlarının modunu en son Azure PowerShell sürümünde aşağıdaki komutlarla güncelleştirin.

Hem sistem düğümü havuzlarının hem de kullanıcı düğümü havuzlarının modlarını değiştirebilirsiniz. Bir sistem düğümü havuzunu yalnızca AKS kümesinde zaten başka bir sistem düğümü havuzu varsa bir kullanıcı düğümü havuzuyla değiştirebilirsiniz.

Yeni bir sistem modu düğüm havuzu oluşturmak için bu komutu çalıştırın.

$newpoolparams = @{
  ResourceGroupName = $ResourceGroup
  ClusterName = $ClusterName
  Name = $NewNodePool
  Count = 3
  Mode = 'System'
}

New-AzAksNodePool @newpoolparams

Modu aşağıdaki komutla doğrulayabilirsiniz.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool |
  Select-Object -Property Mode
Mode
----
System

Sistem düğümü havuzunu kullanıcı düğümü havuzuyla değiştirmek için bu komutu çalıştırın.

$updateuserpoolparams = @{
  ResourceGroupName = $ResourceGroup
  ClusterName = $ClusterName
  Name = $NewNodePool
  Mode = 'User'
}

Update-AzAksNodePool @updateuserpoolparams

Modu aşağıdaki komutla doğrulayabilirsiniz.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool |
  Select-Object -Property Mode
Mode
----
User

Mevcut düğüm havuzunun modunu değiştirmek için Terraform yapılandırmasındaki değeri güncelleştirin mode ve dağıtımı yeniden uygulayın.

Örneğin, aşağıdaki yapılandırma düğüm havuzunu bir sistem düğümü havuzuna değiştirir user_pool :

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
}

Yapılandırmayı güncelleştirdikten sonra şunu çalıştırın:

terraform plan
terraform apply

Ayrılmış sistem düğümü havuzunu bir kullanıcı düğümü havuzuna dönüştürmek için mode değerini system_pool olarak User ile güncelleyin ve yapılandırmayı yeniden uygulayın.

Sistem düğümü havuzunu silme

Not

API sürümünden 2020-03-01önce AKS kümelerinde sistem düğümü havuzlarını kullanmak için yeni bir sistem düğümü havuzu ekleyin ve özgün varsayılan düğüm havuzunu silin.

Bunlardan birini silebilmeniz için aks kümenizde en az iki sistem düğümü havuzu olmalıdır.

az aks nodepool delete \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --name $NEW_NODE_POOL

Sistem düğümü havuzunu sildikten sonra, kümeyle oluşturulmuş olan özgün sistem düğümü havuzuna ve var olan bir AKS kümesine özel bir sistem düğümü havuzu ekleyin bölümünde oluşturduğunuz sistem düğümü havuzuna sahip olmalısınız.

az aks nodepool list \
  --resource-group $RESOURCE_GROUP \
  --cluster-name $CLUSTER_NAME \
  --query "[].{Name:name, Mode:mode}" --output table

Not

API sürümünden 2020-03-01önce AKS kümelerinde sistem düğümü havuzlarını kullanmak için yeni bir sistem düğümü havuzu ekleyin ve özgün varsayılan düğüm havuzunu silin.

Bunlardan birini silebilmeniz için aks kümenizde en az iki sistem düğümü havuzu olmalıdır.

Aşağıdaki komut, düğüm havuzunu silme onayı ister. Onaylamak için Y yazın.

Remove-AzAksNodePool $ResourceGroup -ClusterName $ClusterName -Name $NewNodePool

Sistem düğümü havuzunu sildikten sonra, kümeyle oluşturulmuş olan özgün sistem düğümü havuzuna ve var olan bir AKS kümesine özel bir sistem düğümü havuzu ekleyin bölümünde oluşturduğunuz sistem düğümü havuzuna sahip olmalısınız.

Get-AzAksNodePool -ResourceGroupName $ResourceGroup -ClusterName $ClusterName

Bir küme her zaman en az bir sistem düğümü havuzu içermelidir. Kümede birden fazla sistem düğümü havuzu varsa, kaynak bloğunu Terraform yapılandırmasından silip değişikliği uygulayarak bir tane kaldırabilirsiniz.

Örneğin, kaynak bloğunu system_pool kaldırın ve şunu çalıştırın:

terraform plan
terraform apply

Kaynakları temizleme

AKS kümesinin kaynak grubunu sildiğinizde, tüm küme kaynakları ve ilgili düğüm kaynak grubu (MC_) silinir.

Kümeyi silmek için az group delete komutunu kullanarak AKS kaynak grubunu silin:

az group delete --name $RESOURCE_GROUP --yes --no-wait

Kümeyi silmek için Remove-AzResourceGroup komutunu kullanarak AKS kaynak grubunu silin:

Remove-AzResourceGroup -Name $ResourceGroup -Force

İşiniz bittiğinde kaynakları kaldırın:

terraform destroy

Sonraki adımlar

Bu makalede, AKS kümesinde sistem düğümü havuzları oluşturmayı ve yönetmeyi öğrendiniz. AKS düğüm havuzlarını başlatma ve durdurma hakkında bilgi için AKS düğüm havuzlarını başlatma ve durdurma kısmına bakın.