Dalam beberapa kasus, Anda perlu membuat sejumlah besar pod berbasis Elastic Container Instance untuk menangani lonjakan lalu lintas atau memproses pekerjaan. Namun, jika sumber daya di zona yang ditentukan tidak mencukupi atau vSwitch yang ditentukan tidak memiliki alamat IP yang tersedia, maka tidak ada pod yang dapat dibuat. Untuk mengatasi masalah ini, Anda dapat mengonfigurasi beberapa zona untuk memastikan ketersediaan sumber daya saat membuat pod berbasis Elastic Container Instance. Topik ini menjelaskan cara mengonfigurasi beberapa zona untuk membuat pod.
Prasyarat
vSwitch telah dibuat di berbagai zona dari virtual private cloud (VPC) tempat Anda ingin membuat instance kontainer elastis.
Untuk informasi tentang cara membuat vSwitch, lihat Buat dan kelola vSwitch.
Untuk informasi tentang wilayah dan zona di mana Elastic Container Instance tersedia, lihat Wilayah dan zona.
Informasi latar belakang
Saat membuat instance kontainer elastis, Anda dapat menentukan beberapa zona dengan menentukan beberapa vSwitch. Sistem kemudian akan mendistribusikan permintaan ke semua zona yang ditentukan secara acak. Jika sumber daya yang diminta tidak mencukupi di suatu zona, sistem akan mencoba membuat instance di zona lain.
Saat menentukan beberapa zona (vSwitch), perhatikan hal-hal berikut:
vSwitch yang ditentukan harus termasuk dalam VPC yang sama.
Maksimal 10 vSwitch dapat ditentukan.
Anda dapat menentukan beberapa spesifikasi instance dan beberapa zona pada saat bersamaan untuk meningkatkan tingkat keberhasilan pembuatan instance kontainer elastis.
Deskripsi konfigurasi
Anda dapat menentukan beberapa zona untuk kluster atau pod.
Jika Anda ingin menentukan beberapa zona untuk kluster, tentukan beberapa vSwitch untuk kluster tersebut. Pengaturan ini berlaku untuk semua pod dalam kluster.
Jika Anda ingin menentukan beberapa zona untuk pod, tentukan beberapa vSwitch saat membuat pod. Pengaturan ini hanya berlaku untuk pod tersebut.
Tentukan beberapa zona saat Anda membuat kluster
Sebelum membuat kluster, disarankan untuk membuat beberapa vSwitch dari zona berbeda di dalam VPC kluster. Saat membuat kluster, pilih VPC dan kemudian pilih beberapa vSwitch untuk menentukan beberapa zona. Gambar berikut menunjukkan cara menentukan beberapa vSwitch saat membuat Container Service for Kubernetes (ACK) Serverless cluster di konsol ACK.

Tentukan beberapa zona untuk kluster yang sudah ada
Metode konfigurasi beberapa zona bervariasi berdasarkan versi komponen ack-virtual-node yang digunakan.
Jika versi komponen ack-virtual-node Anda adalah v2.0.0.90-15deb126e-aliyun atau lebih baru, modifikasi eci-profile.
Jika versi komponen ack-virtual-node Anda lebih lama dari v2.0.0.90-15deb126e-aliyun, modifikasi nilai variabel lingkungan terkait.
Modifikasi eci-profile
Anda dapat memodifikasi ConfigMap eci-profile dari kluster yang sudah ada dan memasukkan ID vSwitch di bidang data.vSwitchlds di eci-profile untuk menentukan beberapa zona. Lakukan operasi berikut:
Edit eci-profile.
kubectl edit cm -n kube-system eci-profileModifikasi nilai bidang
vSwitchIds.Tambahkan ID vSwitch. Pisahkan beberapa ID vSwitch dengan koma (,).
data: enableClusterIp: "true" enableHybridMode: "false" enablePrivateZone: "false" resourceGroupId: "" securityGroupId: sg-2ze0b9o8pjjzts4h**** selectors: "" vSwitchIds: vsw-2zeet2ksvw7f14ryz****,vsw-2ze94pjtfuj9vaymf**** vpcId: vpc-2zeghwzptn5zii0w7****Simpan modifikasi dan keluar.
Modifikasi nilai variabel lingkungan terkait
Disarankan untuk memperbarui komponen ack-virtual-node ke versi terbaru untuk menggunakan fitur baru.
Untuk menentukan beberapa zona, Anda dapat memodifikasi nilai variabel lingkungan ECI_VSWITCH untuk Deployment atau StatefulSet berdasarkan bagaimana Anda menerapkan komponen ack-virtual-node. Contoh berikut menunjukkan cara memodifikasi nilai variabel lingkungan ECI_VSWITCH untuk Deployment:
Edit Deployment.
kubectl -n kube-system edit deployment/virtual-node-controllerModifikasi nilai variabel lingkungan
ECI_VSWITCH.Tambahkan ID vSwitch ke nilai variabel lingkungan
ECI_VSWITCH. Pisahkan beberapa ID vSwitch dengan koma (,).- name: ECI_VSWITCH value: vsw-bp1xpiowfm5vo8o3c****,vsw-bp1rkyjgr1xwoho6k****Simpan modifikasi dan keluar.
Tentukan beberapa zona saat Anda membuat pod
Anda dapat menambahkan anotasi berikut ke metadata di file konfigurasi pod untuk menentukan beberapa zona:
k8s.aliyun.com/eci-vswitch: ID vSwitch yang digunakan untuk menentukan beberapa zona.
CatatanJika anotasi
k8s.aliyun.com/eci-vswitchditambahkan ke metadata di file konfigurasi pod berbasis Elastic Container Instance, provisioner tidak mendukungWaitForFirstConsumerStorageClass ketika volume disk dinamis dipasang ke pod.k8s.aliyun.com/eci-schedule-strategy: kebijakan penjadwalan multi-zona. Nilai valid:
VSwitchOrdereddanVSwitchRandom. Tabel berikut menjelaskan kebijakan penjadwalan.CatatanJika Anda tidak menentukan anotasi k8s.aliyun.com/eci-schedule-strategy, kebijakan VSwitchRandom digunakan secara default.
Kebijakan
Deskripsi Penjadwalan
VSwitchOrdered: Sistem menjadwalkan sumber daya sesuai urutan pengurutan vSwitch.
Jika Anda ingin memasang disk ke pod yang sedang Anda buat, zona disk harus sama dengan zona pod. Zona yang tidak mendukung pod atau disk disaring.
Sistem mencoba membuat pod sesuai urutan vSwitch yang ditentukan yang sesuai dengan zona tertentu. Jika sumber daya yang tersedia di zona pertama tidak mencukupi, sistem mencoba zona kedua, dan seterusnya, hingga pod dibuat.
VSwitchRandom: Sistem menjadwalkan sumber daya berdasarkan kebijakan inventaris optimal.
Jika Anda ingin memasang disk ke pod yang sedang Anda buat, zona disk harus sama dengan zona pod. Zona yang tidak mendukung pod atau disk disaring.
Alibaba Cloud memilih vSwitch yang sesuai dengan zona, di mana inventaris paling sesuai dengan kebutuhan Anda.
Jika Anda menentukan spesifikasi untuk pod yang sedang Anda buat, zona yang memiliki instance cadangan untuk spesifikasi pod yang ditentukan diprioritaskan untuk membuat pod.
Zona yang menyediakan kinerja penyimpanan lebih tinggi diprioritaskan untuk membuat pod. Zona awal berikut ini kurang diprioritaskan untuk membuat pod:
cn-beijing-e dan cn-beijing-d
cn-shenzhen-a, cn-shenzhen-b, dan cn-shenzhen-c
cn-hangzhou-b, cn-hangzhou-e, dan cn-hangzhou-f
cn-shanghai-a dan cn-shanghai-c
Anotasi harus ditambahkan ke metadata di file konfigurasi pod. Misalnya, saat membuat Deployment, Anda harus menambahkan anotasi di bagian spec.template.metadata.
Untuk menggunakan fitur Elastic Container Instance, Anda hanya dapat menambahkan anotasi saat membuat pod berbasis Elastic Container Instance. Jika Anda menambahkan atau memodifikasi anotasi saat memperbarui pod, anotasi tersebut tidak akan berlaku.
Contoh konfigurasi:
apiVersion: apps/v1
kind: Deployment
metadata:
name: test
labels:
app: test
spec:
replicas: 2
selector:
matchLabels:
app: nginx
template:
metadata:
name: nginx-test
labels:
app: nginx
alibabacloud.com/eci: "true"
annotations:
k8s.aliyun.com/eci-vswitch: "vsw-bp1xpiowfm5vo8o3c****,vsw-bp1rkyjgr1xwoho6k****" # Menentukan beberapa ID vSwitch.
k8s.aliyun.com/eci-schedule-strategy: "VSwitchOrdered" # Mengonfigurasi kebijakan penjadwalan multi-zona.
spec:
containers:
- name: nginx
image: registry.cn-shanghai.aliyuncs.com/eci_open/nginx:1.14.2
ports:
- containerPort: 80Apa yang harus dilakukan selanjutnya
Jika Anda menggunakan gateway NAT (Network Address Translation) untuk mengakses Internet dan mengonfigurasi beberapa zona (vSwitch) untuk membuat instance kontainer elastis, pastikan jumlah entri SNAT (Source Network Address Translation) yang dikonfigurasi untuk gateway NAT cukup untuk jumlah zona yang dikonfigurasi.
Sebagai contoh, saat membuat entri SNAT, Anda menentukan vSwitch untuk itu. Jika Anda menentukan beberapa vSwitch saat membuat instance kontainer elastis, tambahkan entri SNAT untuk vSwitch baru untuk memastikan bahwa instance kontainer elastis yang terhubung ke vSwitch baru dapat mengakses Internet.
