All Products
Search
Document Center

Container Service for Kubernetes:Konfigurasikan rantai CNI kustom

Last Updated:Aug 21, 2026

CNI (Container Network Interface) adalah standar plug-in jaringan Kubernetes. CNI Chain menghubungkan beberapa plug-in CNI secara berurutan: setiap plug-in menangani tugas tertentu seperti alokasi IP atau routing, lalu meneruskan output ke plug-in berikutnya hingga semua tugas selesai. Topik ini menjelaskan cara mengonfigurasi rantai CNI kustom di kluster ACK Terway.

Prasyarat

  • ACK managed cluster dengan plug-in jaringan Terway telah dibuat.

  • Terway v1.5.6 atau yang lebih baru. Kluster tidak menggunakan mode jaringan ENI eksklusif.

Peringatan

ACK tidak menjamin kompatibilitas antar plug-in CNI. Rantai CNI kustom merupakan operasi berisiko tinggi. Pahami setiap plug-in sebelum melanjutkan untuk menghindari gangguan bisnis.

Konfigurasikan rantai CNI kustom

Tambahkan plug-in CNI ke file konfigurasi Terway.

  1. Edit ConfigMap eni-config:

    kubectl edit cm -nkube-system eni-config

    Parameter

    Deskripsi

    10-terway.conf

    Konfigurasi CNI Terway. Jangan dimodifikasi.

    Penting

    Jangan modifikasi file ini.

    10-terway.conflist

    Konfigurasi rantai CNI kustom.

    Entri pertama dalam plugins harus sesuai dengan 10-terway.conf.

    Penting

    Ini adalah contoh konfigurasi. Jangan gunakan langsung.

    Blok konfigurasi harus dalam format JSON.

    File konfigurasi

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: eni-config
      namespace: kube-system
    data:
      10-terway.conflist: |
          {
            "plugins": [
              {
                "cniVersion": "0.4.0",
                "name": "terway",
                "type": "terway",
                "capabilities": {"bandwidth": true}
              },
              {
                "type": "portmap",
                "capabilities": {"portMappings": true},
                "externalSetMarkChain":"KUBE-MARK-MASQ"
              }
            ]
          }
      10-terway.conf: |
        {
          "cniVersion": "0.4.0",
          "name": "terway",
          "type": "terway",
          "capabilities": {"bandwidth": true}
        }
  2. Jalankan kubectl rollout restart -n kube-system daemonset.apps/terway-eniip untuk membangun ulang Pod Terway.

    Jika dikonfigurasi dengan benar, verifikasi konfigurasi plug-in kustom di etc/cni/net.d/10-terway.conflist pada node.

Kasus penggunaan

Konfigurasikan portmap

Plug-in portmap memetakan port Pod ke port host untuk akses eksternal.

Catatan

Untuk akses jaringan publik, konfigurasikan aturan inbound security group agar mengizinkan traffic pada port yang diperlukan.

Aturan ini mungkin bertentangan dengan kebijakan jaringan Kubernetes. Lakukan pengujian menyeluruh sebelum menerapkan di lingkungan produksi.

Contoh konfigurasi

  • Akses menggunakan alamat IP pribadi dan port sebuah node:

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: eni-config
      namespace: kube-system
    data:
      10-terway.conflist: |
          {
            "plugins": [
              {
                "cniVersion": "0.4.0",
                "name": "terway",
                "type": "terway",
                "capabilities": {"bandwidth": true} 
              },
              {
                "type": "portmap",
                "capabilities": {"portMappings": true},
                "externalSetMarkChain":"KUBE-MARK-MASQ"
              }
            ]
          }
    
      10-terway.conf: |
        {
          "cniVersion": "0.4.0",
          "name": "terway",
          "type": "terway",
          "capabilities": {"bandwidth": true}
        }
  • Akses menggunakan alamat IP publik dan port:

    Akses jaringan publik memerlukan konfigurasi berikut.

    Parameter

    Non-Datapath V2

    Datapath V2

    masqAll

    Tidak diperlukan

    Diperlukan

    symmetric_routing

    Diperlukan

    Diperlukan

    • masqAll: Parameter plug-in portmap. Memerlukan portmap v1.7.1 atau yang lebih baru.

    • symmetric_routing: Parameter plug-in Terway. Memerlukan Terway v1.15.0 atau yang lebih baru.

    • Kluster Datapath V2 dengan pengganti kube-proxy tidak memerlukan plug-in portmap.

    kind: ConfigMap
    apiVersion: v1
    metadata:
      name: eni-config
      namespace: kube-system
    data:
      10-terway.conflist: |
          {
            "name": "terway-chain",
            "plugins": [
              {
                "cniVersion": "0.4.0",
                "name": "terway",
                "type": "terway",
                "symmetric_routing": true,
                "capabilities": {"bandwidth": true} 
              },
              {
                "type": "portmap",
                "capabilities": {"portMappings": true},
                "masqAll": false
              }
            ]
          }
    
      10-terway.conf: |
        {
          "cniVersion": "0.4.0",
          "name": "terway",
          "type": "terway",
          "capabilities": {"bandwidth": true}
        }

Nonaktifkan alamat link-lokal IPv6 untuk kontainer

Meskipun fitur dual-stack IPv6 tidak diaktifkan, kontainer secara otomatis menerima alamat link-lokal IPv6 di subnet fe80::/64. Perilaku default kernel ini biasanya tidak berbahaya.

Jika suatu aplikasi salah menangani alamat jaringan, aplikasi tersebut mungkin menggunakan alamat link-lokal IPv6 untuk komunikasi lintas jaringan. Alamat link-lokal hanya berfungsi dalam satu link yang sama, sehingga menyebabkan kegagalan. Laporkan masalah semacam ini ke vendor aplikasi terlebih dahulu.

Untuk menonaktifkan alamat link-lokal IPv6 di kontainer, konfigurasikan plug-in tuning.

Contoh konfigurasi

kind: ConfigMap
apiVersion: v1
metadata:
  name: eni-config
  namespace: kube-system
data:
  10-terway.conflist: |
      {
        "plugins": [
          {
            "cniVersion": "0.4.0",
            "name": "terway",
            "type": "terway",
            "capabilities": {"bandwidth": true}
          },
          {
            "type": "tuning",
            "sysctl": {
              "net.ipv6.conf.all.disable_ipv6": "1",
              "net.ipv6.conf.default.disable_ipv6": "1",
              "net.ipv6.conf.lo.disable_ipv6": "1"
            }
          }
        ]
      }
  10-terway.conf: |
    {
      "cniVersion": "0.4.0",
      "name": "terway",
      "type": "terway",
      "capabilities": {"bandwidth": true}
    }