Terway adalah plugin Container Network Interface (CNI) open source yang dikembangkan oleh Alibaba Cloud. Terway terintegrasi dengan Virtual Private Cloud (VPC) dan memungkinkan Anda menggunakan kebijakan jaringan Kubernetes standar untuk mengontrol komunikasi antar kontainer.
Sebelum memulai
Sebelum menggunakan plugin jaringan Terway, baca topik ini untuk memahami cara kerjanya.
Sebelum membaca topik ini, tinjau Ikhtisar jaringan dan Perbandingan antara Terway dan Flannel untuk memahami konsep dasar plugin jaringan kontainer dan membantu Anda memilih plugin yang sesuai.
Rencanakan Blok CIDR untuk kluster Anda sebelum membuatnya. Untuk informasi selengkapnya, lihat Perencanaan jaringan kluster ACK yang dikelola.
Penagihan
Terway tidak dikenai biaya. Namun, pod Terway dideploy pada setiap node dan mengonsumsi sejumlah kecil sumber daya node. Untuk informasi selengkapnya tentang penagihan layanan Alibaba Cloud yang digunakan oleh ACK, lihat Biaya sumber daya cloud.
Catatan penting
File konfigurasi Terway eni-config berisi banyak parameter sistem. Jangan mengubah atau menghapus bidang yang tidak didukung. Jika tidak, gangguan jaringan dapat terjadi atau pod gagal dibuat. Untuk daftar parameter konfigurasi yang dapat diubah, lihat Parameter konfigurasi Terway kustom.
Komponen Terway menggunakan Custom Resource Definitions (CRDs) untuk melacak status resource. Jika Anda secara tidak sengaja mengubah resource sistem, gangguan jaringan dapat terjadi atau pembuatan pod gagal.
Nama resource | Jenis resource | Apakah pengguna dapat mengelola CRD? | Apakah pengguna dapat mengelola CR? |
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 |
Cara menghitung jumlah maksimum pod per node
Saat menggunakan plugin jaringan Terway, jumlah maksimum pod per node bergantung pada jumlah Elastic Network Interfaces (ENIs) yang didukung oleh tipe instans Elastic Compute Service (ECS). Terway menetapkan batas minimum jumlah pod per node. Sebuah node harus memenuhi batas ini agar berhasil bergabung ke kluster. Untuk informasi selengkapnya, lihat tabel berikut.
Mode Terway | Jumlah maksimum pod per node | Contoh | Jumlah maksimum pod per node yang mendukung alamat IP statis, vSwitch terpisah, dan grup keamanan terpisah |
Mode ENI bersama | (Jumlah ENI yang didukung oleh tipe instans ECS - 1) × Jumlah alamat IP pribadi yang didukung oleh satu ENI. (EniQuantity - 1) × EniPrivateIpAddressQuantity Catatan Sebuah node hanya dapat bergabung ke kluster jika jumlah maksimum pod per node lebih dari 11. | Sebagai contoh, tipe instans general-purpose ecs.g7.4xlarge mendukung 8 ENI, dan setiap ENI mendukung 30 alamat IP pribadi. Jumlah maksimum pod per node adalah (8 - 1) × 30 = 210. Penting Jumlah maksimum pod yang dapat menggunakan ENI pada sebuah node adalah nilai tetap yang ditentukan oleh tipe instans. Mengubah parameter | 0 |
ENI bersama + Trunk ENI | Kuota Pod Trunk per node: Total jumlah antarmuka jaringan yang didukung oleh 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: Buat dan kelola ENI Lingjun - 1. LeniQuota - 1 Catatan Sebuah node hanya dapat bergabung ke kluster jika jumlah maksimum pod per node lebih dari 6. | Sebagai contoh, tipe instans general-purpose ecs.g7.4xlarge mendukung 8 ENI. Jumlah maksimum pod per node adalah (8 - 1) = 7. | Jumlah ENI yang didukung oleh tipe instans ECS - 1. EniQuantity - 1 Catatan Instans Lingjun tidak didukung. |
Pada Terway versi v1.11.0 dan yang lebih baru, Anda dapat mengonfigurasi kelompok node untuk berjalan dalam mode ENI eksklusif atau mode ENI bersama. Kedua jenis kelompok node tersebut dapat berada dalam kluster yang sama. Untuk informasi selengkapnya, lihat Catatan rilis Terway.
Lihat jumlah maksimum pod yang didukung oleh sebuah node
Metode 1: Saat membuat kelompok node di Konsol ACK, Anda dapat menemukan jumlah maksimum pod yang didukung oleh tipe instans di bagian Instance type, di bawah Terway compatibility (supported pods).
Metode 2: Dapatkan data yang diperlukan lalu hitung secara manual jumlah maksimum pod yang didukung oleh tipe instans ECS.
Periksa Ikhtisar family instans untuk mengetahui jumlah ENI yang didukung oleh tipe instans.
Anda dapat mengkueri informasi tersebut menggunakan OpenAPI Explorer. Tentukan tipe instans dari node yang sudah ada di parameter
InstanceTypeslalu klik Initiate call. Dalam respons,EniQuantitymenunjukkan jumlah maksimum ENI yang didukung oleh tipe instans.EniPrivateIpAddressQuantitymenunjukkan jumlah alamat IP pribadi yang didukung oleh setiap ENI.EniTotalQuantitymenunjukkan total jumlah antarmuka jaringan yang didukung oleh tipe instans.
Instal Terway saat membuat kluster
Anda hanya dapat memilih Terway sebagai plugin jaringan saat membuat kluster. Anda tidak dapat mengubah plugin tersebut setelah kluster dibuat.
Masuk ke Container Service Management Console . Di panel navigasi sebelah kiri, klik Clusters.
Di halaman Clusters, klik Create Kubernetes Cluster.
Konfigurasikan parameter jaringan utama untuk Terway. Untuk informasi selengkapnya tentang parameter kluster lainnya, lihat Buat kluster ACK yang dikelola.
item konfigurasi
Deskripsi
IPv6 Dual-stack
Pilih Enable untuk membuat kluster dual-stack yang mendukung IPv4 dan IPv6.
Hanya didukung untuk Kubernetes 1.22 atau yang lebih baru, hanya dengan Terway, dan tidak dapat digunakan bersamaan dengan eRDMA.
Kluster mendukung protokol IPv4 dan IPv6, tetapi komunikasi antara node pekerja dan lapisan kontrol tetap menggunakan alamat IPv4. Pastikan hal berikut:
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 dapat dialokasikan yang sama.
VPC
VPC yang digunakan oleh kluster.
Network Plug-in
Pilih Terway.
DataPath V2
Pilih opsi ini untuk mengaktifkan akselerasi DataPath V2. Setelah diaktifkan, Terway menggunakan jalur penerusan traffic yang berbeda dari mode ENI bersama standar untuk meningkatkan performa jaringan. Untuk informasi selengkapnya tentang fitur, lihat Akselerasi jaringan.
CatatanUntuk kluster baru dengan Kubernetes 1.34 atau yang lebih baru dan DataPath V2 diaktifkan, kube-proxy tidak lagi berjalan di node Terway.
Mode ini mencakup dukungan bawaan untuk portmap, sehingga tidak perlu mengonfigurasi plugin portmap. Lihat Konfigurasikan rantai CNI kustom.
DataPath V2 hanya mendukung citra OS berikut dan memerlukan kernel Linux versi 5.10 atau yang lebih baru:
Alibaba Cloud Linux 3 (semua versi)
ContainerOS
Ubuntu
Saat diaktifkan, kontainer kebijakan Terway mengonsumsi tambahan 0,5 core dan 512 MB sumber daya pada setiap node pekerja. Konsumsi sumber daya ini meningkat seiring pertumbuhan ukuran kluster. Dalam konfigurasi Terway default, kontainer kebijakan memiliki batas CPU 1 core dan tidak memiliki batas memori.
Dalam mode DataPath V2, data connection tracking (conntrack) untuk jaringan kontainer disimpan dalam peta eBPF. Mirip dengan mekanisme conntrack native Linux, eBPF conntrack menerapkan penghapusan Least Recently Used (LRU). Saat kapasitas peta tercapai, koneksi terlama secara otomatis dihapus untuk menyimpan yang baru. Konfigurasikan parameter berdasarkan skala beban kerja Anda untuk mencegah melebihi batas koneksi. Untuk detailnya, lihat Optimalkan konfigurasi conntrack di Terway.
Support for NetworkPolicy
Pilih opsi ini untuk mengaktifkan
NetworkPolicynative Kubernetes.CatatanMulai Terway v1.9.2, NetworkPolicy untuk kluster baru diimplementasikan menggunakan extended Berkeley Packet Filter (eBPF). DataPath V2 juga diaktifkan di bidang data.
Fitur yang memungkinkan Anda mengelola
NetworkPolicymenggunakan konsol sedang dalam pratinjau publik. Untuk menggunakan fitur ini, Anda harus mengajukan permohonan di Konsol Quota Center.
Support for ENI trunking
Pilih opsi ini untuk mengaktifkan ENI trunking. Anda dapat mengalokasikan alamat IP statis, vSwitch terpisah, dan grup keamanan terpisah untuk setiap pod.
CatatanAnda dapat memilih ENI trunking untuk kluster ACK yang dikelola tanpa mengajukan permohonan. Untuk mengaktifkan ENI trunking pada kluster ACK khusus, Anda harus mengajukan permohonan di Konsol Quota Center.
Untuk kluster ACK yang dikelola baru dengan Kubernetes 1.31 atau yang lebih baru, ENI trunking diaktifkan secara default.
vSwitch
Blok CIDR vSwitch yang digunakan oleh node kluster. Pilih minimal tiga vSwitch di zona berbeda untuk memastikan ketersediaan tinggi kluster.
Pod vSwitch
Blok CIDR vSwitch yang digunakan oleh pod. Blok ini dapat tumpang tindih dengan blok CIDR vSwitch yang digunakan oleh node.
Service CIDR
Blok CIDR yang digunakan oleh Services. Blok ini tidak boleh tumpang tindih dengan blok CIDR node atau pod.
IPv6 Service CIDR
Konfigurasikan ini setelah mengaktifkan IPv6 dual-stack.
Mode Terway
Tinjau bagian berikut untuk memahami perbedaan antara mode Terway dan cara kerjanya.
Mode ENI bersama dan mode ENI eksklusif
Saat mengalokasikan alamat IP ke pod, Terway beroperasi dalam salah satu dari dua mode: Mode ENI bersama atau Mode ENI eksklusif.
Pada Terway v1.11.0 dan versi yang lebih baru, Anda dapat mengonfigurasi kelompok node individual untuk berjalan dalam mode ENI bersama atau mode ENI eksklusif. Pilihan ini tidak lagi tersedia saat pembuatan kluster.
ENI primer pada node dialokasikan untuk OS node. ENI yang tersisa dikelola oleh Terway untuk mengonfigurasi jaringan pod. Jangan mengonfigurasi ENI ini secara manual. Untuk informasi selengkapnya tentang cara mengelola ENI, lihat Konfigurasikan filter untuk ENI.
Item perbandingan | Shared ENI mode | Mode ENI eksklusif | |
Manajemen alamat IP pod | Alokasi ENI | Beberapa pod berbagi satu ENI. | Setiap pod diberikan ENI khusus pada node. |
Kerapatan pod | Pod dapat dideploy dengan kerapatan tinggi karena satu node dapat mendukung ratusan pod. | Rendah. Tipe instans standar hanya mendukung jumlah pod dalam satuan digit tunggal. | |
Arsitektur jaringan | |||
Tautan data | Saat pod mengakses pod lain atau berfungsi sebagai backend untuk Service, traffic melewati tumpukan protokol jaringan node. | Saat pod mengakses Service, traffic melewati tumpukan protokol OS node. Namun, saat pod mengakses pod lain atau berfungsi sebagai backend untuk Service, ENI yang terpasang melewati tumpukan protokol jaringan node untuk performa yang lebih tinggi. | |
Kasus penggunaan | Cocok untuk kasus penggunaan Kubernetes umum. | Memberikan performa jaringan yang mirip dengan mesin virtual tradisional. Mode ini cocok untuk aplikasi yang memerlukan throughput jaringan tinggi atau latensi rendah. | |
Akselerasi jaringan | Akselerasi jaringan DataPath V2 didukung. Untuk informasi selengkapnya, lihat Akselerasi jaringan. | Akselerasi jaringan tidak didukung. Namun, resource ENI eksklusif memberikan performa jaringan yang sangat baik. | |
Dukungan untuk NetworkPolicy |
|
| |
Konfigurasi jaringan tingkat node | Didukung. Lihat Konfigurasi jaringan tingkat node. | Didukung. Lihat Konfigurasi jaringan tingkat node. | |
Kontrol akses | Jika ENI trunking diaktifkan, Anda dapat mengalokasikan alamat IP statis, grup keamanan terpisah, dan vSwitch terpisah untuk pod. Untuk informasi selengkapnya, lihat Konfigurasikan alamat IP statis, vSwitch terpisah, dan grup keamanan terpisah untuk pod. | Anda dapat mengalokasikan alamat IP statis, grup keamanan terpisah, dan vSwitch terpisah untuk pod. | |
Akselerasi jaringan
Jika Anda menggunakan mode ENI bersama Terway, Anda dapat mengaktifkan akselerasi jaringan. Setelah diaktifkan, Terway menggunakan jalur penerusan traffic yang berbeda dari mode ENI bersama standar untuk mencapai performa yang lebih tinggi. Terway saat ini mendukung akselerasi DataPath V2. Untuk informasi selengkapnya, lihat deskripsi berikut.
DataPath V2 adalah versi peningkatan dari mode akselerasi IPVLAN + eBPF sebelumnya. Saat membuat kluster dengan Terway 1.8.0 atau yang lebih baru, hanya DataPath V2 yang didukung.
Mode akselerasi DataPath V2 dan IPVLAN + eBPF hanya berlaku untuk kelompok node yang berjalan dalam mode ENI bersama. Mode ini tidak memengaruhi kelompok node yang berjalan dalam mode ENI eksklusif.
Fitur DataPath V2 | Deskripsi |
Versi Terway yang berlaku | Kluster yang dibuat dengan Terway 1.8.0 atau yang lebih baru. |
Arsitektur jaringan | |
Tautan data yang dipercepat |
|
Optimasi performa |
|
Metode penggunaan | Saat membuat kluster, atur Network Plug-in ke Terway dan pilih DataPath V2. |
Catatan penggunaan |
|
Pada kluster lama, Anda mungkin telah memilih mode akselerasi IPVLAN + eBPF. Untuk informasi selengkapnya, lihat deskripsi berikut.
Kontrol akses
Mode ENI bersama Terway mendukung manajemen traffic jaringan detail halus dalam kluster menggunakan NetworkPolicy dan ENI trunking. Mode ENI eksklusif Terway juga mendukung beberapa kemampuan kontrol traffic.
Dukungan untuk NetworkPolicy
Kelompok node yang berjalan dalam mode ENI eksklusif Terway tidak mendukung
NetworkPolicy.Kelompok node yang berjalan dalam mode ENI bersama Terway mendukung
NetworkPolicynative Kubernetes. Anda dapat menentukan aturan untuk mengontrol traffic jaringan antar pod.Saat membuat kluster, atur Network Plug-in ke Terway dan pilih Support for NetworkPolicy untuk mengaktifkan
NetworkPolicy. Untuk informasi selengkapnya, lihat Gunakan kebijakan jaringan di kluster ACK.CatatanFitur yang memungkinkan Anda mengelola
NetworkPolicymenggunakan konsol sedang dalam pratinjau publik. Untuk menggunakan fitur ini, Anda harus mengajukan permohonan di Konsol Quota Center.
Konfigurasikan alamat IP statis, vSwitch terpisah, dan grup keamanan terpisah untuk pod
Kelompok node yang berjalan dalam mode ENI eksklusif Terway mendukung alokasi alamat IP statis, vSwitch terpisah, dan grup keamanan terpisah untuk setiap pod. Ini memungkinkan manajemen traffic detail halus, isolasi traffic, konfigurasi kebijakan jaringan, dan manajemen alamat IP.
ENI trunking adalah opsi untuk kelompok node yang berjalan dalam mode ENI bersama Terway. Jika ENI trunking diaktifkan, Anda dapat mengalokasikan alamat IP statis, vSwitch terpisah, dan grup keamanan terpisah untuk setiap pod.
Saat membuat kluster, atur Network Plug-in ke Terway dan pilih Support for ENI trunking. Untuk informasi selengkapnya, lihat Konfigurasikan alamat IP tetap, vSwitch terpisah, dan grup keamanan terpisah untuk pod.
CatatanAnda dapat memilih ENI trunking untuk kluster ACK yang dikelola tanpa mengajukan permohonan. Untuk mengaktifkan ENI trunking pada kluster ACK khusus, Anda harus mengajukan permohonan di Konsol Quota Center.
Untuk kluster ACK yang dikelola baru dengan Kubernetes 1.31 atau yang lebih baru, ENI trunking diaktifkan secara default.
Setelah mengaktifkan ENI trunking, komponen terway-eniip dan terway-controlplane diinstal.
Batas skala
Terway mengelola antarmuka jaringan dan alamat IP node dengan memanggil OpenAPI produk cloud. Untuk informasi tentang batas penggunaan OpenAPI, lihat dokumentasi produk cloud yang sesuai.
Mode ENI bersama: Jumlah maksimum node yang dapat dialokasikan secara paralel adalah 500.
Mode ENI eksklusif/Trunk ENI: Jumlah maksimum pod yang dapat dialokasikan secara paralel adalah 100.
Kuota ini tidak dapat disesuaikan.
Persyaratan konfigurasi bidang data
Fungsionalitas jaringan Terway sangat bergantung pada urutan tepat dan integritas konfigurasi tingkat kernel. Modifikasi yang tidak terkoordinasi terhadap hook IP Rule, IP Route, atau eBPF oleh komponen eksternal, seperti perubahan prioritas, penggantian aturan, atau pembongkaran program, dapat menyebabkan kegagalan serius, seperti gangguan jaringan pod, kegagalan kebijakan, atau pembajakan traffic. Anda harus memvalidasi secara ketat semua integrasi komponen pihak ketiga untuk menghindari konflik.
Aturan filter TC
Antarmuka | Petunjuk | Program | Prioritas | Fungsi |
ethx | toContainer | VLAN Untag | 20000 | Hapus tag VLAN |
ethx | toContainer | cil_from_netdev | 25000 | Kebijakan jaringan/service Cilium |
veth | toContainer | cil_to_container | 25000 | Kebijakan jaringan/service Cilium |
veth | fromContainer | cil_from_container | 25000 | Kebijakan jaringan/service Cilium |
ethx | fromContainer | cil_to_netdev | 25000 | Kebijakan jaringan/service Cilium |
ethx | fromContainer | VLAN Tag | 50001 | Tambahkan tag VLAN |
Aturan IP Rule
Arah | Prioritas | Tabel routing |
toContainer | 512 | 1000 + linkIndex (indeks eni) |
fromContainer | 512 | 1000 + linkIndex (indeks eni) |
FAQ
Bagaimana cara menentukan apakah Terway berada dalam mode ENI eksklusif atau mode ENI bersama?
Bisakah saya mengubah plugin CNI untuk kluster ACK yang sudah ada?
Plugin jaringan adalah komponen dasar yang dipilih saat pembuatan kluster. Untuk mengganti plugin, Anda harus membuat kluster baru dengan plugin CNI yang diinginkan dan memigrasikan beban kerja Anda.