Azure Container Networking Interface (CNI) Pod Subnet
Subnet Pod Azure CNI menetapkan alamat IP ke pod dari subnet terpisah dari Node kluster Anda. Fitur ini tersedia dalam dua mode: Alokasi IP Dinamis dan Alokasi Blok Statis (Pratinjau).
Prasyarat
Catatan
Saat menggunakan alokasi blok statis CIDR, mengekspos aplikasi sebagai Layanan Private Link menggunakan Layanan Load Balancer Kubernetes tidak didukung.
Tinjau prasyarat untuk mengonfigurasi jaringan Azure CNI dasar di AKS, karena prasyarat yang sama berlaku untuk artikel ini.
Tinjau parameter penyebaran untuk mengonfigurasi jaringan Azure CNI dasar di AKS, seperti yang berlaku parameter yang sama.
Kluster AKS Engine dan DIY tidak didukung.
Versi Azure CLI atau yang lebih
2.37.0
baru danaks-preview
versi ekstensi atau yang2.0.0b2
lebih baru.Daftarkan bendera fitur tingkat langganan untuk langganan Anda: 'Microsoft.ContainerService/AzureVnetScalePreview'.
Jika Anda memiliki kluster yang sudah ada, Anda perlu mengaktifkan Container Insights untuk memantau add-on penggunaan subnet IP. Anda dapat mengaktifkan Container Insights menggunakan perintah , seperti yang
az aks enable-addons
ditunjukkan dalam contoh berikut:az aks enable-addons --addons monitoring --name <cluster-name> --resource-group <resource-group-name>
Mode alokasi IP dinamis
Alokasi IP dinamis membantu mengurangi masalah kelelahan alamat IP pod dengan mengalokasikan IP pod dari subnet yang terpisah dari subnet yang menghosting kluster AKS.
Mode alokasi IP dinamis menawarkan manfaat berikut:
- Pemanfaatan IP yang lebih baik: IP dialokasikan secara dinamis untuk mengkluster Pod dari subnet Pod. Hal ini mengarah pada pemanfaatan IP yang lebih baik dalam kluster dibandingkan dengan solusi CNI tradisional, yang melakukan alokasi IP statik untuk setiap simpul.
- Terukur dan fleksibel: Subnet simpul dan pod dapat diskalakan secara independen. Satu subnet pod dapat dibagikan ke beberapa kumpulan simpul dari kluster atau ke beberapa kluster AKS yang disebarkan di VNet yang sama. Anda juga dapat mengonfigurasi subnet pod terpisah untuk kumpulan simpul.
- Performa tinggi: Karena pod diberi IP VNet, pod memiliki konektivitas langsung ke pod dan sumber daya kluster lain di VNet. Solusi tersebut mendukung kluster yang sangat besar tanpa degradasi performa.
- Kebijakan VNet terpisah untuk pod: Karena pod memiliki subnet terpisah, Anda dapat mengonfigurasi kebijakan VNet terpisah untuk pod yang berbeda dari kebijakan simpul. Ini memungkinkan banyak skenario yang berguna, seperti mengizinkan konektivitas internet hanya untuk pod dan bukan untuk simpul, memperbaiki IP sumber untuk Pod di kumpulan simpul menggunakan Azure NAT Gateway, dan menggunakan kelompok keamanan jaringan (NSG) untuk memfilter lalu lintas antar kumpulan simpul.
- Kebijakan jaringan Kubernetes: Kebijakan Jaringan Azure dan Calico berfungsi dengan mode ini.
Merencanakan penetapan alamat IP
Dengan alokasi IP dinamis, simpul, dan pod diskalakan secara independen, sehingga Anda dapat merencanakan ruang alamat mereka secara terpisah. Karena subnet pod dapat dikonfigurasi ke granularitas kumpulan simpul, Anda selalu dapat menambahkan subnet baru saat menambahkan kumpulan simpul. Pod sistem dalam kumpulan kluster/simpul juga menerima IP dari subnet pod, sehingga perilaku ini perlu dipertanggungjawabkan.
IP dialokasikan ke beberapa node dalam batch 16. Alokasi IP subnet Pod harus direncanakan dengan minimal 16 IP per simpul dalam kluster, karena node meminta 16 IP pada startup dan meminta batch lain sebesar 16 kapan saja ada <8 IP yang tidak dialokasikan dalam penjatahannya.
Perencanaan alamat IP untuk layanan Kubernetes dan Docker Bridge tetap tidak berubah.
Mode alokasi blok statis (Pratinjau)
Alokasi blok statis membantu mengurangi potensi ukuran subnet pod dan batasan pemetaan alamat Azure dengan menetapkan blok CIDR ke simpul daripada IP individual.
Mode alokasi blok statis menawarkan manfaat berikut:
- Skalabilitas IP yang lebih baik: Blok CIDR dialokasikan secara statis ke node kluster dan hadir untuk masa pakai simpul, dibandingkan dengan alokasi dinamis tradisional IP individu dengan CNI tradisional. Ini memungkinkan perutean berdasarkan blok CIDR dan membantu menskalakan batas kluster hingga 1 juta pod dari pod 65K tradisional per kluster. Azure Virtual Network Anda harus cukup besar untuk mengakomodasi skala kluster Anda.
- Fleksibilitas: Subnet simpul dan pod dapat diskalakan secara independen. Satu subnet pod dapat dibagikan ke beberapa kumpulan simpul dari kluster atau ke beberapa kluster AKS yang disebarkan di VNet yang sama. Anda juga dapat mengonfigurasi subnet pod terpisah untuk kumpulan simpul.
- Performa tinggi: Karena pod diberi IP jaringan virtual, pod memiliki konektivitas langsung ke pod dan sumber daya kluster lain di VNet.
- Kebijakan VNet terpisah untuk pod: Karena pod memiliki subnet terpisah, Anda dapat mengonfigurasi kebijakan VNet terpisah untuk pod yang berbeda dari kebijakan simpul. Ini memungkinkan banyak skenario yang berguna seperti mengizinkan konektivitas internet hanya untuk pod dan bukan untuk simpul, memperbaiki IP sumber untuk pod dalam kumpulan simpul menggunakan Azure NAT Gateway, dan menggunakan NSG untuk memfilter lalu lintas antar kumpulan simpul.
- Kebijakan jaringan Kubernetes: Cilium, Azure NPM, dan Calico bekerja dengan solusi ini.
Batasan
Di bawah ini adalah beberapa batasan penggunaan alokasi Blok Statis Azure CNI:
- Versi Kubernetes minimum yang diperlukan adalah 1.28
- Ukuran subnet maksimum yang didukung adalah x.x.x.x/12 ~ 1 juta IP
- Hanya satu mode operasi yang dapat digunakan per subnet. Jika subnet menggunakan mode alokasi Blok Statis, subnet tidak dapat menggunakan mode alokasi IP Dinamis dalam kluster atau kumpulan simpul yang berbeda dengan subnet yang sama dan sebaliknya.
- Hanya didukung di kluster baru atau saat menambahkan kumpulan simpul dengan subnet yang berbeda ke kluster yang ada. Memigrasikan atau memperbarui kluster atau kumpulan simpul yang ada tidak didukung.
- Di semua blok CIDR yang ditetapkan ke simpul di kumpulan simpul, satu IP akan dipilih sebagai IP utama simpul. Dengan demikian, bagi administrator jaringan yang memilih
--max-pods
nilai, coba gunakan perhitungan di bawah ini untuk melayani kebutuhan Anda dengan sebaik-baiknya dan memiliki penggunaan IP yang optimal di subnet:
max_pods = (N * 16) - 1
di mana N
adalah bilangan bulat positif dan N
> 0
Ketersediaan wilayah
Fitur ini tidak tersedia di wilayah berikut:
- AS Selatan
- AS Timur 2
- AS Barat
- US Barat 2
Merencanakan penetapan alamat IP
Dengan alokasi blok statis, simpul, dan pod diskalakan secara independen, sehingga Anda dapat merencanakan ruang alamatnya secara terpisah. Karena subnet pod dapat dikonfigurasi ke granularitas kumpulan simpul, Anda selalu dapat menambahkan subnet baru saat menambahkan kumpulan simpul. Pod sistem dalam kumpulan kluster/simpul juga menerima IP dari subnet pod, sehingga perilaku ini perlu dipertanggungjawabkan.
Blok CIDR /28 (16 IP) dialokasikan untuk simpul berdasarkan konfigurasi Anda --max-pods
untuk kumpulan simpul Anda, yang menentukan jumlah maksimum pod per simpul. 1 IP dicadangkan pada setiap node dari semua IP yang tersedia pada node tersebut untuk tujuan internal.
Saat merencanakan IP Anda, penting untuk menentukan konfigurasi Anda --max-pods
menggunakan perhitungan berikut: max_pods_per_node = (16 * N) - 1
, di mana N
adalah bilangan bulat positif yang lebih besar dari 0
.
Nilai ideal tanpa pemborongan IP akan memerlukan nilai pod maks agar sesuai dengan ekspresi di atas.
Lihat contoh kasus berikut:
Contoh kasus | max_pods |
Blok CIDR yang dialokasikan per simpul | Total IP yang tersedia untuk pod | Pemborongan IP untuk simpul |
---|---|---|---|---|
Pemborongan rendah (dapat diterima) | 30 | 2 | (16 * 2) - 1 = 32 - 1 = 31 | 31 - 30 = 1 |
Kasus ideal | 31 | 2 | (16 * 2) - 1 = 32 - 1 = 31 | 31 - 31 = 0 |
Pemborongan tinggi (tidak disarankan) | 32 | 3 | (16 * 3) - 1 = 48 - 1 = 47 | 47 - 32 = 15 |
Perencanaan alamat IP untuk layanan Kubernetes tetap tidak berubah.
Catatan
Pastikan VNet Anda memiliki ruang alamat yang cukup besar dan bersebelahan untuk mendukung skala kluster Anda.
Azure Kubernetes Service