Metode penjadwalan untuk node virtual berbeda antara kluster ACK managed cluster (Edisi Pro dan Dasar) dan kluster ACK dedicated cluster. Solusi ini dirancang untuk skenario penggunaan tertentu, seperti menjadwalkan pod hanya ke node virtual atau menyebarkan pod di berbagai zona. Topik ini membantu Anda memilih metode penjadwalan yang sesuai berdasarkan skenario dan jenis kluster Anda.
Skema penjadwalan node virtual umum
Jadwalkan pod hanya ke node virtual.
Berikan prioritas penjadwalan ke node ECS dan jadwalkan ke node virtual hanya jika sumber daya node ECS tidak mencukupi.
Untuk ACK managed cluster (Edisi Dasar), kami merekomendasikan penggunaan label alibabacloud.com/eci=true pada skenario pertama. Untuk skenario kedua, kami merekomendasikan peningkatan kluster ke ACK managed cluster (Edisi Pro).
ACK managed cluster (Edisi Pro) menyediakan kemampuan penjadwalan yang lebih baik untuk memenuhi kebutuhan skenario kedua, menawarkan keandalan lebih tinggi, jaminan Perjanjian Tingkat Layanan (SLA), serta kapasitas kluster yang lebih besar. ACK mendukung migrasi mulus dari ACK managed cluster (Edisi Dasar) ke ACK managed cluster (Edisi Pro). Untuk informasi selengkapnya, lihat Migrasi panas ACK managed cluster (Edisi Dasar) ke ACK managed cluster (Edisi Pro).
Catatan penggunaan
Penggunaan label
alibabacloud.com/eci=truememiliki prioritas tertinggi. Jika label ini digunakan, metode penjadwalan berikut akan ditimpa:Semantik penjadwalan native Kubernetes, seperti nodeSelector, afinitas dan anti-afinitas, serta batasan penyebaran topologi pod
ResourcePolicy
ElasticResource (Annotation:
alibabacloud.com/burst-resource)
Kami tidak merekomendasikan penggunaan ElasticWorkload dan ElasticResource (Annotation:
alibabacloud.com/burst-resource) karena keduanya berada dalam status pengembangan yang tidak aktif.Komponen virtual-kubelet-autoscaler tidak lagi dipelihara. Kami merekomendasikan peningkatan ACK managed cluster (Edisi Dasar) Anda ke ACK managed cluster (Edisi Pro) dan menguninstall komponen tersebut untuk membebaskan sumber daya node. Anda dapat menerapkan penyebaran tersebar dan penjadwalan berbasis afinitas untuk pod ECI menggunakan semantik penjadwalan native Kubernetes. Untuk informasi selengkapnya, lihat Terapkan penyebaran tersebar dan penjadwalan berbasis afinitas untuk pod ECI di berbagai zona.
Jika sebuah pod yang dijadwalkan ke node virtual memerlukan volume disk yang disediakan secara dinamis, StorageClass bertipe
WaitForFirstConsumertidak didukung dengan metode penjadwalan berikut:Menggunakan label:
alibabacloud.com/eci=true.Menentukan node virtual secara eksplisit melalui nodeName.
Perbandingan solusi dan saran pemilihan solusi
Istilah berikut digunakan dalam tabel perbandingan:
Penjadwalan berbasis prioritas: Ketika berbagai jenis node tersedia dalam kluster, Anda dapat mengonfigurasi prioritas untuk menjadwalkan pod ke jenis node tertentu. Misalnya, Anda dapat memberi prioritas penjadwalan ke node ECS dan menjadwalkan ke node virtual hanya jika sumber daya node ECS tidak mencukupi.
Jika suatu metode tidak mendukung penjadwalan berbasis prioritas, Anda tidak dapat mengatur prioritas antar kelompok node. Sebagai contoh, penggunaan label
alibabacloud.com/eci=truehanya memungkinkan penjadwalan pod tertentu ke node virtual, tanpa opsi untuk memberi prioritas penjadwalan ke node ECS terlebih dahulu.Kebijakan penjadwalan ketat: Menentukan apakah aturan penjadwalan ke berbagai jenis kelompok node bersifat kendala keras.
Kebijakan penjadwalan tidak ketat merupakan kendala lunak. Misalnya, bidang preferredDuringSchedulingIgnoredDuringExecution pada afinitas node memberi prioritas penjadwalan pod ke node ECS, namun pod tetap dapat dijadwalkan ke node virtual meskipun sumber daya ECS tersedia, karena adanya mekanisme penilaian node yang komprehensif.
Kebijakan penjadwalan ketat merupakan kendala keras. Misalnya, ResourcePolicy memastikan pod dijadwalkan ke node ECS jika sumber daya yang cukup tersedia di node tersebut.
ACK managed cluster (Edisi Pro)
Metode penjadwalan | Skenario Umum | Penjadwalan berbasis prioritas | Lebih memprioritaskan penskalaan masuk pod ECI | Direkomendasikan | Operasi terkait | |
label: | Menjadwalkan pod hanya ke node virtual. Anda tidak dapat menentukan node virtual mana yang akan digunakan untuk menjadwalkan pod. | Tidak didukung | Tidak berlaku | Direkomendasikan | ||
Semantik penjadwalan native Kubernetes | nodeSelector | Setelah Anda menambahkan toleransi, Anda dapat menjadwalkan pod hanya ke node virtual dan menentukan node virtual mana yang akan digunakan untuk menjadwalkan pod. | Tidak didukung | Tidak berlaku | Direkomendasikan | |
Afinitas dan anti-afinitas | Anda dapat menggunakan Taint, Toleration, dan NodeAffinity untuk menentukan bahwa pod dijadwalkan hanya ke ECI, hanya ke ECS, atau lebih diprioritaskan ke ECS (misalnya, jadwalkan ke node virtual ketika sumber daya node ECS tidak mencukupi). Ini adalah kebijakan penjadwalan elastis. Metode ini juga mendukung (dan hanya mendukung) penskalaan masuk ECI terlebih dahulu, lalu penskalaan masuk ECS. | Didukung (kebijakan penjadwalan tidak ketat) | Didukung | Direkomendasikan | ||
Batasan penyebaran topologi pod | Menyebarkan pod di berbagai zona untuk memenuhi persyaratan penjadwalan ketersediaan tinggi dan berkinerja tinggi. | Tidak didukung | Didukung | Direkomendasikan | Terapkan penyebaran tersebar dan penjadwalan berbasis afinitas untuk pod ECI di berbagai zona | |
ResourcePolicy Penting Pada v1.20, penjadwal mengabaikan pemeriksaan ketidaklayakan penjadwalan pod untuk node virtual saat memproses node virtual. Pada v1.22 dan versi setelahnya, hanya pemeriksaan taint pada node virtual yang diabaikan. Untuk mempertahankan perilaku v1.20, Anda perlu menonaktifkan kemampuan penjadwalan node virtual dalam parameter penjadwal. |
| Didukung (kebijakan penjadwalan ketat) | Didukung | Direkomendasikan | Sesuaikan penjadwalan berbasis prioritas untuk sumber daya elastis | |
UnitedDeployment | Mendukung pembuatan kebijakan untuk menjadwalkan pod ke ECS atau node virtual berdasarkan jumlah replika deployment. Misalnya, jika jumlah replika kurang dari 10, sumber daya ECS langganan lebih diprioritaskan. Jika jumlah replika lebih dari 10 tetapi tidak melebihi 20, sumber daya Spot digunakan. Jika jumlah replika lebih dari 20, sumber daya ECI digunakan. | Didukung | Didukung | Direkomendasikan | ||
ElasticWorkload (Dalam status pengembangan yang tidak aktif. Kami merekomendasikan Anda menggunakan UnitedDeployment.) | Menjadwalkan replika deployment ke ECS atau node virtual secara berkelompok. | Didukung | Didukung | Tidak direkomendasikan | Jadwalkan pod beban kerja elastis ke ECI menggunakan Elastic Workload (tidak dilanjutkan) | |
ElasticResource (Annotation: (Dalam status pengembangan yang tidak aktif) | Hanya mendukung dua kebijakan penjadwalan elastis:
| Didukung | Didukung | Tidak direkomendasikan | Terapkan penjadwalan elastis berbasis ECI menggunakan ElasticResource (tidak dilanjutkan) | |
Komponen virtual-kubelet-autoscaler (Tidak dilanjutkan) | Hanya mendukung pemberian prioritas penjadwalan ke node ECS dan menjadwalkan ke node virtual hanya ketika sumber daya node ECS tidak mencukupi. | Didukung | Didukung | Tidak direkomendasikan | Tidak ada | |
ACK managed cluster (Edisi Dasar) dan ACK dedicated cluster
Metode penjadwalan | Skenario Tipikal | Penjadwalan berbasis prioritas | Lebih memprioritaskan penskalaan masuk pod ECI | Direkomendasikan | Operasi terkait | |
label: | Menjadwalkan pod hanya ke node virtual. Anda tidak dapat menentukan node virtual mana yang akan digunakan untuk menjadwalkan pod. | Tidak didukung | Tidak berlaku | Direkomendasikan | ||
UnitedDeployment | Mendukung pembuatan kebijakan untuk menjadwalkan pod ke ECS atau node virtual berdasarkan jumlah replika deployment. Misalnya, jika jumlah replika kurang dari 10, sumber daya ECS langganan lebih diprioritaskan. Jika jumlah replika lebih dari 10 tetapi tidak melebihi 20, sumber daya Spot digunakan. Jika jumlah replika lebih dari 20, sumber daya ECI digunakan. | Didukung | Didukung | Direkomendasikan | ||
Semantik penjadwalan native Kubernetes | nodeSelector | Setelah Anda menambahkan toleransi, Anda dapat menjadwalkan pod hanya ke node virtual dan menentukan node virtual mana yang akan digunakan untuk menjadwalkan pod. | Tidak didukung | Didukung | Tidak direkomendasikan Dibandingkan dengan ACK managed cluster (Edisi Pro), kube-scheduler dalam ACK managed cluster (Edisi Dasar) dan ACK dedicated cluster tidak dapat memahami inventaris dasar selama penjadwalan pod. Oleh karena itu, kepastian keberhasilan pembuatan berkurang. | |
Afinitas dan anti-afinitas | Anda dapat menggunakan Taint, Toleration, dan NodeAffinity untuk menentukan bahwa pod dijadwalkan hanya ke ECI, hanya ke ECS, atau lebih diprioritaskan ke ECS (misalnya, jadwalkan ke node virtual ketika sumber daya node ECS tidak mencukupi). Ini adalah kebijakan penjadwalan elastis. | Didukung (kebijakan penjadwalan tidak ketat) | Didukung | |||
Batasan penyebaran topologi pod | Menyebarkan pod di berbagai zona untuk memenuhi persyaratan penjadwalan ketersediaan tinggi dan berkinerja tinggi. | Tidak didukung | Didukung | |||
ElasticWorkload (Dalam status pengembangan yang tidak aktif. Kami merekomendasikan Anda menggunakan UnitedDeployment.) | Menjadwalkan replika deployment ke ECS atau node virtual secara berkelompok. | Didukung | Didukung | Tidak direkomendasikan | Jadwalkan pod beban kerja elastis ke ECI menggunakan Elastic Workload (tidak dilanjutkan) | |
ElasticResource (Annotation: (Dalam status pengembangan yang tidak aktif) | Hanya mendukung dua kebijakan penjadwalan elastis:
| Didukung | Didukung | Tidak direkomendasikan | Terapkan penjadwalan elastis berbasis ECI menggunakan ElasticResource (tidak dilanjutkan) | |
Komponen virtual-kubelet-autoscaler (Tidak dilanjutkan) | Hanya mendukung pemberian prioritas penjadwalan ke node ECS dan menjadwalkan ke node virtual hanya ketika sumber daya node ECS tidak mencukupi. | Didukung | Didukung | Tidak direkomendasikan | Tidak ada | |