Plugin CNI sumber terbuka yang menetapkan IP native VPC ke pod dengan dukungan kebijakan jaringan Kubernetes.
Sebelum memulai
Pahami mode kerja Terway dan persyaratan perencanaan jaringan sebelum membuat kluster.
Baca Ikhtisar jaringan dan Plugin CNI Terway vs. Flannel untuk memilih plugin jaringan.
Rencanakan blok CIDR sebelum membuat kluster. Lihat Perencanaan jaringan kluster ACK yang dikelola.
Penagihan
Plugin Terway gratis, tetapi pod-nya mengonsumsi sejumlah kecil resource pada setiap node. Untuk penagihan layanan cloud ACK, lihat Biaya resource cloud.
Catatan penggunaan
File eni-config berisi parameter sistem kritis. Memodifikasi atau menghapus bidang yang tidak diizinkan dapat menyebabkan gangguan jaringan atau kegagalan pembuatan pod. Untuk parameter yang dapat dikustomisasi, lihat Kustomisasi parameter Terway.
Terway menggunakan CRD untuk melacak status resource. Jangan memodifikasi resource sistem ini—perubahan tanpa izin dapat menyebabkan gangguan jaringan atau kegagalan pembuatan pod.
Nama resource | Jenis resource | Operasi CRD pengguna | Operasi CR pengguna |
podnetworkings.network.alibabacloud.com | Resource pengguna | Tidak | Ya |
podenis.network.alibabacloud.com | Resource sistem | Tidak | Tidak |
networkinterfaces.network.alibabacloud.com | Resource sistem | Tidak | Tidak |
nodes.network.alibabacloud.com | Resource sistem | Tidak | Tidak |
noderuntimes.network.alibabacloud.com | Resource sistem | Tidak | Tidak |
*.cilium.io | Resource sistem | Tidak | Tidak |
*.crd.projectcalico.org | Resource sistem | Tidak | Tidak |
Jumlah maksimum pod per node
Jumlah maksimum pod per node bergantung pada jumlah elastic network interfaces (ENIs) yang didukung oleh tipe instans ECS. Setiap node harus memenuhi batas minimum jumlah pod agar dapat bergabung ke kluster.
Mode Terway | Batas pod | Contoh | Pod dengan IP statis, vSwitch terpisah, dan grup keamanan terpisah |
mode ENI bersama | (Jumlah ENI yang didukung oleh tipe instans ECS - 1) × Jumlah alamat IP privat per ENI. (EniQuantity - 1) × EniPrivateIpAddressQuantity Catatan Node harus mendukung lebih dari 11 pod agar dapat bergabung ke kluster. | Misalnya, ecs.g7.4xlarge mendukung 8 ENI dengan masing-masing 30 IP privat. Jumlah maksimum pod: (8 - 1) × 30 = 210. Penting Jumlah maksimum pod yang menggunakan ENI node ditentukan oleh tipe instans node tersebut. Memodifikasi parameter | 0 |
mode ENI bersama + Trunk ENI | Jumlah maksimum pod Trunk per node: Total antarmuka jaringan untuk tipe instans ECS - Jumlah ENI yang didukung oleh tipe instans ECS. EniTotalQuantity - EniQuantity | ||
mode ENI eksklusif | Instans ECS: Jumlah ENI yang didukung oleh tipe instans ECS - 1. EniQuantity - 1 Instans Lingjun: Kuota ENI Lingjun - 1. LeniQuota - 1 Catatan Node harus mendukung lebih dari 6 pod agar dapat bergabung ke kluster. | Misalnya, ecs.g7.4xlarge mendukung 8 ENI. Jumlah maksimum pod: (8 - 1) = 7. | Jumlah ENI yang didukung oleh tipe instans ECS - 1. EniQuantity - 1 Catatan Instans Lingjun tidak didukung. |
Mulai Terway v1.11.0, Anda dapat memilih mode ENI eksklusif atau ENI bersama per kelompok node. Mode yang berbeda dapat berjalan berdampingan dalam kluster yang sama. Lihat Catatan rilis Terway.
Memeriksa jumlah pod yang didukung
Metode 1: Saat membuat kelompok node, periksa kolom Kompatibilitas Terway (Pod yang Didukung) pada bagian Instance Type.
Metode 2: Dapatkan nilai yang diperlukan dan hitung secara manual batas pod untuk tipe instans ECS.
Periksa dokumentasi keluarga instans untuk jumlah maksimum ENI per tipe instans.
Gunakan OpenAPI Explorer. Atur
InstanceTypeske tipe instans dan klik Initiate Call. Pada respons:EniQuantity= jumlah maksimum ENI,EniPrivateIpAddressQuantity= jumlah IP privat per ENI,EniTotalQuantity= jumlah total antarmuka jaringan.
Instal plugin jaringan Terway
Pilih plugin jaringan Terway saat membuat kluster. Plugin jaringan tidak dapat diubah setelahnya.
-
Masuk ke Konsol ACK. Di panel navigasi kiri, klik Clusters.
-
Pada halaman Clusters, klik Create Kubernetes Cluster.
Konfigurasikan parameter jaringan Terway. Untuk parameter lainnya, lihat Buat kluster ACK yang dikelola.
Parameter
Deskripsi
IPv6 Dual-stack
Pilih Enable untuk membuat kluster dual-stack yang mendukung IPv4 dan IPv6.
Fitur ini hanya tersedia untuk Kubernetes 1.22 ke atas dan hanya mendukung Terway. Fitur ini tidak dapat digunakan dengan fitur elastic Remote Direct Memory Access (eRDMA)
Kluster mendukung protokol IPv4 dan IPv6. Namun, komunikasi antara node pekerja dan lapisan kontrol tetap menggunakan alamat IPv4. Pastikan bahwa:
VPC kluster mendukung dual-stack IPv6.
Saat menggunakan Terway dalam mode ENI bersama, tipe instans node harus mendukung IPv6 dan memiliki jumlah alamat IPv4 dan IPv6 yang didukung sama.
VPC
VPC untuk kluster.
Network Plug-in
Pilih Terway.
DataPath V2
Aktifkan akselerasi DataPath V2, yang menggunakan jalur penerusan trafik berbeda dibandingkan mode ENI bersama standar untuk akselerasi jaringan. Lihat Praktik terbaik Terway dengan Datapath V2.
CatatanUntuk kluster baru yang menjalankan Kubernetes 1.34 atau lebih baru dan menggunakan DataPath V2, kube-proxy tidak lagi berjalan di node Terway.
Mode ini mencakup dukungan portmap bawaan. Lihat Konfigurasi rantai CNI kustom.
DataPath V2 hanya didukung pada citra sistem operasi berikut dan memerlukan kernel Linux 5.10 atau lebih baru:
Alibaba Cloud Linux 4
Alibaba Cloud Linux 3 (semua versi)
ContainerOS
Ubuntu
Saat diaktifkan, container kebijakan pada setiap node mengonsumsi ~0,5 core CPU dan memori 512 MB, yang meningkat seiring ukuran kluster. Batas CPU default: 1 core; tidak ada batas memori.
Dalam mode DataPath V2, informasi conntrack disimpan dalam peta eBPF menggunakan eviksi LRU. Konfigurasikan batas peta berdasarkan beban kerja Anda untuk mencegah melebihi batas koneksi. Lihat Optimalkan konfigurasi conntrack dalam mode Terway.
Dukungan NetworkPolicy
Pilih opsi ini untuk mengaktifkan
NetworkPolicyKubernetes asli.CatatanMulai Terway v1.9.2, NetworkPolicy pada kluster baru menggunakan eBPF dengan DataPath V2 untuk bidang data.
Fitur yang memungkinkan Anda mengelola resource
NetworkPolicydi konsol sedang dalam pratinjau publik. Untuk menggunakan fitur ini, ajukan permintaan di Konsol Quota Center.
Support for ENI Trunking
Pilih untuk mengaktifkan mode Trunk ENI, yang memungkinkan IP statis, vSwitch khusus, dan grup keamanan terpisah per pod.
CatatanAnda dapat mengaktifkan Trunk ENI untuk kluster ACK yang dikelola tanpa mengajukan permintaan. Jika ingin mengaktifkan Trunk ENI untuk kluster ACK khusus, ajukan permintaan terlebih dahulu di Konsol Quota Center.
Untuk kluster ACK yang dikelola yang baru dibuat dan menjalankan Kubernetes 1.31 atau lebih baru, fitur Trunk ENI diaktifkan secara otomatis. Anda tidak perlu memilihnya secara manual.
vSwitch
vSwitch untuk node kluster. Pilih vSwitch dari minimal tiga zona ketersediaan untuk ketersediaan tinggi.
Pod vSwitch
Blok CIDR vSwitch pod dapat tumpang tindih dengan blok CIDR vSwitch node. Terway menetapkan alamat IP ke pod dari blok CIDR vSwitch pod, yang mengonsumsi resource IP dari VPC.
Jika resource IP cepat habis, Anda dapat membuka halaman Konsol VPC - vSwitch untuk memeriksa produk cloud mana saja, seperti ECS, SLB, dan Gateway NAT, yang mengonsumsi alamat IP tersebut.
Service CIDR
Blok CIDR untuk Layanan Kubernetes. Tidak boleh tumpang tindih dengan blok CIDR node atau pod.
IPv6 Service CIDR Block
Anda dapat mengonfigurasi blok CIDR Layanan IPv6 setelah mengaktifkan fitur dual-stack IPv6.
Mode kerja Terway
Terway mendukung mode ENI bersama dan mode ENI eksklusif, masing-masing dengan pertukaran performa dan fitur yang berbeda.
Mode ENI bersama dan mode ENI eksklusif
Terway menyediakan dua mode untuk menetapkan alamat IP ke pod: mode ENI bersama dan mode ENI eksklusif.
Mulai Terway v1.11.0, mode ENI dipilih per kelompok node, bukan di tingkat kluster.
Sistem operasi node menggunakan ENI primer; Terway mengelola sisanya untuk jaringan pod. Jangan mengonfigurasi ENI ini secara manual. Untuk mengelola ENI tertentu, lihat Konfigurasi filter untuk ENI.
Item | Mode ENI bersama | Mode ENI eksklusif | |
Pengelolaan alamat IP pod | Alokasi ENI | Beberapa pod berbagi satu ENI. | Setiap pod diberi ENI khusus pada nodenya. |
Kerapatan penerapan pod | Kerapatan tinggi, mendukung ratusan pod pada satu node. | Kerapatan rendah. Node tipikal hanya mendukung beberapa pod. | |
Arsitektur jaringan | |||
Jalur data | Trafik pod-ke-pod dan backend Layanan melewati stack jaringan node. | Akses Layanan menggunakan stack jaringan OS node, tetapi trafik pod-ke-pod dan backend Layanan melewati stack tersebut melalui ENI khusus untuk performa lebih baik. | |
Skenario | Beban kerja Kubernetes tujuan umum. | Memberikan performa jaringan setara VM, ideal untuk aplikasi throughput tinggi atau latensi rendah. | |
Akselerasi jaringan | Mendukung DataPath V2 akselerasi jaringan. | Tidak didukung. ENI eksklusif sudah memberikan performa jaringan tinggi melalui ENI pod khusus. | |
Dukungan NetworkPolicy | Mendukung | Tidak mendukung | |
Konfigurasi jaringan tingkat node | Didukung. Lihat Konfigurasi jaringan tingkat node. | Didukung. Lihat Konfigurasi jaringan tingkat node. | |
Kontrol akses | Dengan Trunk ENI diaktifkan, Anda dapat mengonfigurasi IP statis, vSwitch terpisah, dan grup keamanan per pod. | Memungkinkan Anda mengonfigurasi alamat IP statis, vSwitch terpisah, dan grup keamanan terpisah untuk setiap pod. | |
Akselerasi jaringan
Dalam mode ENI bersama, Anda dapat mengaktifkan akselerasi jaringan DataPath V2, yang menggunakan jalur penerusan trafik berbeda untuk mencapai performa lebih tinggi.
DataPath V2 adalah versi peningkatan dari mode akselerasi IPvlan+eBPF sebelumnya. Mulai Terway V1.8.0 dan seterusnya, DataPath V2 adalah satu-satunya mode akselerasi yang tersedia saat membuat kluster dan menginstal plugin Terway.
Mode akselerasi DataPath V2 dan IPvlan+eBPF hanya berlaku untuk kelompok node dalam mode ENI bersama dan tidak memengaruhi kelompok node dalam mode ENI eksklusif.
Fitur DataPath V2 | Deskripsi |
Versi Terway yang berlaku | Kluster yang dibuat dengan Terway v1.8.0 atau lebih baru. |
Arsitektur jaringan | |
Jalur data yang dipercepat |
|
Optimasi performa |
|
Penggunaan | Saat membuat kluster, atur Network Plug-in ke Terway dan pilih DataPath V2. |
Catatan penggunaan |
|
Mode akselerasi IPvlan+eBPF mungkin masih digunakan pada kluster lama.
Kontrol akses
Terway menyediakan manajemen trafik detail halus melalui NetworkPolicy dan Trunk ENI dalam mode ENI bersama, serta isolasi ENI per pod dalam mode ENI eksklusif.
NetworkPolicy
Kelompok node dalam mode ENI eksklusif tidak mendukung
NetworkPolicy.Kelompok node dalam mode ENI bersama mendukung
NetworkPolicyKubernetes asli, yang memungkinkan Anda mengontrol trafik jaringan antar pod menggunakan aturan yang ditentukan pengguna.Saat membuat kluster, aktifkan
NetworkPolicydengan mengatur Network Plug-in ke Terway dan memilih Dukungan NetworkPolicy. Lihat Gunakan kebijakan jaringan di kluster ACK.CatatanFitur yang memungkinkan Anda mengelola resource
NetworkPolicydi konsol sedang dalam pratinjau publik. Untuk menggunakan fitur ini, ajukan permintaan di Konsol Quota Center.
IP statis, vSwitch, dan grup keamanan
Kelompok node dalam mode ENI eksklusif secara inheren mendukung penetapan alamat IP statis, vSwitch terpisah, dan grup keamanan terpisah untuk setiap pod. Hal ini memungkinkan manajemen trafik detail halus, isolasi jaringan, konfigurasi kebijakan, dan manajemen alamat IP.
Untuk kelompok node dalam mode ENI bersama, fitur opsional Trunk ENI memungkinkan Anda mengonfigurasi alamat IP statis, vSwitch terpisah, dan grup keamanan terpisah untuk setiap pod.
Untuk mengaktifkan fitur ini, atur Network Plug-in ke Terway dan pilih Support for ENI Trunking saat membuat kluster Anda. Lihat Konfigurasi alamat IP statis, vSwitch terpisah, dan grup keamanan untuk pod.
CatatanAnda dapat mengaktifkan Trunk ENI untuk kluster ACK yang dikelola tanpa mengajukan permintaan. Jika ingin mengaktifkan Trunk ENI untuk kluster ACK khusus, ajukan permintaan terlebih dahulu di Konsol Quota Center.
Untuk kluster ACK yang dikelola yang baru dibuat dan menjalankan Kubernetes 1.31 atau lebih baru, fitur Trunk ENI diaktifkan secara otomatis. Anda tidak perlu memilihnya secara manual.
Setelah mengaktifkan mode Trunk ENI, komponen terway-eniip dan terway-controlplane diinstal.
Batas penskalaan
Terway menggunakan API produk cloud untuk mengelola antarmuka jaringan dan alamat IP node. Untuk batas laju API, lihat dokumentasi masing-masing produk cloud.
mode ENI bersama: Hingga 500 node dapat dialokasikan secara konkuren.
mode ENI eksklusif/TrunkENI: Hingga 100 pod dapat dialokasikan secara konkuren.
Kuota ini bersifat tetap.
Konfigurasi bidang data
Bidang data Terway bergantung pada urutan tepat dan integritas konfigurasi hook kernel-level IP rule, IP route, dan eBPF-nya. Perubahan tidak terkoordinasi oleh komponen eksternal—penyesuaian prioritas, penggantian aturan, atau pencopotan program—dapat menyebabkan gangguan jaringan pod, kebijakan jaringan tidak efektif, dan pengalihan trafik yang tidak diinginkan. Validasi semua komponen pihak ketiga sebelum integrasi untuk mencegah konflik.
Aturan filter TC
Antarmuka | Petunjuk | Program | Prioritas | Fungsi |
ethx | toContainer | VLAN Untag | 20000 | Hapus tag VLAN |
ethx | toContainer | cil_from_netdev | 25000 | Layanan Cilium/kebijakan jaringan |
veth | toContainer | cil_to_container | 25000 | Layanan Cilium/kebijakan jaringan |
veth | fromContainer | cil_from_container | 25000 | Layanan Cilium/kebijakan jaringan |
ethx | fromContainer | cil_to_netdev | 25000 | Layanan Cilium/kebijakan jaringan |
ethx | fromContainer | VLAN Tag | 50001 | Tambahkan tag VLAN |
Aturan IP
Arah | Prioritas | Tabel routing |
toContainer | 512 | 1000 + linkIndex (indeks ENI) |
fromContainer | 512 | 1000 + linkIndex (indeks ENI) |
FAQ
Mengidentifikasi mode ENI Terway
Anda dapat mengidentifikasi mode dengan memeriksa nama DaemonSet Terway yang berjalan di namespace kube-system.
Jalankan perintah berikut untuk mencantumkan DaemonSet Terway di namespace kube-system:
kubectl get ds -n kube-system | grep terwayIdentifikasi mode berdasarkan output:
Jika DaemonSet bernama
terway-eniip, Anda menggunakan mode ENI Bersama.Jika DaemonSet bernama
terway-eni, Anda menggunakan mode ENI Eksklusif.
Mulai Terway v1.11.0, mode ENI Bersama adalah default. Anda dapat mengaktifkan mode ENI eksklusif dengan mengonfigurasi mode jaringan ENI eksklusif untuk kelompok node. Pada versi sebelumnya, mode dipilih saat pembuatan kluster.
Penggantian plugin jaringan
Plugin ditetapkan saat pembuatan kluster. Untuk mengganti, buat kluster baru dan migrasikan beban kerja.
Bagaimana cara mengatasi error "OS Type not supported" saat membuat kelompok node atau node?
Error serupa berikut dapat terjadi saat membuat kelompok node atau node:
OS Type AliyunLinux4ContainerOptimized is not supported for addons: terway-eniip: required version >= v1.16.4, current version v1.14.3Penyebab: Versi add-on terway-eniip di kluster terlalu rendah dan tidak mendukung jenis sistem operasi saat ini, seperti AliyunLinux4ContainerOptimized.
Solusi:
Masuk ke konsol Container Service. Buka halaman Component Management kluster tujuan dan klik tab Network.
Temukan add-on terway-eniip dan klik Upgrade. Tingkatkan add-on ke v1.16.4 atau lebih baru untuk mendukung lebih banyak jenis sistem operasi.
Setelah peningkatan selesai, coba lagi membuat kelompok node.
Bagaimana cara mengatasi error InsufficientInstanceIPv6Address saat menambahkan node?
Penyebab: Tipe instans ECS yang ditentukan, seperti ecs.u1-c1m2.xlarge, tidak mendukung jumlah alamat IPv6 yang cukup untuk pod dalam mode Elastic Network Interface (ENI) bersama Terway.
Solusi:
Opsi 1: Jika layanan Anda memerlukan IPv6, ganti ke tipe instans ECS yang mendukung lebih banyak ENI atau alamat IPv6.
Opsi 2: Jika layanan Anda tidak memerlukan IPv6, kosongkan opsi IPv6 dual-stack saat membuat kluster, atau beralih ke plugin jaringan Flannel.
Mengosongkan opsi IPv6 dual-stack saat membuat kluster ACK tidak memengaruhi plugin jaringan Terway. Kosongkan opsi ini jika layanan Anda tidak menggunakan IPv6.