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

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.

Prasyarat

  • 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, atau 192.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.

Membuat kluster AKS tanpa plugin CNI yang telah diinstal sebelumnya

  1. Buat grup sumber daya Azure untuk kluster AKS Anda menggunakan az group create perintah .

    az group create -l eastus -n myResourceGroup
    
  2. Buat kluster AKS menggunakan az aks create perintah . Teruskan --network-plugin parameter dengan nilai noneparameter .

    az aks create -l eastus -g myResourceGroup -n myAKSCluster --network-plugin none
    

Menyebarkan plugin CNI

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.

Langkah berikutnya

Pelajari selengkapnya tentang jaringan di AKS di artikel berikut ini: