Set penyebaran adalah kebijakan yang mengontrol distribusi instans ECS. Kebijakan ini menyebarkan instans ECS di berbagai server fisik untuk meningkatkan ketersediaan tinggi aplikasi dan memperkuat kemampuan pemulihan bencana pada lapisan infrastruktur. Dengan menetapkan set penyebaran ke kelompok node, Anda memastikan bahwa instans ECS yang dibuat oleh kelompok node tersebut tidak berada pada server fisik yang sama. Dikombinasikan dengan konfigurasi afinitas, aplikasi Anda menjadi sadar topologi node infrastruktur dan mendistribusikan beban kerjanya secara merata di seluruh node, sehingga meningkatkan kemampuan pemulihan bencana dan ketersediaan tinggi.
Prasyarat
Anda telah membuat set penyebaran. Untuk informasi selengkapnya, lihat Create a deployment set.
Informasi latar belakang
Di zona tunggal, Anda biasanya menerapkan layanan di beberapa host untuk memastikan ketersediaan tinggi. Namun, jika satu server fisik mengalami kegagalan, semua replika aplikasi Anda di server tersebut akan terdampak. Untuk mengatasi masalah ini, ECS menyediakan set penyebaran. Semua instans ECS dalam satu set penyebaran didistribusikan secara ketat di berbagai server fisik di wilayah yang ditentukan. Hal ini memenuhi arsitektur aplikasi yang memerlukan isolasi mutual antar layanan dan secara signifikan mengurangi risiko ketidaktersediaan layanan. Untuk informasi selengkapnya tentang set penyebaran, lihat Deployment sets.
Batasan
Catatan penggunaan fitur di kluster
-
Set penyebaran hanya mendukung Kluster ACK yang dikelola dan Cluster khusus ACK.
-
Anda hanya dapat menentukan set penyebaran saat membuat kelompok node baru. Fitur ini tidak dapat diaktifkan untuk kelompok node yang sudah ada. Setiap kelompok node hanya mendukung pengikatan ke satu set penyebaran.
-
Anda tidak dapat menambahkan atau menghapus node dari set penyebaran secara manual. Sesuaikan jumlah node dalam set penyebaran dengan melakukan penskalaan pada kelompok node. Untuk informasi selengkapnya, lihat Create and manage node pools.
-
Setelah mengaktifkan set penyebaran, Anda tidak dapat membuat spot instans.
Kuota set penyebaran dan batasan tipe instans
-
Batasan kuota set penyebaran:
-
Secara default, set penyebaran kelompok node menggunakan kebijakan ketersediaan tinggi. Di bawah kebijakan ini, Anda dapat membuat hingga 20 instans ECS per zona dalam satu set penyebaran. Jumlah total instans ECS yang dapat Anda buat di satu wilayah Alibaba Cloud adalah
20 × jumlah zona. Pastikan kuota instans ECS mencukupi dan inventaris tipe instans yang dibutuhkan tersedia di set penyebaran. Untuk informasi selengkapnya, lihat Deployment sets.Jumlah maksimum instans yang diizinkan dalam satu set penyebaran tidak dapat ditingkatkan. Namun, untuk menaikkan jumlah maksimum set penyebaran yang diizinkan untuk akun Anda, ajukan permohonan melalui Quota Center. Untuk informasi selengkapnya tentang batasan dan kuota set penyebaran, lihat Limits on deployment sets.
-
Jika pembuatan instans ECS dalam set penyebaran gagal, atau jika restart instans ECS bayar sesuai penggunaan (dalam mode hemat) gagal, penyebabnya mungkin karena inventaris di wilayah tersebut tidak mencukupi. Tunggu beberapa saat lalu coba lagi membuat atau merestart instans tersebut.
-
-
Pembatasan family instans: Sebagian besar family instans generasi 6 ke atas mendukung set penyebaran dengan strategi High Availability, strategi High Availability Group, dan strategi Low Latency.
Strategi penyebaran yang berbeda hanya mendukung family instans tertentu:
Untuk daftar lengkap family instans yang didukung, lihat output operasi DescribeDeploymentSetSupportedInstanceTypeFamily.
Strategi penyebaran
Famili Instans yang Didukung
Strategi High Availability dan strategi High Availability Group
-
g9a, g9ae, g9i, g8a, g8i, g8ine, g8ise, g8y, g7, g7a, g7h, g7ne, g7nex, g7se, g7t, g6, g6a, g6e, g6h, g5, g5ne
-
c9a, c9ae, c9i, c8a, c8i, c8ine, c8y, c7, c7a, c7nex, c7se, c7t, c6, c6a, c6e, c5
-
r9a, r9ae, r9i, r8a, r8i, r8y, r7, r7a, r7se, r7t, r6, r6a, r6e, r5
-
hfc9i, hfg9i, hfr9i, hfc8i, hfg8i, hfr8i, hfc7, hfg7, hfr7, hfc6, hfg6, hfr6, hfc5, hfg5
-
ebmc9i, ebmg9a, ebmg9i, ebmr9i, ebmc8a, ebmc8i, ebmc8y, ebmg8a, ebmg8i, ebmg8y, ebmr8a, ebmr8y, ebmc7, ebmc7a, ebmg7, ebmg7a, ebmg7se, ebmhfc7, ebmhfg7, ebmhfr7, ebmr7, ebmr7a, ebmg5
-
i5, i5g, i5ge, ic5, i4, i4g, i4r, i3, i3g, i2, i2g, i2gne, i2ne
-
gn6i
-
d3c, d3s, d2c, d2s, d1ne
-
re6, re6p, s6, t6, e4, mn4, n4, re4, xn4, sn2ne, u2a, u2i, se1, se1ne, sn1ne, u1, e
Strategi Low Latency
-
g9a, g9ae, g9i, g8a, g8ae, g8i, g8ise, g8y, g7, g5ne
-
c9a, c9ae, c9i, c8a, c8ae, c8i, c8ine, c8y, c7, c7nex
-
r9a, r9ae, r9i, r8a, r8ae, r8i, r8y, r7
-
hfc9i, hfg9i, hfr9i, hfc8i, hfg8i, hfr8i
-
ebmc9i, ebmg9a, ebmg9i, ebmr9i, ebmc8a, ebmc8i, ebmc8y, ebmg8a, ebmg8i, ebmg8y, ebmgn8v, ebmr8a, ebmr8y, ebmc7, ebmc7a, ebmg7, ebmg7a, ebmg7se, ebmgn7ex, ebmhfc7, ebmhfg7, ebmhfr7, ebmr7, ebmr7a
-
i5, i5g, i5ge, i4
-
gn8v
-
hpc8ae, hpc8i, hpc7ip, hpc6id, u2a, u2i
-
Tetapkan set penyebaran ke kelompok node di Konsol
Masuk ke ACK console. Di panel navigasi kiri, klik Clusters.
Di halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik .
-
Di halaman Node Pools, klik Create Node Pool. Di kotak dialog Create Node Pool, konfigurasikan parameter, pilih set penyebaran, lalu klik Confirm.
Untuk detail item konfigurasi kelompok node, lihat Create and manage node pools.

Kasus penggunaan
Jadwalkan pod dari beban kerja yang sama dalam satu kelompok node sehingga hanya satu pod yang berjalan per node menggunakan pod anti-affinity
Contoh ini menunjukkan cara menjadwalkan tiga replika pod dari Deployment ke tiga node berbeda. Ikuti langkah-langkah berikut.
-
Buat kelompok node dengan tiga node dan tetapkan ID set penyebaran ke kelompok node tersebut. Untuk informasi selengkapnya, lihat Assign a deployment set to a node pool in the console.
Setelah membuat kelompok node, buka halaman Node Pools, klik kelompok node target, lalu di tab Nodes, verifikasi bahwa tiga node berhasil dibuat.

Masuk ke ECS console. Di panel navigasi kiri, pilih . Di halaman Deployment Set, konfirmasi bahwa ketiga node dalam kelompok node termasuk dalam set penyebaran yang dipilih.

-
Gunakan YAML berikut untuk mengonfigurasi aplikasi Anda.
Konfigurasikan pod anti-affinity untuk menjadwalkan tiga pod aplikasi ke node berbeda dalam kelompok node.
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: # Tetapkan kebijakan penjadwalan. - labelSelector: matchExpressions: - key: app operator: In values: - nginx topologyKey: kubernetes.io/hostname nodeSelector: alibabacloud.com/nodepool-id: <nodepool-id> # Tentukan ID kelompok 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: 1Execution Result
Di halaman Deployments, klik Deployment target. Di tab Pods, Anda dapat melihat bahwa ketiga pod dijadwalkan ke node berbeda dalam kelompok node.

Distribusikan pod dari beban kerja yang sama secara merata di berbagai zona dan node dalam satu kelompok node
-
Buat kelompok node dengan empat node, tetapkan ID set penyebaran ke kelompok node, dan pilih vSwitch di beberapa zona. Untuk informasi selengkapnya, lihat Assign a deployment set to a node pool in the console.
Setelah pembuatan, buka halaman Node Pools, klik kelompok node target, lalu di tab Nodes, verifikasi bahwa empat node tersebar di empat zona. Berdasarkan kebijakan distribusi merata ESS, instans ECS yang dibuat tersebar di empat zona berbeda dan semuanya termasuk dalam set penyebaran.

Masuk ke ECS console. Di panel navigasi kiri, pilih . Di halaman Deployment Set, konfirmasi bahwa keempat node dalam kelompok node termasuk dalam set penyebaran yang dipilih.

-
Gunakan YAML berikut untuk mengonfigurasi aplikasi Anda.
Gunakan batasan penyebaran topologi pod untuk mendistribusikan pod dari aplikasi yang sama secara merata di berbagai zona dan node. Untuk informasi selengkapnya, lihat Pod topology spread constraints.
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 kelompok 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: 1Execution Result
Di halaman Deployments, klik Deployment target. Di tab Pods, Anda dapat melihat bahwa pod dari aplikasi yang sama didistribusikan secara merata di berbagai zona dan node.

Referensi
-
Anda juga dapat menetapkan set penyebaran ke kelompok node menggunakan Terraform.
-
Untuk konfigurasi yang direkomendasikan untuk arsitektur kluster berketersediaan tinggi, lihat Recommended configurations for highly available cluster architectures.