Tetapkan ENI eksklusif ke setiap Pod untuk mencapai throughput tinggi, latensi ultra-rendah, dan dukungan multicast.
Batasan
-
Instans ECS memerlukan Terway v1.11.0 atau yang lebih baru; instans Lingjun memerlukan v1.14.3 atau yang lebih baru. Lihat Terway untuk melakukan peningkatan.
-
Jika dual-stack diaktifkan, penambahan node mengikuti batasan tipe instans yang sama seperti pada mode ENI bersama: jumlah alamat IPv4 (primary dan secondary) harus sama dengan jumlah alamat IPv6. Lihat instance family untuk informasi jumlah yang didukung.
-
Instans Lingjun tidak mendukung dual-stack.
-
Pod yang diberi ENI eksklusif tidak mendukung akselerasi jaringan eBPF atau Kubernetes NetworkPolicy.
-
Mode ENI eksklusif memerlukan node baru. Node yang sudah ada dan ditambahkan ke kelompok tersebut tidak menggunakan ENI eksklusif.
-
Mode ENI eksklusif hanya berlaku untuk node baru. Anda tidak dapat beralih antara mode ENI bersama dan eksklusif setelah kelompok node dibuat.
-
Anda tidak dapat mengonfigurasi rantai CNI kustom.
Konfigurasikan jaringan kontainer di tingkat kelompok node
Terway menyediakan mode ENI eksklusif sebagai opsi jaringan di tingkat kelompok node. Lihat Shared ENI mode and exclusive ENI mode.
1. Rencanakan kelompok node ENI eksklusif
-
Dalam mode ENI eksklusif, setiap node mendukung lebih sedikit Pod dan memerlukan lebih dari enam ENI. Lihat instance family untuk informasi jumlah ENI per tipe instans.
-
Rencanakan vSwitch dan security group untuk Pod Anda.
Terway mendukung metode konfigurasi berikut dengan prioritas menurun:
-
Mengonfigurasi alamat IP tetap, virtual switch independen, dan security group untuk sebuah Pod
-
Konfigurasi default klaster: Menyesuaikan parameter konfigurasi Terway
PentingSertakan vSwitch untuk setiap zona node. Jika tidak, pembuatan Pod akan gagal.
Kelompok node Lingjun tidak mendukung mengonfigurasi alamat IP tetap, vSwitch independen, dan security group untuk sebuah Pod.
2. Buat kelompok node ENI eksklusif dan verifikasi konfigurasinya
-
Ikuti panduan Create and manage node pools untuk membuat kelompok node, lalu tambahkan label
k8s.aliyun.com/exclusive-mode-eni-type: eniOnlyke node.Tambahkan juga taint untuk mencegah penjadwalan Pod yang tidak memerlukan ENI eksklusif ke kelompok ini.
PentingTambahkan label tersebut saat pembuatan kelompok node. Node yang sudah ada tidak dapat beralih ke mode ENI eksklusif. Jika label salah, hapus dan buat ulang kelompok node tersebut.
-
Kueri sumber daya yang dapat dialokasikan pada sebuah node untuk memverifikasi bahwa mode ENI eksklusif telah diaktifkan:
kubectl describe node <node-name>Output yang diharapkan:
Capacity: aliyun/eni: 7 cpu: 16 ephemeral-storage: 123460788Ki hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 31555380Ki pods: 213 Allocatable: aliyun/eni: 7 cpu: 15890m ephemeral-storage: 113781462033 hugepages-1Gi: 0 hugepages-2Mi: 0 memory: 28587828Ki pods: 213Bidang
aliyun/enimengonfirmasi bahwa mode ENI eksklusif telah diaktifkan.
3. Jadwalkan Pod ke kelompok node ENI eksklusif
Gunakan NodeAffinity atau resource kustom PodNetworking untuk menjadwalkan Pod ke kelompok node ENI eksklusif.
-
NodeAffinity: Tidak mendukung konfigurasi tingkat Pod seperti IP tetap, vSwitch independen, atau security group.
-
PodNetworking: Mendukung konfigurasi vSwitch, security group, dan IP tetap tingkat Pod. Lihat Configure a fixed IP address, an independent virtual switch, and a security group for a pod.
Atur
eniTypekeENIdalam bidangeniOptionsuntuk menjadwalkan Pod ke kelompok node ENI eksklusif. Contoh:apiVersion: network.alibabacloud.com/v1beta1 kind: PodNetworking metadata: name: enionly spec: eniOptions: eniType: ENI allocationType: type: Elastic selector: podSelector: matchLabels: network: enionly
FAQ
Memverifikasi ENI eksklusif sebuah Pod
Terway secara otomatis membuat resource PodENI dengan nama dan namespace yang sama dengan Pod tersebut untuk mencatat konfigurasi jaringannya.
Kueri resource tersebut:
kubectl get podeni nginx-9d557694f-rcdzs -oyaml
Output yang diharapkan:
apiVersion: network.alibabacloud.com/v1beta1
kind: PodENI
metadata:
annotations:
k8s.aliyun.com/pod-uid: 05590939-fc51-47ab-a204-3dd187233bca
creationTimestamp: "2024-09-13T08:09:27Z"
finalizers:
- pod-eni
generation: 1
labels:
k8s.aliyun.com/node: cn-hangzhou.172.XX.XX.25
name: example-9d557694f-rcdzs
namespace: default
resourceVersion: "1131123"
spec:
allocations:
- allocationType:
type: Elastic
eni:
attachmentOptions: {}
id: eni-xxxx
mac: 00:16:3e:37:xx:xx
securityGroupIDs:
- sg-xxxx
vSwitchID: vsw-xxxx
zone: cn-hangzhou-j
ipv4: 172.16.0.30
ipv4CIDR: 172.16.0.0/24
ipv6: 2408:4005:xxxx:xxxx:xxxx:xxxx:xxxx:9ad4
ipv6CIDR: 2408:4005:39c:xxxx::/64
zone: cn-hangzhou-j
status:
eniInfos:
eni-xxxx:
id: eni-xxxx
status: Bind
type: Secondary
instanceID: i-xxxx
phase: Bind