Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Auto Scaling
Aktifkan Auto Scaling
eksctl create cluster --asg-access
Bendera ini juga menetapkan k8s.io/cluster-autoscaler/enabled
dan memberi k8s.io/cluster-autoscaler/<clusterName>
tag, jadi penemuan nodegroup akan berfungsi.
Setelah cluster berjalan, Anda harus menginstal Cluster Autoscaler
Anda juga harus menambahkan yang berikut ini ke definisi nodegroup terkelola atau tidak terkelola untuk menambahkan tag yang diperlukan untuk Cluster Autoscaler untuk menskalakan nodegroup:
nodeGroups: - name: ng1-public iam: withAddonPolicies: autoScaler: true
Meningkat dari 0
Jika Anda ingin dapat meningkatkan skala grup node Anda dari 0 dan Anda memiliki label and/or taint yang ditentukan pada nodegroup Anda, Anda harus menyebarkannya sebagai tag pada Grup Auto Scaling () Anda. ASGs
Salah satu cara untuk melakukannya adalah dengan mengatur tag ASG di tags
bidang definisi nodegroup Anda. Misalnya, diberikan nodegroup dengan label dan taints berikut:
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: key: feaster value: "true" effect: NoSchedule
Anda perlu menambahkan tag ASG berikut:
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: feaster: "true:NoSchedule" tags: k8s.io/cluster-autoscaler/node-template/label/my-cool-label: pizza k8s.io/cluster-autoscaler/node-template/taint/feaster: "true:NoSchedule"
Untuk nodegroup terkelola dan tidak terkelola, ini dapat dilakukan secara otomatis dengan menyetel propagateASGTags
ketrue
, yang akan menambahkan label dan taints sebagai tag ke grup Auto Scaling:
nodeGroups: - name: ng1-public ... labels: my-cool-label: pizza taints: feaster: "true:NoSchedule" propagateASGTags: true
Auto Scaling yang sadar zona
Jika beban kerja Anda khusus zona, Anda harus membuat nodegroup terpisah untuk setiap zona. Ini karena cluster-autoscaler
mengasumsikan bahwa semua node dalam grup sama persis. Jadi, misalnya, jika peristiwa peningkatan skala dipicu oleh pod yang membutuhkan PVC khusus zona (misalnya volume EBS), node baru mungkin dijadwalkan di AZ yang salah dan pod akan gagal memulai.
Anda tidak memerlukan nodegroup terpisah untuk setiap AZ jika lingkungan Anda memenuhi kriteria berikut:
-
Tidak ada persyaratan penyimpanan khusus zona.
-
Tidak diperlukan PodAffinity dengan topologi selain host.
-
Tidak diperlukan NodeAffinity pada label zona.
-
Tidak ada NodeSelector pada label zona.
(Baca lebih lanjut di sini
Jika Anda memenuhi semua persyaratan di atas (dan mungkin yang lain) maka Anda harus aman dengan satu nodegroup yang mencakup beberapa. AZs Jika tidak, Anda akan ingin membuat nodegroup single-AZ yang terpisah:
SEBELUM:
nodeGroups: - name: ng1-public instanceType: m5.xlarge # availabilityZones: ["eu-west-2a", "eu-west-2b"]
SETELAH:
nodeGroups: - name: ng1-public-2a instanceType: m5.xlarge availabilityZones: ["eu-west-2a"] - name: ng1-public-2b instanceType: m5.xlarge availabilityZones: ["eu-west-2b"]