Saat menggunakan plugin jaringan Terway di kluster Alibaba Cloud Container Service for Kubernetes (ACK), Anda mungkin perlu menambahkan lebih banyak vSwitch jika vSwitch saat ini kehabisan alamat IP atau untuk menambahkan blok CIDR pod baru. Topik ini menjelaskan cara menambahkan vSwitch guna meningkatkan jumlah alamat IP yang tersedia untuk kluster ACK Anda.
Batasan
vSwitch yang ditambahkan harus berada di zona yang sama dengan node. Jika tidak tersedia vSwitch di zona tersebut, sistem akan menggunakan vSwitch dari Elastic Network Interface (ENI) primary.
Konfigurasi vSwitch untuk ENI yang sudah ada tidak dapat diubah. Setelah konfigurasi vSwitch pod diubah, pengaturan baru hanya berlaku untuk node baru.
Kapan perubahan konfigurasi vSwitch pod berlaku
Node yang sudah ada
Terway hanya menerapkan konfigurasi vSwitch baru saat membuat ENI baru. Oleh karena itu, konfigurasi baru tidak langsung berlaku pada node yang sudah ada dalam dua kasus berikut:
ENI sedang digunakan: Terway tidak menghapus atau mengganti ENI yang sudah ada jika terdapat pod yang sedang berjalan di atasnya atau jika ENI tersebut merupakan trunk ENI.
Batas ENI tercapai: ENI baru tidak dapat dibuat karena jumlah ENI pada instans node telah mencapai batas maksimum untuk tipe instans tersebut.
Node baru
Untuk node baru yang ditambahkan ke kluster, Terway membuat ENI menggunakan vSwitch yang dipilih berdasarkan konfigurasi saat ini di tingkat kluster, node, atau pod. Konfigurasi baru langsung berlaku.
Kebijakan pemilihan vSwitch dan penyeimbangan sumber daya IP
Saat beberapa vSwitch dikonfigurasi untuk suatu zona, Terway menyediakan kebijakan pemilihan berbeda untuk mengontrol cara vSwitch ditetapkan saat membuat ENI. Untuk informasi selengkapnya tentang item konfigurasi, lihat Sesuaikan parameter Terway.
Kebijakan default: ordered
Terway mengurutkan vSwitch secara menurun berdasarkan jumlah alamat IP yang tersedia dan memprioritaskan vSwitch dengan jumlah alamat IP terbanyak. Kebijakan ini cocok untuk sebagian besar skenario.
Kasus khusus: Dalam skenario lonjakan pembuatan pod secara tiba-tiba yang memicu pembuatan ENI secara batch, semua ENI baru mungkin ditetapkan ke vSwitch yang sama yang memiliki jumlah alamat IP terbanyak. Hal ini dapat menyebabkan distribusi sumber daya IP yang tidak merata dan menghabiskan alamat IP dari satu vSwitch dalam waktu singkat.
Solusi
Untuk menyeimbangkan konsumsi IP di beberapa vSwitch, gunakan salah satu metode berikut:
Solusi 1: Beralih ke kebijakan random
Ubah kebijakan pemilihan vSwitch menjadi
random.Terway akan memilih vSwitch secara acak dari daftar vSwitch yang tersedia untuk membuat ENI. Hal ini membantu mendistribusikan tekanan penggunaan IP.
Solusi 2: Partisi vSwitch berdasarkan kelompok node
Gunakan konfigurasi jaringan tingkat node untuk membagi node ke dalam beberapa kelompok node.
Dalam setiap kelompok node, sambungkan vSwitch pod unik untuk setiap zona.
Gejala kekurangan alamat IP vSwitch
Dalam jaringan Terway, gejala berikut menunjukkan bahwa alamat IP vSwitch telah habis:
Jika pembuatan pod gagal dan statusnya adalah
ContainerCreating, jalankan perintah berikut untuk melihat log Terway pada node tempat pod tersebut berada.kubectl logs --tail=100 -f terway-eniip-***** -n kube-system -c terwayJika pesan error yang mirip dengan berikut dikembalikan, berarti vSwitch yang digunakan Terway pada node tersebut tidak memiliki alamat IP yang tersedia. Pod tetap dalam status
ContainerCreatingkarena tidak tersedia alamat IP.time="20**-03-17T07:03:40Z" level=warning msg="Assign private ip address failed: Aliyun API Error: RequestId: 2095E971-E473-4BA0-853F-0C41CF52651D Status Code: 403 Code: InvalidVSwitchId.IpNotEnough Message: The specified VSwitch \"vsw-***\" has not enough IpAddress., retrying"Masuk ke Konsol Virtual Private Cloud (VPC). Di panel navigasi sebelah kiri, klik vSwitch. Temukan vSwitch tersebut dan pastikan nilai pada kolom Available IP Address Count adalah 0.
Ubah vSwitch pod
Anda dapat dengan mudah menambahkan vSwitch melalui konsol. Kami menyarankan agar Anda terlebih dahulu melakukan peningkatan komponen Terway ke versi terbaru, lalu mengonfigurasi vSwitch pod di konsol.
Terway v1.4.4 dan versi yang lebih baru mendukung konfigurasi vSwitch pod baik melalui konsol maupun kubectl.
Versi sebelum Terway v1.4.4 hanya mendukung konfigurasi vSwitch pod melalui kubectl.
Gunakan konsol
Masuk ke Konsol VPC dan buat vSwitch. vSwitch baru harus berada di wilayah yang sama dengan vSwitch yang kekurangan alamat IP. Untuk informasi selengkapnya tentang cara membuat vSwitch, lihat Buat dan kelola vSwitch.
CatatanUntuk menyediakan cukup alamat IP bagi jumlah pod yang terus bertambah, kami menyarankan agar blok CIDR vSwitch untuk pod berisi minimal 8.192 alamat IP. Artinya, awalan blok CIDR harus 19 atau lebih kecil.
Pada halaman Add-ons, klik tab Network. Temukan komponen Terway yang ingin Anda tingkatkan, lalu klik Upgrade. Setelah komponen ditingkatkan ke versi terbaru, klik Configure.
Jika tombol Upgrade tidak ditampilkan, berarti komponen Terway sudah merupakan versi terbaru.
CatatanPerubahan yang dilakukan pada komponen yang telah diterapkan dengan metode lain akan ditimpa setelah komponen diterapkan ulang.

Pada kotak dialog terway-eniip Parameter Settings, di bagian PodVswitchId, pilih vSwitch yang Anda perlukan. Biarkan nilai default untuk parameter lainnya.
Setelah mengonfigurasi parameter, klik OK.
Gunakan kubectl
Masuk ke Konsol VPC dan buat vSwitch. vSwitch baru harus berada di wilayah yang sama dengan vSwitch yang kekurangan alamat IP. Untuk informasi selengkapnya tentang cara membuat vSwitch, lihat Buat dan kelola vSwitch.
CatatanUntuk menyediakan cukup alamat IP bagi jumlah pod yang terus bertambah, kami menyarankan agar blok CIDR vSwitch untuk pod berisi minimal 8.192 alamat IP. Artinya, awalan blok CIDR harus 19 atau lebih kecil.
Jalankan perintah berikut untuk menambahkan vSwitch ke ConfigMap Terway:
kubectl edit cm eni-config -n kube-systemKode contoh berikut menunjukkan cara menambahkan vSwitch:
eni_conf: | { "version": "1", "max_pool_size": 25, "min_pool_size": 10, "vswitches": {"cn-shanghai-f":["vsw-AAA", "vsw-BBB"]}, "service_cidr": "172.21.0.0/20", "security_group": "sg-CCC" }Pada contoh ini,
vsw-BBBditambahkan ke bagianvSwitches.vsw-AAAadalah vSwitch yang sudah ada dan kekurangan alamat IP.Jalankan perintah berikut untuk menghapus semua pod Terway. Sistem akan secara otomatis membuat ulang pod tersebut.
Untuk skenario di mana beberapa pod berbagi satu ENI, jalankan perintah berikut untuk menghapus semua pod Terway:
kubectl delete -n kube-system pod -l app=terway-eniipUntuk skenario di mana satu pod menggunakan satu ENI secara eksklusif, jalankan perintah berikut untuk menghapus semua pod Terway:
kubectl delete -n kube-system pod -l app=terway-eni
Jalankan perintah berikut untuk memeriksa apakah semua pod Terway berhasil dibuat ulang.
kubectl get pod -n kube-system | grep terwayBuat pod untuk memverifikasi bahwa pod tersebut dapat diberi alamat IP dari vSwitch baru.
CatatanSetelah Anda mengubah konfigurasi vSwitch, konfigurasi baru hanya berlaku untuk ENI baru. ENI yang sudah ada tetap menggunakan konfigurasi lama. Anda dapat melakukan restart bergulir pada node untuk menerapkan konfigurasi baru.
FAQ
Mengapa kluster tidak dapat mengakses jaringan publik setelah saya menambahkan vSwitch di jaringan Terway?
Gejala: Di jaringan Terway, Anda menambahkan vSwitch secara manual karena pod kekurangan sumber daya IP. Setelah menambahkan vSwitch, kluster tidak dapat mengakses jaringan publik.
Penyebab: vSwitch tempat alamat IP pod berada tidak memiliki akses ke jaringan publik.
Solusi: Gunakan fitur SNAT dari NAT Gateway untuk mengonfigurasi aturan SNAT pada vSwitch tempat alamat IP pod berada. Untuk informasi selengkapnya, lihat Aktifkan kluster ACK untuk mengakses jaringan publik.
Apa yang harus saya lakukan jika alamat IP yang diberikan ke pod tidak berada dalam blok CIDR vSwitch?
Gejala: Di jaringan Terway, alamat IP pod yang dibuat tidak berada dalam blok CIDR vSwitch yang dikonfigurasi.
Penyebab: Alamat IP pod dialokasikan dari VPC dan ditetapkan ke kontainer melalui ENI. vSwitch hanya dapat dikonfigurasi saat ENI baru dibuat. Jika ENI sudah ada, alamat IP pod tetap dialokasikan dari vSwitch yang sesuai dengan ENI tersebut. Masalah ini biasanya terjadi dalam dua skenario berikut:
Anda menambahkan node ke kluster yang sebelumnya digunakan di kluster lain, dan pod pada node tersebut tidak dikosongkan (drained) saat node dihapus. Dalam kasus ini, sumber daya ENI yang digunakan oleh kluster sebelumnya mungkin masih tersisa di node.
Anda menambahkan atau mengubah konfigurasi vSwitch yang digunakan oleh Terway secara manual. Karena ENI asli mungkin masih ada di node, pod baru mungkin tetap menggunakan alamat IP dari ENI asli tersebut.
Solusi: Anda dapat membuat node baru atau melakukan restart bergulir pada node yang sudah ada untuk memastikan konfigurasi baru berlaku.
Mengapa konsumsi IP tidak seimbang setelah saya mengonfigurasi beberapa vSwitch?
Gejala: Di lingkungan plugin jaringan Terway, setelah Anda mengonfigurasi beberapa vSwitch pod untuk zona yang sama, konsumsi alamat IP di antara vSwitch tersebut sangat tidak seimbang. Beberapa vSwitch cepat kehabisan sumber daya IP, sementara yang lain masih memiliki banyak alamat IP yang tersedia.
Penyebab: Terway hanya memilih vSwitch pod saat membuat Elastic Network Interface (ENI). Setelah ENI dibuat, vSwitch-nya bersifat tetap. Semua alamat IP pod berikutnya yang dialokasikan pada ENI ini berasal dari vSwitch tersebut, dan vSwitch tidak dipilih lagi.
Saat ENI baru dibuat, Terway secara default menggunakan kebijakan pemilihan vSwitch ordered, yang memprioritaskan vSwitch dengan jumlah alamat IP terbanyak.
Namun, saat Anda memperluas kapasitas pod dalam skala besar dalam waktu singkat—misalnya membuat node secara batch atau menerapkan banyak replika—banyak permintaan pembuatan ENI secara konkuren mungkin menjalankan logika pemilihan vSwitch hampir bersamaan. Karena jumlah alamat IP yang tersedia pada setiap vSwitch belum berubah signifikan, permintaan tersebut kemungkinan besar memilih vSwitch yang sama, sehingga menyebabkan alokasi alamat IP yang tidak merata.
Solusi: Sesuaikan strategi berikut dengan skenario bisnis Anda:
Untuk node yang sudah ada (kelompok node yang sudah ada)
Jika alokasi IP sudah tidak seimbang dan beberapa vSwitch hampir kehabisan alamat IP:Lakukan restart bergulir secara manual pada beberapa node yang sudah ada untuk melepaskan ENI yang terpasang.
Setelah ENI dilepas, alamat IP dikembalikan ke vSwitch yang sesuai, sehingga membantu menyeimbangkan penggunaan IP.
Untuk node baru atau skenario penerapan baru
Ubah kebijakan pemilihan vSwitch Terway
vswitch_selection_policydariorderedmenjadirandom. Kebijakan ini memilih vSwitch yang tersedia secara acak saat membuat ENI, sehingga secara efektif menghindari masalah vSwitch hotspot. Untuk informasi selengkapnya tentang cara melakukan operasi ini, lihat Sesuaikan parameter Terway.Untuk alokasi yang deterministik dan terisolasi
Untuk mengontrol alokasi sumber daya jaringan secara ketat, Anda dapat mengonfigurasi konfigurasi jaringan tingkat node untuk setiap kelompok node. Hal ini memastikan hanya satu vSwitch pod yang dikaitkan dengan setiap zona. Pendekatan ini menciptakan pemetaan satu-ke-satu antara vSwitch dan kelompok node, sehingga sepenuhnya menghindari persaingan alokasi IP.