Bagikan melalui


Mengelola kumpulan simpul untuk kluster (AKS di Azure Local 22H2)

Berlaku untuk: AKS di Azure Local 22H2, AKS di Windows Server

Catatan

Untuk informasi tentang mengelola kumpulan simpul di AKS di Azure Local 23H2, lihat Mengelola kumpulan simpul.

Di AKS yang diaktifkan oleh Azure Arc, simpul konfigurasi yang sama dikelompokkan bersama ke dalam kumpulan simpul. Kumpulan simpul ini berisi VM dasar yang menjalankan aplikasi Anda. Artikel ini memperlihatkan kepada Anda cara membuat dan mengelola kumpulan simpul untuk kluster di AKS Arc.

Catatan

Fitur ini memungkinkan kontrol yang lebih besar atas cara membuat dan mengelola beberapa kumpulan simpul. Akibatnya, perintah terpisah diperlukan untuk operasi buat, perbarui, dan hapus. Sebelumnya, operasi kluster melalui New-AksHciCluster atau Set-AksHciCluster adalah satu-satunya opsi untuk membuat atau menskalakan kluster dengan satu kumpulan simpul Windows dan satu kumpulan simpul Linux. Fitur ini menawarkan set operasi terpisah untuk kumpulan node yang memerlukan penggunaan perintah kumpulan node New-AksHciNodePool, Set-AksHciNodePool, Get-AksHciNodePool, dan Remove-AksHciNodePool untuk menjalankan operasi pada kumpulan node individual.

Sebelum Anda mulai

Kami menyarankan agar Anda menginstal versi 1.1.6. Jika Anda sudah menginstal modul PowerShell, jalankan perintah berikut untuk menemukan versi:

Get-Command -Module AksHci

Jika Anda perlu memperbarui PowerShell, ikuti instruksi di Meningkatkan host AKS.

Membuat kluster AKS

Untuk memulai, buat kluster AKS dengan satu kumpulan simpul. Contoh berikut menggunakan perintah New-AksHciCluster untuk membuat kluster Kubernetes baru dengan satu kumpulan simpul Linux bernama linuxnodepool, yang memiliki 1 simpul. Jika Anda sudah memiliki kluster yang disebarkan dengan versi AKS yang lebih lama, dan Anda ingin terus menggunakan penyebaran lama, Anda dapat melewati langkah ini. Anda masih dapat menggunakan set perintah kumpulan node baru untuk menambahkan lebih banyak kumpulan node ke kluster yang ada.

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

Catatan

Parameter lama yang ditetapkan untuk New-AksHciCluster masih didukung.

Menambahkan kumpulan simpul

Kluster bernama mycluster*', yang dibuat pada langkah sebelumnya, memiliki kumpulan simpul tunggal. Anda dapat menambahkan kumpulan node kedua ke kluster yang ada menggunakan perintah New-AksHciNodePool. Contoh berikut membuat kumpulan simpul Windows bernama windowsnodepool dengan satu simpul. Pastikan bahwa nama kumpulan simpul bukan nama yang sama dengan kumpulan simpul yang ada.

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

Mendapatkan informasi konfigurasi kumpulan node

Untuk melihat informasi konfigurasi kumpulan node Anda, gunakan perintah Get-AksHciNodePool.

Get-AksHciNodePool -clusterName mycluster

Contoh output:

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

Untuk melihat informasi konfigurasi dari satu kumpulan simpul tertentu, gunakan -name parameter di Get-AksHciNodePool.

Get-AksHciNodePool -clusterName mycluster -name linuxnodepool

Contoh output:

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

Contoh output:

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

Catatan

Jika Anda menggunakan set parameter baru di New-AksHciCluster untuk menyebarkan kluster lalu menjalankan Get-AksHciCluster untuk mendapatkan informasi kluster, bidang WindowsNodeCount dan LinuxNodeCount pada output akan mengembalikan 0. Untuk mendapatkan jumlah simpul yang akurat di setiap kumpulan simpul, gunakan perintah Get-AksHciNodePool dengan nama kluster yang ditentukan.

Menskalakan kumpulan node

Anda dapat menambah atau mengurangi skala jumlah node ke dalam suatu kumpulan node.

Untuk menskalakan jumlah node dalam kumpulan node, gunakan perintah Set-AksHciNodePool. Contoh berikut menskalakan jumlah simpul menjadi 3 dalam kumpulan simpul bernama linuxnodepool dalam mycluster kluster.

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

Menskalakan node sarana kontrol

Manajemen simpul sarana kontrol tidak berubah. Cara pembuatan, penskalaan, dan penghapusannya tetap sama. Anda masih akan menyebarkan simpul sarana kontrol dengan perintah New-AksHciCluster dengan parameter controlPlaneNodeCount dan controlPlaneVmSize dengan nilai default masing-masing 1 dan Standard_A4_V2, jika Anda tidak memberikan nilai apa pun.

Anda mungkin perlu menskalakan node sarana kontrol seiring perubahan permintaan beban kerja aplikasi Anda. Untuk menskalakan node sarana kontrol, gunakan perintah Set-AksHciCluster. Contoh berikut menskalakan simpul sarana kontrol ke 3 dalam mycluster kluster, yang dibuat di langkah-langkah sebelumnya.

Set-AksHciCluster -name mycluster -controlPlaneNodeCount 3

Menghapus kumpulan simpul

Jika Anda perlu menghapus kumpulan node, gunakan perintah Remove-AksHciNodePool. Contoh berikut menghapus kumpulan simpul bernama windowsnodepool dari mycluster kluster.

Remove-AksHciNodePool -clusterName mycluster -name windowsnodepool

Menentukan taint untuk kumpulan node

Saat membuat kumpulan node, Anda dapat menambahkan taint ke kumpulan node tersebut. Ketika Anda menambahkan taint, semua node dalam kumpulan node itu juga akan mendapatkan taint tersebut. Untuk informasi selengkapnya tentang taint dan toleransi, lihat Taint dan Toleransi Kubernetes.

Mengatur taint kumpulan node

Untuk membuat kumpulan node dengan taint, gunakan perintah New-AksHciNodePool. Tentukan nama taintnp, dan gunakan -taints parameter untuk menentukan sku=gpu:noSchedule taint.

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

Catatan

Taint hanya dapat diatur untuk kumpulan simpul selama pembuatan kumpulan simpul.

Jalankan perintah berikut untuk memastikan kumpulan simpul berhasil disebarkan dengan taint yang ditentukan.

Get-AksHciNodePool -clusterName mycluster -name taintnp
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}

Pada langkah sebelumnya, Anda menerapkan taint sku=gpu:NoSchedule saat Anda membuat kumpulan simpul. Contoh dasar berikut dari manifes YAML menggunakan toleration untuk memungkinkan penjadwal Kubernetes menjalankan Pod NGINX pada sebuah simpul di kumpulan simpul tersebut.

Buat file bernama nginx-toleration.yaml, dan salin informasi dalam teks berikut.

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"

Kemudian, jadwalkan pod menggunakan perintah berikut.

kubectl apply -f nginx-toleration.yaml

Untuk memverifikasi bahwa pod telah disebarkan, jalankan perintah berikut:

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

Langkah berikutnya