Aracılığıyla paylaş


Küme için düğüm havuzlarını yönetme (Azure Stack HCI 22H2 üzerinde AKS)

Şunlar için geçerlidir: Azure Stack HCI 22H2 üzerinde AKS, Windows Server'da AKS

Not

Azure Stack HCI 23H2 üzerinde AKS'de düğüm havuzlarını yönetme hakkında bilgi için bkz. Düğüm havuzlarını yönetme.

Azure Arc tarafından etkinleştirilen AKS'de, aynı yapılandırmaya ait düğümler düğüm havuzları halinde gruplandırılır. Bu düğüm havuzları, uygulamalarınızı çalıştıran temel vm'leri içerir. Bu makalede AKS Arc'ta bir küme için düğüm havuzları oluşturma ve yönetme gösterilmektedir.

Not

Bu özellik, birden çok düğüm havuzu oluşturma ve yönetme üzerinde daha fazla denetim sağlar. Sonuç olarak oluşturma, güncelleştirme ve silme işlemleri için ayrı komutlar gerekir. Daha önce New-AksHciCluster veya Set-AksHciCluster aracılığıyla yapılan küme işlemleri, bir Windows düğüm havuzu ve bir Linux düğüm havuzu ile küme oluşturmak veya ölçeklendirmek için tek seçenekti. Bu özellik, tek bir düğüm havuzunda işlemleri yürütmek için New-AksHciNodePool, Set-AksHciNodePool, Get-AksHciNodePool ve Remove-AksHciNodePool düğüm havuzu komutlarının kullanılmasını gerektiren düğüm havuzları için ayrı bir işlem kümesi sunar.

Başlamadan önce

1.1.6 sürümünü yüklemenizi öneririz. PowerShell modülü zaten yüklüyse, sürümü bulmak için aşağıdaki komutu çalıştırın:

Get-Command -Module AksHci

PowerShell'i güncelleştirmeniz gerekiyorsa AKS ana bilgisayarını yükseltme başlığındaki yönergeleri izleyin.

AKS kümesi oluşturma

Başlamak için tek düğümlü havuza sahip bir AKS kümesi oluşturun. Aşağıdaki örnekte New-AksHciCluster komutu kullanılarak 1 düğüme sahip linuxnodepool adlı bir Linux düğüm havuzuna sahip yeni bir Kubernetes kümesi oluşturulur. AKS'nin daha eski bir sürümüyle dağıtılmış bir kümeniz zaten varsa ve eski dağıtımınızı kullanmaya devam etmek istiyorsanız, bu adımı atlayabilirsiniz. Mevcut kümenize daha fazla düğüm havuzu eklemek için yeni düğüm havuzu komutlarını kullanmaya devam edebilirsiniz.

New-AksHciCluster -name mycluster -nodePoolName linuxnodepool -nodeCount 1 -osType linux

Not

için New-AksHciCluster eski parametre kümesi hala desteklenmektedir.

Düğüm havuzu ekleme

Önceki adımda oluşturulan *' adlı myclusterkümenin tek bir düğüm havuzu vardır. New-AksHciNodePool komutunu kullanarak mevcut kümeye ikinci bir düğüm havuzu ekleyebilirsiniz. Aşağıdaki örnek, tek düğümlü windowsnodepool adlı bir Windows düğüm havuzu oluşturur. Düğüm havuzunun adının mevcut düğüm havuzuyla aynı ad olmadığından emin olun.

New-AksHciNodePool -clusterName mycluster -name windowsnodepool -count 1 -osType Windows -osSku Windows2022

Düğüm havuzunun yapılandırma bilgilerini alma

Düğüm havuzlarınızın yapılandırma bilgilerini görmek için Get-AksHciNodePool komutunu kullanın.

Get-AksHciNodePool -clusterName mycluster

Örnek çıktı:

ClusterName  : mycluster
NodePoolName : linuxnodepool
Version      : v1.20.7
OsType       : Linux
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed

ClusterName  : mycluster
NodePoolName : windowsnodepool
Version      : v1.20.7
OsType       : Windows
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed

Belirli bir düğüm havuzunun yapılandırma bilgilerini görmek için Get-AksHciNodePool içindeki parametresini kullanın-name.

Get-AksHciNodePool -clusterName mycluster -name linuxnodepool

Örnek çıktı:

ClusterName  : mycluster
NodePoolName : linuxnodepool
Version      : v1.20.7
OsType       : Linux
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed
Get-AksHciNodePool -clusterName mycluster -name windowsnodepool

Örnek çıktı:

ClusterName  : mycluster
NodePoolName : windowsnodepool
Version      : v1.20.7
OsType       : Windows
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed

Not

yeni parametre kümelerini New-AksHciCluster kullanarak bir küme dağıtıp küme bilgilerini almak için komutunu çalıştırırsanız Get-AksHciCluster , alanlar WindowsNodeCount ve LinuxNodeCount çıktıda döndürür 0. Her düğüm havuzundaki doğru düğüm sayısını almak için belirtilen küme adıyla komutunu Get-AksHciNodePool kullanın.

Düğüm havuzunu ölçeklendirme

Düğüm havuzunda düğüm sayısını artırıp azaltabilirsiniz.

Düğüm havuzundaki düğüm sayısını ölçeklendirmek için Set-AksHciNodePool komutunu kullanın. Aşağıdaki örnek, kümedeki adlı linuxnodepool düğüm havuzunda düğüm sayısını 3'e mycluster ölçeklendirir.

Set-AksHciNodePool -clusterName mycluster -name linuxnodepool -count 3

Denetim düzlemi düğümlerini ölçeklendirme

Denetim düzlemi düğümlerinin yönetimi değişmedi. Bunların oluşturulma, ölçeklendirilip kaldırılma şekli aynı kalır. New-AksHciCluster komutuyla denetim düzlemi düğümlerini controlPlaneNodeCount parametrelerle ve controlPlaneVmSize hiçbir değer sağlamazsanız sırasıyla 1 ve Standard_A4_V2 varsayılan değerleriyle dağıtmaya devam edebilirsiniz.

Uygulamalarınızın iş yükü talebi değiştikçe denetim düzlemi düğümlerini ölçeklendirmeniz gerekebilir. Denetim düzlemi düğümlerini ölçeklendirmek için Set-AksHciCluster komutunu kullanın. Aşağıdaki örnek, önceki adımlarda oluşturulan kümede mycluster denetim düzlemi düğümlerini 3'e ölçeklendirir.

Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3

Düğüm havuzunu silme

Düğüm havuzunu silmeniz gerekiyorsa Remove-AksHciNodePool komutunu kullanın. Aşağıdaki örnek adlı windowsnodepool düğüm havuzunu kümeden mycluster kaldırır.

Remove-AksHciNodePool -clusterName mycluster -name windowsnodepool

Düğüm havuzu için renk tonu belirtme

Düğüm havuzu oluştururken, bu düğüm havuzuna renk tonları ekleyebilirsiniz. Bir renk tonu eklediğinizde, bu düğüm havuzundaki tüm düğümler de bu taint'i alır. Taint'ler ve toleranslar hakkında daha fazla bilgi için bkz. Kubernetes Taints ve Tolerations.

Düğüm havuzu renk tonlarını ayarlama

Taint içeren bir düğüm havuzu oluşturmak için New-AksHciNodePool kullanın. adını taintnpbelirtin ve taint için belirtmek sku=gpu:noSchedule üzere parametresini kullanın-taints.

New-AksHciNodePool -clusterName mycluster -name taintnp -count 1 -osType linux -taints sku=gpu:NoSchedule

Not

Bir renk tonu yalnızca düğüm havuzu oluşturma sırasında düğüm havuzları için ayarlanabilir.

Düğüm havuzunun belirtilen renk tonuyla başarıyla dağıtıldığından emin olmak için aşağıdaki komutu çalıştırın.

Get-AksHciNodePool -clusterName mycluster -name taintnp

Çıkış

Status       : {Phase, Details}
ClusterName  : mycluster
NodePoolName : taintnp
Version      : v1.20.7-kvapkg.1
OsType       : Linux
NodeCount    : 1
VmSize       : Standard_K8S3_v1
Phase        : Deployed
Taints       : {sku=gpu:NoSchedule}

Önceki adımda, düğüm havuzunuzu oluştururken sku=gpu:NoSchedule taint'i uyguladınız. Aşağıdaki temel örnek YAML bildirimi, Kubernetes zamanlayıcısının bu düğüm havuzundaki bir düğümde NGINX podunu çalıştırmasına izin vermek için bir tolerans kullanır.

adlı nginx-toleration.yamlbir dosya oluşturun ve aşağıdaki metindeki bilgileri kopyalayın.

apiVersion: v1
kind: Pod
metadata:
  name: mypod
spec:
  containers:
  - image: mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine
    name: mypod
    resources:
      requests:
        cpu: 100m
        memory: 128Mi
      limits:
        cpu: 1
        memory: 2G
  tolerations:
  - key: "sku"
    operator: "Equal"
    value: "gpu"
    effect: "NoSchedule"

Ardından, aşağıdaki komutu kullanarak pod'u zamanlayın.

kubectl apply -f nginx-toleration.yaml

Pod'un dağıtıldığını doğrulamak için aşağıdaki komutu çalıştırın:

kubectl describe pod mypod
[...]
Tolerations:     node.kubernetes.io/not-ready:NoExecute op=Exists for 300s
                 node.kubernetes.io/unreachable:NoExecute op=Exists for 300s
                 sku=gpu:NoSchedule
Events:
  Type    Reason     Age   From               Message
  ----    ------     ----  ----               -------
  Normal  Scheduled  32s   default-scheduler  Successfully assigned default/mypod to moc-lk4iodl7h2y
  Normal  Pulling    30s   kubelet            Pulling image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine"
  Normal  Pulled     26s   kubelet            Successfully pulled image "mcr.microsoft.com/oss/nginx/nginx:1.15.9-alpine" in 4.529046457s
  Normal  Created    26s   kubelet            Created container mypod

Sonraki adımlar