Semua node dalam kluster Container Compute Service (ACS) Alibaba Cloud merupakan node virtual. Label digunakan untuk menandai berbagai atribut node seperti zona, wilayah, dan model GPU dari node virtual tersebut. Dalam kluster ACS, Anda dapat menggunakan semantik penjadwalan asli Kubernetes untuk mengimplementasikan penjadwalan afinitas node. Dengan mengonfigurasi atribut node di bidang nodeSelector atau nodeAffinity, Anda dapat menjadwalkan pod ke node virtual dengan atribut tertentu. Topik ini menjelaskan penjadwalan afinitas node pada ACS.
Prasyarat
kube-scheduler telah terpasang dan versinya memenuhi persyaratan yang ditentukan.
Versi kluster ACS
Versi Scheduler
1.31
v1.31.0-aliyun-1.2.0 dan yang lebih baru
1.30
v1.30.3-aliyun-1.1.1 dan yang lebih baru
1.28
v1.28.9-aliyun-1.1.0 dan yang lebih baru
acs-virtual-node telah terpasang dengan versi v2.12.0-acs.4 atau yang lebih baru.
Catatan penggunaan
nodeSelector
Anda dapat menambahkan label ke node virtual dengan mengonfigurasi bidang nodeSelector untuk mengimplementasikan penjadwalan afinitas node. Tabel berikut menjelaskan label yang didukung oleh ACS untuk berbagai jenis node virtual.
Jenis node virtual | Label | Deskripsi | Contoh |
Node virtual reguler | topology.kubernetes.io/zone | Zona jaringan | topology.kubernetes.io/zone: cn-shanghai-b |
Node virtual GPU-HPN | topology.kubernetes.io/zone | Zona jaringan | topology.kubernetes.io/zone: cn-shanghai-b |
alibabacloud.com/hpn-zone | Zona jaringan berperforma tinggi | alibabacloud.com/hpn-zone: B1 | |
alibabacloud.com/gpu-model-series | Model GPU | alibabacloud.com/gpu-model-series: <contoh-model> |
nodeAffinity
Anda juga dapat menggunakan nodeAffinity untuk menentukan atribut afinitas node. Namun, nodeAffinity lebih ekspresif. Untuk kelas komputasi yang berbeda, ACS menyediakan batasan pada bidang tertentu. Tabel berikut menjelaskan batasan tersebut.
Kelas komputasi | Bidang | Deskripsi | Batasan |
| requiredDuringSchedulingIgnoredDuringExecution | Pod hanya dapat dijadwalkan jika aturan dipenuhi. Bidang ini mirip dengan bidang | Untuk bidang nodeSelectorTerms:
|
preferredDuringSchedulingIgnoredDuringExecution | Bidang ini digunakan untuk menentukan afinitas node berdasarkan bobot. Penjadwal mencoba menemukan node yang memenuhi aturan. Namun, penjadwal tetap menjadwalkan pod meskipun node yang cocok tidak tersedia. | Tidak didukung. |
Batasan sebelumnya dari bidang nodeAffinity tidak tersedia untuk pod dalam kelas komputasi serbaguna dan ditingkatkan performanya.
Contoh
Contoh berikut menunjukkan cara mengonfigurasi bidang nodeSelector untuk menjadwalkan aplikasi ke zona tertentu.
Jalankan perintah berikut untuk melihat node virtual dalam kluster:
kubectl get nodeHasil yang diharapkan:
NAME STATUS ROLES AGE VERSION virtual-kubelet-cn-hangzhou-i Ready agent 5h42m v1.28.3-xx virtual-kubelet-cn-hangzhou-j Ready agent 5h42m v1.28.3-xxBuat file bernama dep-node-selector-demo.yaml dan tambahkan konten berikut ke file tersebut:
apiVersion: apps/v1 kind: Deployment metadata: name: dep-node-selector-demo labels: app: node-selector-demo spec: replicas: 4 selector: matchLabels: app: node-selector-demo template: metadata: labels: app: node-selector-demo spec: containers: - name: node-selector-demo image: registry-cn-hangzhou.ack.aliyuncs.com/acs/stress:v1.0.4 command: - "sleep" - "infinity" # Tetapkan zona ke cn-hangzhou-j. nodeSelector: topology.kubernetes.io/zone: cn-hangzhou-jJalankan perintah berikut untuk menerapkan aplikasi ke kluster:
kubectl apply -f dep-node-selector-demo.yamlJalankan perintah berikut untuk melihat hasil distribusi pod:
kubectl get pod -o wideHasil yang diharapkan:
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES dep-node-selector-demo-b4578576b-cgpfq 1/1 Running 0 112s 192.168.xx.xxx virtual-kubelet-cn-hangzhou-j <none> <none> dep-node-selector-demo-b4578576b-fs8kl 1/1 Running 0 110s 192.168.xx.xxx virtual-kubelet-cn-hangzhou-j <none> <none> dep-node-selector-demo-b4578576b-nh8zm 1/1 Running 0 2m8s 192.168.xx.xxx virtual-kubelet-cn-hangzhou-j <none> <none> dep-node-selector-demo-b4578576b-rpp8l 1/1 Running 0 2m8s 192.168.xx.xxx virtual-kubelet-cn-hangzhou-j <none> <none>Keluaran menunjukkan bahwa empat pod didistribusikan di zona
cn-hangzhou-j.