Membawa plugin Antarmuka Jaringan Kontainer (CNI) Anda sendiri dengan Azure Kubernetes Service (AKS)
Kubernetes tidak menyediakan sistem antarmuka jaringan secara default. Sebaliknya, plugin jaringan menyediakan fungsionalitas ini. Azure Kubernetes Service (AKS) menyediakan beberapa plugin CNI yang didukung. Untuk informasi tentang plugin yang didukung, lihat konsep jaringan AKS.
Plugin yang didukung memenuhi sebagian besar kebutuhan jaringan di Kubernetes. Namun, pengguna AKS tingkat lanjut mungkin menginginkan plugin CNI yang sama yang digunakan di lingkungan Kubernetes lokal atau untuk 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 kemudian dapat menginstal plugin CNI pihak ketiga yang berfungsi di Azure.
Dukungan Microsoft tidak dapat membantu masalah terkait CNI dalam kluster yang disebarkan dengan Bring your own Container Network Interface (BYOCNI). Misalnya, masalah terkait CNI akan mencakup sebagian besar lalu lintas timur/barat (pod ke pod), bersama dengan kubectl proxy
dan perintah serupa. Jika Anda menginginkan dukungan terkait CNI, gunakan plugin jaringan AKS yang didukung atau cari dukungan dari vendor pihak ketiga plugin BYOCNI.
Dukungan masih disediakan untuk masalah terkait non-CNI.
- Untuk Azure Resource Manager (ARM) 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 boleh menggunakan
169.254.0.0/16
,172.30.0.0/16
,172.31.0.0/16
, atau192.0.2.0/24
untuk rentang alamat layanan Kubernetes, rentang alamat pod, atau rentang alamat jaringan virtual kluster. - Identitas kluster yang digunakan oleh 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/action
Microsoft.Network/virtualNetworks/subnets/read
- Subnet yang ditetapkan ke kumpulan simpul AKS tidak dapat menjadi 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 NSG yang terkait dengan subnet tersebut, Anda harus memastikan aturan keamanan di NSG mengizinkan lalu lintas dalam rentang CIDR node. Untuk informasi selengkapnya, lihat Kelompok keamanan jaringan.
Buat grup sumber daya Azure untuk kluster AKS Anda menggunakan
az group create
perintah .az group create --location eastus --name myResourceGroup
Buat kluster AKS menggunakan
az aks create
perintah . Teruskan--network-plugin
parameter dengan nilainone
parameter .az aks create \ --location eastus \ --resource-group myResourceGroup \ --name myAKSCluster \ --network-plugin none \ --generate-ssh-keys
Setelah provisi AKS selesai, kluster online, tetapi semua simpul dalam keadaan NotReady
, 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.
Pelajari selengkapnya tentang jaringan di AKS di artikel berikut ini:
Umpan balik Azure Kubernetes Service
Azure Kubernetes Service adalah proyek sumber terbuka. Pilih tautan untuk memberikan umpan balik: