Kelompok node cloud hibrida memungkinkan Anda mendaftarkan node dari pusat data (IDC) ke kluster ACK, sehingga mendukung manajemen terpadu dan penjadwalan terkoordinasi antara sumber daya on-premises dan cloud. Topik ini menjelaskan cara menjadwalkan aplikasi ke kelompok node cloud hibrida guna memenuhi persyaratan lokasi sumber daya, kepatuhan terhadap lokalisasi data, atau kebutuhan perangkat keras tertentu.
Cara kerja
Saat Anda membuat kelompok node cloud hibrida, ACK secara otomatis menambahkan sebuah taint dan label ke setiap node dalam kelompok tersebut:
Taint:
nodepool-type=hybridcloud:NoSchedule— mencegah komponen sistem dan workload umum ditempatkan di node cloud hibrida secara default.Label:
alibabacloud.com/nodepool-type: hybridcloud— menandai jenis node sehingga kebijakan penjadwalan dapat menargetkannya.
Toleransi menghapus batasan penjadwalan, sehingga sebuah Pod memenuhi syarat untuk ditempatkan di node cloud hibrida. Namun, hal ini tidak menjamin penempatan di sana. Untuk memastikan penempatan, kombinasikan toleransi tersebut dengan aturan nodeSelector atau nodeAffinity.
Pilih pendekatan
| Pendekatan | Gunakan saat | Konfigurasi utama |
|---|---|---|
| Allow (Solusi 1) | Memperluas kapasitas total; tidak ada batasan lokasi yang ketat. Pod masih dapat ditempatkan di kelompok node lainnya. | tolerations saja |
| Targetkan kelompok node tertentu (Solusi 2a) | Perangkat keras khusus, topologi jaringan, atau residensi data untuk satu kelompok node. | tolerations + nodeSelector (ID kelompok node) |
| Menargetkan kelompok node cloud hibrida apa pun (Solution 2b) | Workload yang harus berjalan di lingkungan on-premises tetapi tersebar di semua kelompok node IDC. | tolerations + nodeAffinity |
| Berdasarkan prioritas lintas kelompok node (Solusi 3) | Lebih memilih kelompok node cloud hibrida berbiaya lebih rendah untuk skala keluar; melepas node ECS cloud terlebih dahulu saat skala-masuk. | ResourcePolicy + tolerations |
Solusi 1: Izinkan penjadwalan ke node cloud hibrida
Kapan digunakan: Kluster Anda memerlukan kapasitas total yang lebih besar dan workload Anda tidak memiliki batasan penempatan yang ketat. Dengan konfigurasi ini, penjadwal memperlakukan kelompok node cloud hibrida sebagai kandidat yang valid—namun Pod tetap dapat berjalan di kelompok node aktif lainnya.
Konfigurasi inti: Tambahkan entri tolerations di spec.template.spec:
spec:
template:
spec:
# Izinkan pod ini berjalan di node cloud hibrida.
tolerations:
- key: "nodepool-type"
operator: "Equal"
value: "hybridcloud"
effect: "NoSchedule"Solusi 2: Paksa penjadwalan ke node cloud hibrida
Kedua sub-solusi berikut sama-sama menjamin bahwa Pod ditempatkan di node cloud hibrida. Pilih berdasarkan seberapa spesifik Anda perlu menargetkan kelompok node tertentu.
Targetkan kelompok node tertentu
Kapan digunakan: Workload Anda memerlukan kelompok node cloud hibrida tertentu—misalnya, yang memiliki perangkat keras khusus, topologi jaringan khusus, atau persyaratan residensi data yang ketat. Gunakan nodeSelector untuk mengunci Pod ke satu kelompok node berdasarkan ID-nya.
Konfigurasi inti: Tambahkan tolerations dan nodeSelector di spec.template.spec:
spec:
template:
spec:
# Konfigurasi inti 1: Hapus batasan penjadwalan cloud hibrida.
tolerations:
- key: "nodepool-type"
operator: "Equal"
value: "hybridcloud"
effect: "NoSchedule"
# Konfigurasi inti 2: Kunci ke kelompok node tertentu berdasarkan ID.
nodeSelector:
alibabacloud.com/nodepool-id: npxxxxxxxxxxxxDapatkan ID kelompok node dari halaman Node Management > Node Pools kluster Anda.
Targetkan semua kelompok node cloud hibrida
Kapan digunakan: Workload Anda harus berjalan di lingkungan on-premises tetapi dapat berjalan di semua kelompok node cloud hibrida. nodeAffinity mencocokkan semua node dengan label hybridcloud, sehingga Pod tersebar di semua kelompok node IDC alih-alih dikunci ke satu kelompok saja.
Konfigurasi inti: Tambahkan tolerations dan affinity di spec.template.spec:
spec:
template:
spec:
# Konfigurasi inti 1: Hapus batasan penjadwalan cloud hibrida.
tolerations:
- key: "nodepool-type"
operator: "Equal"
value: "hybridcloud"
effect: "NoSchedule"
# Konfigurasi inti 2: Wajibkan penggunaan node cloud hibrida berdasarkan label.
affinity:
nodeAffinity:
requiredDuringSchedulingIgnoredDuringExecution:
nodeSelectorTerms:
- matchExpressions:
- key: alibabacloud.com/nodepool-type
operator: In
values:
- hybridcloudSolusi 3: Penjadwalan berbasis prioritas dengan ResourcePolicy
Kapan digunakan: Anda memiliki beberapa kelompok node dan ingin melakukan skala keluar secara berurutan serta skala-masuk secara terbalik. Misalnya, gunakan kelompok node cloud hibrida berbiaya lebih rendah sebagai kelompok utama dan kelompok node ECS berbasis cloud sebagai cadangan:
Skala keluar: Pod dijadwalkan ke kelompok cloud hibrida terlebih dahulu. Jika sumber daya tidak mencukupi, mereka dialihkan ke kelompok ECS.
Skala-masuk: Pod di kelompok ECS dihentikan terlebih dahulu, sehingga menjaga stabilitas sumber daya di kelompok cloud hibrida.
Solusi ini memerlukan dua sumber daya: ResourcePolicy dan workload yang mereferensikannya.
Konfigurasi `ResourcePolicy`: Tentukan urutan prioritas penjadwalan dalam daftar units, lalu asosiasikan kebijakan tersebut dengan Pod target menggunakan selector.
apiVersion: scheduling.alibabacloud.com/v1alpha1
kind: ResourcePolicy
metadata:
name: nginx-priority-policy
spec:
# Cocokkan pod dengan label ini.
selector:
app: nginx-priority
# Penjadwal mencoba kelompok node sesuai urutan. Pencocokan pertama yang berhasil digunakan.
units:
# Prioritas 1: kelompok node cloud hibrida (biaya lebih rendah, diprioritaskan)
- resource: ecs
nodeSelector:
alibabacloud.com/nodepool-id: np-pool-a-xxxxxxxxxx
# Prioritas 2: kelompok node ECS (cadangan)
- resource: ecs
nodeSelector:
alibabacloud.com/nodepool-id: np-pool-b-xxxxxxxxxxDapatkan ID kelompok node dari halaman Node Management > Node Pools kluster Anda.
Konfigurasi workload: Tambahkan label yang sesuai dan toleransi cloud hibrida ke templat Pod.
spec:
template:
metadata:
# Label ini menghubungkan pod dengan ResourcePolicy di atas.
labels:
app: nginx-priority
spec:
# Izinkan penjadwalan ke kelompok node cloud hibrida.
tolerations:
- key: "nodepool-type"
operator: "Equal"
value: "hybridcloud"
effect: "NoSchedule"ResourcePolicy:
Deployment:
Penerapan di produksi
Jangan hapus taint default
nodepool-type=hybridcloud:NoScheduledari kelompok node cloud hibrida. Taint ini mencegah komponen sistem secara tidak sengaja dijadwalkan ke node cloud hibrida.Jangan hapus atau ubah label default
alibabacloud.com/nodepool-type: hybridcloudpada node cloud hibrida. Mengubah atau menghapus label ini dapat memengaruhi operasi normal kelompok node.