All Products
Search
Document Center

Container Service for Kubernetes:Ubah vSwitch untuk Pod

Last Updated:Jun 18, 2026

Tambahkan vSwitch untuk memperluas kumpulan IP Pod ketika vSwitch kehabisan IP di kluster Terway.

Anda mungkin memerlukan ini jika:

  • vSwitch telah habis dan Pod terjebak dalam status ContainerCreating.

  • Anda sedang melakukan scale-out node dan membutuhkan kapasitas IP tambahan di zona tertentu.

  • Anda ingin mendistribusikan penggunaan IP di beberapa vSwitch agar lebih seimbang.

Prasyarat

Sebelum memulai, pastikan Anda telah memiliki:

Batasan

  • vSwitch baru harus berada di zona yang sama dengan node Anda. Jika tidak ada vSwitch yang dikonfigurasi mencakup zona node tersebut, Terway akan menggunakan vSwitch dari ENI primer node tersebut.

  • Anda tidak dapat mengubah vSwitch pada ENI yang sudah ada. Untuk menerapkan pengaturan vSwitch Pod yang diperbarui, tambahkan node baru atau lakukan restart bergulir.

Deteksi kehabisan IP vSwitch

Saat vSwitch kehabisan IP, Pod yang memerlukan ENI baru akan tetap berada dalam status ContainerCreating.

Periksa log Terway pada node tempat Pod dijadwalkan:

kubectl logs --tail=100 -f terway-eniip-***** -n kube-system -c terway

Jika output berisi error berikut, artinya vSwitch tidak memiliki IP yang tersedia:

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"

Periksa juga jumlah Available IP Addresses di VPC console pada bagian vSwitch. Angka 0 mengonfirmasi bahwa IP telah habis.

Kapan perubahan mulai berlaku

Terway hanya menerapkan konfigurasi vSwitch baru saat membuat ENI baru. ENI yang sudah ada tidak terpengaruh.

Node yang sudah ada: Konfigurasi baru tidak berlaku selama:

  1. ENI pada node tersebut masih digunakan (terdapat Pod yang berjalan atau trunk ENI).

  2. Node telah mencapai batas ENI-nya (ditentukan oleh tipe instans).

Node baru: Node yang ditambahkan setelah pembaruan langsung menggunakan vSwitch baru.

Ubah vSwitch untuk Pod

Metode Konsol

Memerlukan Terway v1.4.4 atau versi lebih baru. Untuk versi sebelumnya, gunakan metode kubectl.

  1. Buat vSwitch di VPC console di zona yang sama dengan node target. Lihat Create and manage vSwitches.Virtual Private Cloud (VPC) consoleVirtual Private Cloud (VPC) consoleVirtual Private Cloud (VPC) console

    Catatan

    Kerapatan Pod meningkat seiring waktu. Gunakan subnet mask /19 atau lebih kecil (minimal 8.192 IP per Blok CIDR) untuk vSwitch Pod.

  2. Masuk ke Container Service Management Console. Di panel navigasi kiri, klik Clusters.

  3. Pada halaman Clusters, klik nama kluster Anda. Di panel navigasi kiri, klik Add-ons.

  4. Pada halaman Add-ons, klik tab Network. Temukan Terway dan klik Upgrade. Jika tombol Upgrade tidak tersedia, berarti versi tersebut sudah terbaru. Setelah upgrade, klik Configuration.

    Catatan

    Perubahan pada add-on yang dilakukan melalui metode lain akan ditimpa saat redeployment.

    Configuration

  5. Pada halaman Parameters untuk terway-eniip, pilih vSwitch baru di bidang PodVswitchId. Biarkan parameter lain tetap pada nilai default.

  6. Klik OK.

Metode kubectl

Gunakan metode ini untuk Terway versi sebelum v1.4.4, atau untuk mengelola konfigurasi melalui kubectl.

  1. Buat vSwitch di VPC console di zona yang sama dengan node target. Lihat Create and manage vSwitches.

    Catatan

    Kerapatan Pod meningkat seiring waktu. Gunakan subnet mask /19 atau lebih kecil (minimal 8.192 IP per Blok CIDR) untuk vSwitch Pod.

  2. Edit ConfigMap Terway untuk menambahkan vSwitch baru:

    kubectl edit cm eni-config -n kube-system

    Tambahkan ID vSwitch baru ke bidang vswitches. Contoh berikut menambahkan vsw-BBB bersama vsw-AAA:

    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"
      }
  3. Restart pod Terway untuk menerapkan konfigurasi baru. Pod akan dibuat ulang secara otomatis.

    • Hapus pod Terway dalam skenario ENI multi-IP:

      kubectl delete -n kube-system pod -l app=terway-eniip
    • Hapus pod Terway dalam skenario ENI single-IP:

      kubectl delete -n kube-system pod -l app=terway-eni
  4. Verifikasi bahwa semua pod Terway sedang berjalan:

    kubectl get pod -n kube-system | grep terway
  5. Buat Pod uji dan verifikasi bahwa Pod tersebut mendapatkan IP dari vSwitch baru.

    Catatan

    Pengaturan vSwitch baru hanya berlaku untuk ENI yang baru dibuat. ENI yang sudah ada tetap menggunakan vSwitch asli. Untuk menerapkan perubahan ke semua node, lakukan restart bergulir.

Strategi pemilihan vSwitch

Saat terdapat beberapa vSwitch dalam satu zona, Terway memilih salah satu untuk setiap ENI baru berdasarkan parameter vswitch_selection_policy. Lihat Customize Terway configuration parameters.

Default: ordered

Terway memilih vSwitch dengan IP tersedia paling banyak, yang umumnya bekerja dengan baik.

Kasus khusus: Saat scaling cepat, permintaan pembuatan ENI konkuren berjalan sebelum jumlah IP diperbarui, sehingga semuanya memilih vSwitch yang sama, menyebabkan distribusi tidak merata.

Alternatif: random

Terway memilih vSwitch secara acak untuk setiap ENI baru, sehingga mendistribusikan IP lebih merata dan mencegah hotspot saat scaling mendadak.

Isolasi vSwitch berdasarkan kelompok node

Untuk kontrol ketat, konfigurasikan node-level network settings untuk mengaitkan vSwitch Pod unik ke setiap kelompok node per zona, sehingga menghilangkan persaingan alokasi IP.

FAQ

Pod kehilangan akses Internet setelah saya menambahkan vSwitch

vSwitch baru tidak memiliki aturan SNAT, sehingga Pod-nya tidak dapat mengakses Internet. Konfigurasikan aturan SNAT untuk vSwitch baru menggunakan NAT Gateway. Lihat Enable Internet access for your cluster.

Alamat IP Pod berada di luar Blok CIDR vSwitch yang dikonfigurasi

IP Pod berasal dari ENI, dan Anda hanya dapat menentukan vSwitch saat pembuatan ENI. Setelah itu, semua Pod pada ENI tersebut mendapatkan IP dari vSwitch tersebut, terlepas dari perubahan konfigurasi selanjutnya.

Hal ini biasanya terjadi ketika:

  • Node memiliki ENI sisa dari kluster sebelumnya (dihapus tanpa draining Pod).

  • Anda memperbarui konfigurasi vSwitch, tetapi ENI yang sudah ada pada node masih menggunakan vSwitch lama.

Tambahkan node baru atau lakukan restart bergulir pada node yang ada untuk membuat ENI baru dengan konfigurasi yang diperbarui.

Penggunaan IP tidak seimbang di berbagai vSwitch

Strategi ordered menyebabkan hal ini saat scaling cepat. Permintaan pembuatan ENI konkuren semuanya memilih vSwitch yang sama (yang memiliki IP paling banyak), sehingga vSwitch tersebut habis sementara yang lain kurang dimanfaatkan.

Bergantung pada situasi Anda:

  • Untuk node yang sudah ada dengan vSwitch hampir habis: Lakukan restart bergulir pada beberapa node untuk melepaskan ENI dan mengembalikan IP ke vSwitch.

  • Untuk node baru atau penerapan mendatang: Ubah vswitch_selection_policy dari ordered menjadi random. Ini mendistribusikan ENI secara acak untuk mencegah hotspot. Lihat Customize Terway configuration parameters.

  • Untuk isolasi ketat: Gunakan node-level network configuration untuk menetapkan tepat satu vSwitch Pod per zona per kelompok node.

Langkah selanjutnya