Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kubernetes tidak menyediakan sistem antarmuka jaringan secara default. Sebaliknya, plugin jaringan menyediakan fungsionalitas ini. Azure Kubernetes Service (AKS) menyediakan beberapa plugin Container Network Interface (CNI) yang didukung. Untuk informasi tentang plugin yang didukung, lihat konsep Networking untuk aplikasi di Azure Kubernetes Service.
Plugin yang didukung memenuhi sebagian besar kebutuhan jaringan di Kubernetes. Namun, pengguna AKS tingkat lanjut mungkin menginginkan plugin CNI yang sama dengan yang mereka gunakan di lingkungan Kubernetes lokal. Atau pengguna ini mungkin ingin menggunakan fungsionalitas tingkat lanjut yang tersedia di plugin CNI lainnya.
Artikel ini menunjukkan cara menyebarkan kluster AKS tanpa plugin CNI yang telah diinstal sebelumnya. Dari sana, Anda dapat menginstal plugin CNI apa pun yang berfungsi di Azure.
Dukungan
dukungan Microsoft tidak dapat membantu dengan masalah yang terkait dengan CNI dalam kluster yang Anda sebarkan dengan menggunakan plugin CNI buatan sendiri. Misalnya, masalah terkait CNI akan mencakup sebagian besar lalu lintas timur/barat (pod ke pod), serta kubectl proxy dan perintah-perintah serupa. Jika Anda menginginkan dukungan terkait CNI, gunakan plugin jaringan AKS yang didukung atau cari dukungan dari vendor plugin CNI.
Microsoft masih menyediakan dukungan untuk masalah yang tidak terkait dengan CNI.
Pertimbangan perencanaan alamat IP
Saat menggunakan plugin Bring Your Own CNI (BYO CNI) dengan AKS, tanggung jawab perencanaan alamat IP dibagi antara AKS dan CNI yang dikelola pelanggan. Tidak seperti plugin CNI yang dikelola AKS, AKS tidak mengalokasikan atau mengelola alamat IP pod saat BYO CNI digunakan.
Nota
Artikel perencanaan alamat IP untuk kluster Azure Kubernetes Service (AKS) Anda berfokus pada plugin jaringan yang dikelola AKS. Dalam skenario BYO CNI, hanya panduan yang terkait dengan ukuran subnet simpul, perilaku peningkatan dan penskalaan, dan rentang alamat layanan Kubernetes yang berlaku. Alokasi alamat IP Pod, perutean, dan perilaku penskalaan ditentukan oleh plugin CNI yang dipilih.
Ukuran jaringan virtual dan subnet
AKS masih memerlukan jaringan virtual dan subnet untuk menghosting node kluster. Ukuran subnet harus memperhitungkan:
- Jumlah maksimum simpul per kumpulan simpul
- Simpul tambahan yang diperlukan untuk operasi peningkatan dan penskalaan, seperti peningkatan sementara
- Sumber daya Azure yang mengalokasikan alamat IP dari subnet di jaringan virtual, seperti penyeimbang beban internal.
Operasi peningkatan dan penskalaan AKS tetap berbasis node. Selama operasi ini, AKS mungkin untuk sementara menyediakan simpul tambahan, sehingga subnet harus cukup besar untuk mengakomodasi jumlah simpul maksimum.
Alamat IP Pod tidak dialokasikan dari subnet AKS saat menggunakan BYO CNI kecuali diimplementasikan secara eksplisit oleh plugin CNI.
Rentang alamat Layanan Kubernetes
Semua kluster AKS, termasuk yang menggunakan BYO CNI, memerlukan rentang alamat layanan Kubernetes (serviceCIDR) dan alamat IP layanan DNS (dnsServiceIP). Batasan berikut berlaku:
- Rentang alamat layanan tidak boleh tumpang tindih dengan jaringan virtual atau jaringan yang terhubung.
- CIDR layanan harus lebih kecil dari /12.
- IP layanan DNS harus berada dalam rentang CIDR layanan dan tidak boleh menjadi alamat IP pertama dalam rentang.
Persyaratan ini tidak bergantung pada plugin CNI.
Nota
Dimulai dengan Kubernetes 1.33, Anda dapat memperluas rentang IP layanan setelah pembuatan kluster menggunakan ServiceCIDR sumber daya Kubernetes. Untuk informasi selengkapnya, lihat Memperluas Rentang IP Layanan dalam dokumentasi Kubernetes.
Jaringan pod dan manajemen IP
Dengan BYO CNI, manajemen alamat IP pod (IPAM), perutean, dan perilaku penskalakan ditentukan oleh plugin CNI.
AKS tidak:
- Mengalokasikan alamat IP untuk pod
- Menetapkan rentang CIDR untuk pod per node
- Menerapkan penggunaan kembali IP pada pod atau perilaku pembebasan
Panduan yang terkait dengan model jaringan overlay atau datar, ukuran CIDR pod per simpul, atau rumus ukuran subnet yang mencakup jumlah pod tidak berlaku untuk skenario BYO CNI.
Jumlah maksimum polong per simpul
AKS menerapkan jumlah maksimum pod per simpul yang dapat dikonfigurasi (maxPods) pada tingkat kubelet. Saat menggunakan BYO CNI, pengaturan ini membatasi kepadatan penjadwalan pod tetapi tidak menentukan kapasitas IP. Anda bertanggung jawab untuk memastikan bahwa plugin CNI yang dipilih dapat mendukung kepadatan pod dan skala kluster yang dikonfigurasi.
Prasyarat
- Untuk Azure Resource Manager atau Bicep, gunakan setidaknya templat versi 2022-01-02-preview atau 2022-06-01.
- Untuk Azure CLI, gunakan setidaknya versi 2.39.0.
- Jaringan virtual untuk kluster AKS harus memungkinkan konektivitas internet keluar.
- Kluster AKS tidak dapat menggunakan
169.254.0.0/16, ,172.30.0.0/16172.31.0.0/16, atau192.0.2.0/24untuk rentang alamat untuk layanan Kubernetes, pod, atau jaringan virtual kluster. - Identitas kluster yang digunakan kluster AKS harus memiliki setidaknya izin Kontributor Jaringan pada subnet dalam jaringan virtual Anda. Jika Anda ingin menentukan peran kustom alih-alih menggunakan peran Kontributor Jaringan bawaan, izin berikut diperlukan:
Microsoft.Network/virtualNetworks/subnets/join/actionMicrosoft.Network/virtualNetworks/subnets/read
- Subnet yang ditetapkan ke kumpulan simpul AKS harus bukan subnet yang didelegasikan.
- AKS tidak menerapkan kelompok keamanan jaringan (NSG) ke subnetnya atau memodifikasi salah satu NSG yang terkait dengan subnet tersebut. Jika Anda menyediakan subnet Anda sendiri dan menambahkan Network Security Group (NSG) yang terkait dengan subnet tersebut, Anda harus memastikan bahwa aturan keamanan di NSG mengizinkan lalu lintas dalam rentang Classless Inter-Domain Routing (CIDR) milik simpul. Untuk informasi selengkapnya, lihat Kelompok keamanan jaringan.
- AKS tidak membuat tabel rute di jaringan virtual terkelola.
- Anda harus menentukan POD CIDR (rentang alamat IP untuk pod). Pesawat kendali AKS menggunakan rentang ini untuk mengarahkan lalu lintas internal ke pod, meskipun penugasan IP pod akan dikelola oleh CNI khusus Anda. Jika tidak ada POD CIDR yang disediakan, sarana kontrol ke komunikasi pod mungkin gagal atau salah rute. Anda harus memilih CIDR pod yang tidak bertentangan dengan jaringan lain di lingkungan Anda dan menghindari rentang cadangan Azure, seperti,
169.254.0.0/16,172.30.0.0/16,172.31.0.0/16, atau192.0.2.0/24. Misalnya, Anda mungkin menggunakan rentang seperti10.XX.0.0/16yang unik untuk kluster Anda. Ini memastikan bahwa rencana kendali dapat merutekan langsung ke IP pod pada node Anda, dan tidak ada tumpang tindih IP yang terjadi jika Anda berintegrasi dengan jaringan atau kluster lain.
Membuat kluster AKS tanpa plugin CNI yang telah diinstal sebelumnya
Buat grup sumber daya Azure untuk kluster AKS Anda dengan menggunakan perintah
az group create.az group create --location eastus --name myResourceGroupBuat kluster AKS dengan menggunakan
az aks createperintah . Teruskan parameter--network-plugindengan nilai darinone.az aks create \ --location eastus \ --resource-group myResourceGroup \ --name myAKSCluster \ --network-plugin none \ --pod-cidr "10.10.0.0/16" \ --generate-ssh-keys
Menyebarkan plugin CNI
Setelah provisi AKS selesai, kluster sudah online. Tetapi semua simpul berada dalam NotReady status, seperti yang ditunjukkan dalam contoh berikut:
$ kubectl get nodes
NAME STATUS ROLES AGE VERSION
aks-nodepool1-23902496-vmss000000 NotReady agent 6m9s v1.21.9
$ kubectl get node -o custom-columns='NAME:.metadata.name,STATUS:.status.conditions[?(@.type=="Ready")].message'
NAME STATUS
aks-nodepool1-23902496-vmss000000 container runtime network not ready: NetworkReady=false reason:NetworkPluginNotReady message:Network plugin returns error: cni plugin not initialized
Pada titik ini, kluster siap untuk menginstal plugin CNI.