Bagikan melalui


Menyebarkan plug-in antarmuka jaringan kontainer Azure Virtual Network

Plug-in antarmuka jaringan kontainer (CNI) Azure Virtual Network memasang di komputer virtual Azure dan menghadirkan kemampuan jaringan virtual ke Pod Kubernetes dan kontainer Docker. Untuk mempelajari selengkapnya tentang plug-in tersebut, lihat Mengaktifkan kontainer untuk menggunakan kemampuan Azure Virtual Network. Selain itu, plug-in tersebut dapat digunakan dengan Azure Kubernetes Service (AKS) dengan memilih opsi Jaringan Tingkat Lanjut, yang secara otomatis menempatkan kontainer AKS di jaringan virtual.

Menyebarkan plug-in untuk kluster Azure Container Service-Engine Kubernetes

Azure Container Service-Engine menyebarkan kluster Kubernetes dengan templat Azure Resource Manager. Konfigurasi kluster ditentukan dalam file JSON yang diteruskan ke alat saat menghasilkan template. Untuk mempelajari selengkapnya tentang seluruh daftar pengaturan kluster yang didukung dan deskripsinya, lihat Microsoft Azure Container Service Engine - Definisi Kluster. Plug-in adalah plug-in jaringan default untuk kluster yang dibuat menggunakan Azure Container Service-Engine. Pengaturan konfigurasi jaringan berikut ini penting saat mengonfigurasi plug-in:

Pengaturan Deskripsi
firstConsecutiveStaticIP Alamat IP yang dialokasikan ke simpul utama. Pengaturan ini wajib dilakukan.
clusterSubnet di bawah kubernetesConfig CIDR dari subnet jaringan virtual tempat kluster disebarkan, dan tempat asal alamat IP dialokasikan ke Pod
vnetSubnetId di bawah masterProfile Menentukan ID sumber daya Azure Resource Manager dari subnet tempat kluster akan disebarkan
vnetCidr CIDR dari jaringan virtual tempat kluster disebarkan
max-Pods di bawah kubeletConfig Jumlah maksimum Pod pada setiap komputer virtual agen. Untuk plug-in, defaultnya adalah 30. Anda dapat menentukan hingga 250

Konfigurasi contoh

Contoh json yang mengikuti adalah untuk kluster dengan properti berikut:

  • Satu simpul utama dan dua simpul agen

  • Disebarkan dalam subnet bernama KubeClusterSubnet (10.0.0.0/20), dengan simpul utama dan agen yang berada di dalamnya.

{
  "apiVersion": "vlabs",
  "properties": {
    "orchestratorProfile": {
      "orchestratorType": "Kubernetes",
      "kubernetesConfig": {
        "clusterSubnet": "10.0.0.0/20" --> Subnet allocated for the cluster
      }
    },
    "masterProfile": {
      "count": 1,
      "dnsPrefix": "ACSKubeMaster",
      "vmSize": "Standard_A2",
      "vnetSubnetId": "/subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/virtualNetworks/<Vnet Name>/subnets/KubeClusterSubnet",
      "firstConsecutiveStaticIP": "10.0.1.50", --> IP address allocated to the Master node
      "vnetCidr": "10.0.0.0/16" --> Virtual network address space
    },
    "agentPoolProfiles": [
      {
        "name": "k8sagentpoo1",
        "count": 2,
        "vmSize": "Standard_A2_v2",
"vnetSubnetId": "/subscriptions/<subscription ID>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/virtualNetworks/<VNet Name>/subnets/KubeClusterSubnet",
        "availabilityProfile": "AvailabilitySet"
      }
    ],
    "linuxProfile": {
      "adminUsername": "KubeServerAdmin",
      "ssh": {
        "publicKeys": [
          {…}
        ]
      }
    },
    "servicePrincipalProfile": {
      "clientId": "dd438987-aa12-4754-b47d-375811889714",
      "secret": "azure123"
    }
  }
}

Menyebarkan plug-in untuk kluster Kubernetes

Selesaikan langkah-langkah berikut untuk memasang plug-in pada setiap komputer virtual Azure di kluster Kubernetes:

  1. Unduh dan pasang plug-in.

  2. Pra-alokasikan kumpulan alamat IP jaringan virtual pada setiap komputer virtual tempat alamat IP ditetapkan ke Pod. Setiap komputer virtual Azure dilengkapi dengan alamat IP privat jaringan virtual utama di setiap antarmuka jaringan. Kumpulan alamat IP untuk Pod ditambahkan sebagai alamat sekunder (ipconfigs) pada antarmuka jaringan komputer virtual, menggunakan salah satu opsi berikut:

    Pastikan Anda menambahkan cukup alamat IP untuk semua Pod yang ingin Anda buka di komputer virtual.

  3. Pilih plug-in untuk menyediakan jaringan untuk kluster dengan meneruskan Kubelet –network-plugin=cni opsi command-line selama pembuatan kluster. Kubernetes, secara default, mencari plug-in dan file konfigurasi di direktori tempat mereka sudah diinstal.

  4. Jika ingin Pod Anda mengakses internet, tambahkan aturan iptables berikut pada komputer virtual Linux Anda ke lalu lintas internet source-NAT. Dalam contoh berikut, rentang IP yang ditentukan adalah 10.0.0.0/8.

    iptables -t nat -A POSTROUTING -m iprange ! --dst-range 168.63.129.16 -m
    addrtype ! --dst-type local ! -d 10.0.0.0/8 -j MASQUERADE
    

    Aturan lalu lintas NAT yang tidak ditujukan untuk rentang IP yang ditentukan. Asumsinya adalah bahwa semua lalu lintas di luar rentang sebelumnya adalah lalu lintas internet. Anda dapat memilih untuk menentukan rentang IP jaringan virtual komputer virtual, jaringan virtual yang di-peering, dan jaringan lokal.

    Komputer virtual Windows secara otomatis mencari lalu lintas NAT yang memiliki tujuan di luar subnet tempat komputer virtual berada. Tidak dimungkinkan untuk menentukan rentang IP kustom.

Setelah menyelesaikan langkah-langkah sebelumnya, Pod yang dimunculkan pada komputer virtual Agen Kubernetes secara otomatis diberi alamat IP privat dari jaringan virtual.

Menyebarkan plug-in untuk kontainer Docker

  1. Unduh dan pasang plug-in.

  2. Buat kontainer Docker dengan perintah berikut:

    ./docker-run.sh \<container-name\> \<container-namespace\> \<image\>
    

Kontainer secara otomatis mulai menerima alamat IP dari kumpulan yang dialokasikan. Jika Anda ingin memuat lalu lintas keseimbangan ke kontainer Docker, mereka harus ditempatkan di belakang load balancer perangkat lunak dengan pemeriksaan load balancer.

File konfigurasi jaringan CNI

File konfigurasi jaringan CNI dideskripsikan dalam format JSON. Secara default, ini hadir /etc/cni/net.d untuk Linux dan c:\cni\netconf untuk Windows. File tersebut menentukan konfigurasi plug-in dan berbeda untuk Windows dan Linux. Json yang mengikuti adalah contoh file konfigurasi Linux, diikuti oleh penjelasan tentang beberapa pengaturan kunci. Anda tidak perlu membuat perubahan apa pun pada file tersebut:

{
	   "cniVersion":"0.3.0",
	   "name":"azure",
	   "plugins":[
	      {
	         "type":"azure-vnet",
	         "mode":"bridge",
	         "bridge":"azure0",
	         "ipam":{
	            "type":"azure-vnet-ipam"
	         }
	      },
	      {
	         "type":"portmap",
	         "capabilities":{
	            "portMappings":true
	         },
	         "snat":true
	      }
	   ]
}

Penjelasan pengaturan

  • "cniVersion": Plug-in CNI Azure Virtual Network mendukung versi 0.3.0 dan 0.3.1 dari spesifikasi CNI.

  • "name": Nama jaringan. Properti ini dapat diatur ke nilai unik apa pun.

  • "type": Nama plug-in jaringan. Atur ke azure-vnet.

  • "mode": Mode operasional. Bidang ini bersifat opsional. Satu-satunya mode yang didukung adalah "bridge". Untuk informasi selengkapnya, lihat mode operasional.

  • "bridge": Nama jembatan yang digunakan untuk menyambungkan kontainer ke jaringan virtual. Bidang ini bersifat opsional. Jika dihilangkan, plugin secara otomatis memilih nama unik, berdasarkan indeks antarmuka utama.

  • "ipam" - "type": Nama plug-in IPAM. Selalu atur ke azure-vnet-ipam.

Unduh dan pasang plug-in

Unduh plug-in dari GitHub. Unduh versi terbaru untuk platform yang Anda gunakan:

Salin skrip pemasangan untuk Linux atau Windows ke komputer Anda. Simpan skrip ke scripts direktori di komputer Anda dan beri nama file install-cni-plugin.sh untuk Linux, atau install-cni-plugin.ps1 untuk Windows.

Untuk menginstal plug-in, jalankan skrip yang sesuai untuk platform Anda, menentukan versi plug-in yang Anda gunakan. Misalnya, Anda bisa menentukan v1.4.20. Untuk penginstalan Linux, berikan versi plugin CNI yang sesuai, seperti v1.0.1:

scripts/install-cni-plugin.sh [azure-cni-plugin-version] [cni-plugin-version]
scripts\\ install-cni-plugin.ps1 [azure-cni-plugin-version]

Skrip memasang plug-in di bawah /opt/cni/bin untuk Linux dan c:\cni\binuntuk Windows. Plug-in yang dipasang dilengkapi dengan file konfigurasi jaringan sederhana yang berfungsi setelah pemasangan. Tidak perlu diperbarui. Untuk mempelajari selengkapnya tentang pengaturan dalam file tersebut, lihat file konfigurasi jaringan CNI.