Set penyebaran berisi Instance ECS dari Elastic Compute Service (ECS) yang didistribusikan di beberapa server fisik. Anda dapat menggunakan set penyebaran untuk meningkatkan ketersediaan aplikasi dan menerapkan pemulihan bencana. Kolam node yang dikaitkan dengan set penyebaran berisi node ECS yang didistribusikan di beberapa server fisik. Dengan mengonfigurasi afinitas pod, Anda dapat menyebarkan pod aplikasi ke node ECS yang berbeda, sehingga meningkatkan ketersediaan aplikasi dan memastikan pemulihan bencana.
Prasyarat
Set penyebaran telah dibuat. Untuk informasi lebih lanjut, lihat Langkah 1: Buat Set Penyebaran.
Informasi latar belakang
Untuk memastikan ketersediaan tinggi aplikasi dalam zona, Anda harus mendistribusikan aplikasi di beberapa host. Namun, jika server fisik gagal, semua pod aplikasi terpengaruh. Untuk mengatasi masalah ini, gunakan set penyebaran yang disediakan oleh ECS. Instance ECS dalam set penyebaran didistribusikan di beberapa server fisik dan diisolasi satu sama lain, membantu mencegah gangguan layanan akibat titik kegagalan tunggal. Untuk informasi lebih lanjut tentang set penyebaran, lihat Set Penyebaran.
Batasan
Panduan penggunaan fitur klaster
Set penyebaran didukung oleh ACK dedicated cluster dan ACK managed cluster.
Anda hanya dapat mengaitkan set penyebaran dengan kolam node saat membuat kolam node. Kolam node yang sudah ada tidak dapat memiliki set penyebaran yang diaktifkan. Hanya satu set penyebaran yang dapat dikaitkan dengan setiap kolam node.
Anda tidak dapat secara manual menambahkan atau menghapus Instance ECS dari set penyebaran. Jika ingin mengubah jumlah Instance ECS dalam set penyebaran, skala kolam node yang dikaitkan dengan set penyebaran tersebut. Untuk informasi lebih lanjut, lihat Buat dan Kelola Kolam Node.
Setelah mengaitkan set penyebaran dengan kolam node, kolam node tidak mendukung instance preemptible.
Batas kuota dan spesifikasi set penyebaran
Batas Kuota Set Penyebaran
Secara default, set penyebaran kolam node diimplementasikan berdasarkan strategi ketersediaan tinggi. Dalam set penyebaran yang menggunakan strategi ketersediaan tinggi, Anda dapat membuat hingga 20 Instance ECS per zona. Gunakan rumus berikut untuk menghitung jumlah maksimum Instance ECS yang dapat dibuat dalam set penyebaran di wilayah Alibaba Cloud:
20 × Jumlah zona dalam wilayah. Pastikan ada cukup Instance ECS dalam set penyebaran dan stok yang memadai dari tipe instance yang diperlukan. Untuk informasi lebih lanjut, lihat Set Penyebaran.Anda tidak dapat meningkatkan jumlah Instance ECS dalam set penyebaran. Namun, jika ingin meningkatkan jumlah maksimum set penyebaran yang dimiliki akun Alibaba Cloud Anda, ajukan permintaan peningkatan kuota di Konsol Quota Center. Untuk informasi lebih lanjut tentang batasan dan kuota set penyebaran, lihat Set Penyebaran.
Kekurangan sumber daya instance dalam wilayah dapat menyebabkan kegagalan dalam membuat Instance ECS atau memulai instance pay-as-you-go yang dihentikan dalam mode ekonomis dalam set penyebaran. Tunggu sejenak dan coba buat atau mulai ulang instance tersebut lagi.
Batas Keluarga Instance
Strategi penyebaran yang didukung dapat bervariasi berdasarkan keluarga instance. Tabel berikut menjelaskan strategi penyebaran yang didukung oleh berbagai keluarga instance.
CatatanUntuk menanyakan keluarga instance yang mendukung strategi penyebaran tertentu, panggil operasi DescribeDeploymentSetSupportedInstanceTypeFamily.
Strategi Penyebaran
Keluarga Instance yang Mendukung Strategi Penyebaran
Strategi Ketersediaan Tinggi atau Strategi Kelompok Ketersediaan Tinggi
g8a, g8i, g8y, g7se, g7a, g7, g7h, g7t, g7ne, g7nex, g6, g6e, g6a, g5, g5ne, sn2ne, sn2, and sn1
c8a, c8i, c8y, c7se, c7, c7t, c7nex, c7a, c6, c6a, c6e, c5, ic5, and sn1ne
r8a, r8i, r8y, r7, r7se, r7t, r7a, r6, r6e, r6a, re6, re6p, r5, re4, se1ne, and se1
hfc8i, hfg8i, hfr8i, hfc7, hfg7, hfr7, hfc6, hfg6, hfr6, hfc5, and hfg5
d3c, d2s, d2c, d1, d1ne, d1-c14d3, and d1-c8d3
i3g, i3, i2, i2g, i2ne, i2gne, and i1
ebmg5, ebmc7, ebmg7, ebmr7, sccgn6, scch5, scch5s, sccg5, and sccg5s
e, t6, xn4, mn4, n4, e4, n2, and n1
gn6i
Strategi Latensi Rendah
g8a, g8i, g8ae, and g8y
c8a, c8i, c8ae, and c8y
ebmc8i, ebmg8i, and ebmr8i
r8a, r8i, r8ae, and r8y
ebmc7, ebmg7, and ebmr7
Mengaitkan set penyebaran dengan kolam node di konsol ACK
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, temukan klaster yang ingin dikelola dan klik namanya. Di panel navigasi kiri, pilih .
Di halaman Node Pools, klik Create Node Pool. Di kotak dialog Create Node Pool, konfigurasikan parameter, pilih set penyebaran, lalu klik Confirm Order.
Untuk informasi lebih lanjut tentang parameter, lihat Buat Kolam Node.

Contoh
Afinitas anti-pod dikonfigurasi untuk pod yang termasuk dalam beban kerja yang sama di kolam node yang sama dan setiap node hanya dapat menampung satu pod
Contoh ini menunjukkan cara menjadwalkan tiga pod replika dalam Deployment ke tiga node yang berbeda.
Buat kolam node yang berisi tiga node dan tentukan ID set penyebaran yang ingin dikaitkan dengan kolam node. Untuk informasi lebih lanjut, lihat Mengaitkan Set Penyebaran dengan Kolam Node di Konsol ACK.
Setelah membuat kolam node, klik nama kolam node di halaman Node Pools. Tab Nodes menampilkan node yang termasuk dalam kolam node.

Masuk ke Konsol ECS. Di panel navigasi kiri, pilih . Halaman Deployment Sets menunjukkan bahwa tiga node tersebut termasuk dalam set penyebaran yang ditentukan.

Buat file YAML berdasarkan konten berikut.
Sebarkan tiga pod dan konfigurasikan anti-afinitas untuk menjadwalkan pod ke tiga node yang berbeda.
apiVersion: apps/v1 kind: Deployment metadata: name: nginx labels: app: nginx spec: replicas: 3 selector: matchLabels: app: nginx template: metadata: name: nginx labels: app: nginx spec: affinity: podAntiAffinity: requiredDuringSchedulingIgnoredDuringExecution: # Konfigurasikan kebijakan penjadwalan. - labelSelector: matchExpressions: - key: app operator: In values: - nginx topologyKey: kubernetes.io/hostname nodeSelector: alibabacloud.com/nodepool-id: <nodepool-id> # Tentukan ID kolam node. containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 resources: limits: cpu: 1 requests: cpu: 1Results
Di halaman Deployments, klik Deployment yang ingin dikelola. Tab Pods menunjukkan bahwa pod dijadwalkan ke tiga node yang berbeda.

Pod yang termasuk dalam beban kerja yang sama di kolam node yang sama dapat dijadwalkan ke node yang berbeda di beberapa zona
Buat kolam node yang berisi empat node, tentukan ID set penyebaran yang ingin dikaitkan dengan kolam node, dan pilih vSwitch yang ditempatkan di beberapa zona. Untuk informasi lebih lanjut, lihat Mengaitkan Set Penyebaran dengan Kolam Node di Konsol ACK.
Setelah membuat kolam node, klik nama kolam node di halaman Node Pools. Klik tab Nodes, empat node dan empat zona ditampilkan. Instance ECS ditempatkan di empat zona berbeda dan ditambahkan ke set penyebaran yang sama berdasarkan kebijakan distribusi seimbang Auto Scaling.

Masuk ke Konsol ECS. Di panel navigasi kiri, pilih . Halaman Deployment Sets menunjukkan bahwa empat node dalam kolam node termasuk dalam set penyebaran yang ditentukan.

Buat file YAML berdasarkan konten berikut.
Anda dapat menggunakan kendala penyebaran topologi pod untuk menjadwalkan pod yang termasuk dalam aplikasi yang sama ke node yang berbeda di beberapa zona. Untuk informasi lebih lanjut, lihat Kendala Penyebaran Topologi Pod.
apiVersion: apps/v1 kind: Deployment metadata: name: nginx labels: app: nginx spec: replicas: 4 selector: matchLabels: app: nginx template: metadata: name: nginx labels: app: nginx spec: topologySpreadConstraints: - maxSkew: 1 topologyKey: kubernetes.io/hostname whenUnsatisfiable: DoNotSchedule labelSelector: matchLabels: app: nginx - maxSkew: 1 topologyKey: topology.kubernetes.io/zone whenUnsatisfiable: DoNotSchedule labelSelector: matchLabels: app: nginx nodeSelector: alibabacloud.com/nodepool-id: <nodepool-id> #Tentukan ID kolam node. containers: - name: nginx image: anolis-registry.cn-zhangjiakou.cr.aliyuncs.com/openanolis/nginx:1.14.1-8.6 resources: limits: cpu: 1 requests: cpu: 1Results
Di halaman Deployments, klik Deployment yang ingin dikelola. Tab Pods menunjukkan bahwa pod yang termasuk dalam aplikasi yang sama dijadwalkan ke node yang berbeda di beberapa zona.

Referensi
Anda juga dapat menggunakan Terraform untuk mengaitkan set penyebaran dengan kolam node.
Untuk informasi lebih lanjut tentang konfigurasi yang direkomendasikan untuk arsitektur klaster ketersediaan tinggi, lihat Konfigurasi yang Disarankan untuk Membuat Klaster HA.