Bagikan melalui


Menyebarkan kluster Kubernetes ke jaringan virtual kustom di Azure Stack Hub

Anda dapat menyebarkan kluster Kubernetes menggunakan mesin Azure Kubernetes Service (AKS) pada jaringan virtual kustom. Artikel ini menjelaskan cara menemukan informasi yang Anda butuhkan di jaringan virtual Anda. Artikel ini berisi langkah-langkah untuk menghitung alamat IP yang digunakan oleh kluster Anda, mengatur val di Model API, dan mengatur tabel rute dan grup keamanan jaringan.

Kluster Kubernetes di Azure Stack Hub menggunakan mesin AKS menggunakan plugin jaringan kubenet. Mesin AKS di Azure Stack Hub juga mendukung plugin jaringan Azure CNI.

Pertimbangan saat membuat jaringan virtual kustom

  • VNET kustom harus berada dalam langganan yang sama dengan semua komponen lain kluster Kubernetes.
  • Kumpulan sarana kontrol simpul dan kumpulan simpul agen harus berada di jaringan virtual yang sama. Anda dapat menyebarkan node Anda ke subnet yang berbeda dalam jaringan virtual yang sama.
  • Subnet kluster Kubernetes harus menggunakan rentang IP dalam ruang rentang IP jaringan virtual kustom. Lihat dan dapatkan blok alamat IP.
  • Pertimbangkan bahwa ukuran subnet simpul yang direkomendasikan tergantung pada jenis plugin jaringan yang digunakan. Sebagai panduan umum, Azure CNI memerlukan jumlah alamat IP yang lebih besar untuk subnet yang mendukung kumpulan node agen daripada kubenet. Lihat contoh kubenet dan Azure CNI berikut ini.
  • Ruang alamat 169.254.0.0/16 tidak dapat digunakan untuk VNET kustom untuk kluster Kubernetes.

Membuat jaringan virtual kustom

Anda harus memiliki jaringan virtual kustom di instans Azure Stack Hub Anda. Untuk informasi selengkapnya, lihat Mulai Cepat: Membuat jaringan virtual menggunakan portal Azure.

Buat subnet baru di jaringan virtual Anda. Anda harus mendapatkan ID Sumber Daya subnet dan rentang alamat IP, yang Anda gunakan dalam model API saat menyebarkan kluster:

  1. Buka portal pengguna Azure Stack Hub di instans Azure Stack Hub Anda.

  2. Pilih Semua suber daya.

  3. Masukkan nama jaringan virtual Anda di kotak pencarian.

  4. Pilih Subnet>+ Subnet untuk menambahkan subnet.

  5. Tambahkan nama dan Rentang alamat menggunakan notasi CIDR. Pilih OK.

  6. Pilih Properti di bilah Jaringan virtual. Salin ID Sumber Daya, lalu tambahkan /subnets/<nameofyoursubnect>. Anda menggunakan nilai ini sebagai nilai Anda untuk kunci vnetSubnetId dalam model API untuk kluster Anda. ID Sumber Daya untuk subnet menggunakan format berikut: /subscriptions/SUB_ID/resourceGroups/RG_NAME/providers/Microsoft.Network/virtualNetworks/VNET_NAME/subnets/SUBNET_NAME.

    ID Sumber Daya jaringan virtual

  7. Pilih Subnet di bilah Jaringan virtual. Pilih nama subnet, misalnya control-plane-sn. Jangan kaitkan subnet ke grup keamanan jaringan (NSG).

    blok CIDR jaringan virtual

  8. Dalam bilah subnet, buat catatan rentang alamat (Blok CIDR) dari setiap subnet.

Pertimbangan untuk memilih ruang alamat

Saat Anda membuat jaringan virtual kustom, Anda menentukan ruang alamat IP jaringan Anda dan rentang alamat IP untuk setiap subnet. Pertimbangkan faktor-faktor berikut ketika Anda memilih ruang alamat dan rentang untuk digunakan dalam kluster Kubernetes Anda:

  • Ruang alamat yang tumpang tindih dapat mengakibatkan bentrokan alamat IP atau kesalahan komunikasi. Untuk mengurangi risiko alamat IP yang tumpang tindih, pilih ruang alamat yang unik untuk jaringan virtual baru Anda.
  • Ruang alamat di rentang 10/8, 172.16/12, dan 192.168/16 sering digunakan untuk jaringan privat, dan mereka dapat digunakan oleh infrastruktur pusat data yang ada. Jika aplikasi Kubernetes Anda menggunakan sumber daya di pusat data Anda, kurangi risiko bentrokan dengan memilih ruang alamat untuk jaringan virtual kustom Anda yang berbeda dari ruang alamat pusat data Anda.
  • Sebaiknya gunakan subnet khusus untuk kluster Kubernetes Anda.
  • Jika Anda menggunakan beberapa jaringan virtual yang ada, pertimbangkan untuk menggunakan ruang alamat yang berbeda di setiap jaringan jika Anda ingin menggunakan peering jaringan virtual. Ruang alamat yang tumpang tindih dapat mengganggu kemampuan Anda untuk mengaktifkan peering.

Mendapatkan blok alamat IP

Mesin AKS mendukung penyebaran pada jaringan virtual yang ada. Saat disebarkan pada jaringan virtual yang ada, kluster Anda menggunakan blok alamat berturut-turut untuk simpul agen, node sarana kontrol, layanan kluster, dan kontainer (pod). Setiap blok alamat dapat diterjemahkan ke dalam subnet dalam jaringan virtual. Semua blok alamat dalam penyebaran kluster harus menjadi bagian dari ruang alamat jaringan virtual secara keseluruhan. Memilih blok alamat di luar ruang alamat jaringan virtual dapat mengakibatkan masalah konektivitas.

Minimal tiga blok alamat diperlukan saat menyiapkan kluster Kubernetes:

  • Blok alamat node: Blok alamat yang digunakan untuk menetapkan alamat ke node kluster. Nilai ini dapat menjadi blok alamat tunggal untuk semua node kluster, atau dapat berupa blok terpisah (subnet) untuk sarana kontrol dan kumpulan agen. Pertimbangkan jumlah node di kluster Anda saat memilih rentang alamat untuk blok ini. Untuk Azure CNI, simpul dan kontainer mendapatkan alamat mereka dari blok alamat yang sama dengan demikian memperhitungkan jumlah kontainer yang ingin Anda sebarkan ke kluster Anda saat memilih rentang alamat saat menggunakan Azure CNI.
  • Blok alamat layanan: Blok alamat dari mana layanan yang diterapkan ke kluster Kubernetes mendapatkan alamat kluster mereka. Pertimbangkan jumlah maksimum layanan yang ingin Anda jalankan di kluster Anda saat memilih rentang alamat untuk blok ini.
  • Blok alamat kluster: Blok alamat dari mana pod mendapatkan alamat kluster mereka. Pertimbangkan jumlah maksimum pod yang ingin Anda jalankan di kluster Anda saat memilih rentang alamat untuk blok ini. Seperti disebutkan sebelumnya, untuk Azure CNI, blok alamat kluster dan node adalah sama.

Selain blok alamat, untuk simpul sarana kontrol, Anda harus mengatur dua nilai lagi. Anda perlu mengetahui jumlah alamat IP yang perlu dicadangkan bagi kluster Anda, dan IP statis pertama yang berturut-turut dalam ruang IP subnet. Mesin AKS memerlukan rentang hingga 16 alamat IP yang tidak digunakan saat Anda menggunakan beberapa simpul sarana kontrol. Kluster menggunakan satu alamat IP untuk setiap sarana kontrol hingga lima node sarana kontrol. Mesin AKS juga memerlukan 10 alamat IP berikutnya setelah node bidang kontrol terakhir untuk reservasi alokasi alamat IP cadangan. Terakhir, alamat IP lain digunakan oleh load balancer setelah simpul pesawat kontrol dan pemesanan ruang cadangan, sehingga jumlah totalnya menjadi 16. Saat menempatkan blok alamat IP Anda, subnet memerlukan alokasi berikut dari alamat IP yang ada:

  • Empat alamat IP pertama dan alamat IP terakhir dicadangkan dan tidak dapat digunakan di subnet Azure mana pun.
  • Buffer 16 alamat IP harus dibiarkan terbuka.
  • Nilai alamat IP pertama kluster Anda harus menuju akhir ruang alamat untuk menghindari konflik IP. Jika memungkinkan, tetapkan firstConsecutiveStaticIP properti ke alamat IP di dekat akhir ruang alamat IP yang tersedia di subnet.

Misalnya, untuk kluster dengan tiga node sarana kontrol, jika menggunakan subnet dengan 256 alamat, misalnya 10.100.0.0/24, Anda harus mengatur alamat IP statis pertama Anda berturut-turut sebelum 239. Tabel berikut menunjukkan alamat dan pertimbangan:

Rentang untuk subnet /24 Number Catatan
172.100.0.0 - 172.100.0.3 4 Direservasi pada subnet Azure.
172.100.0.224-172.100.0.238 14 Jumlah alamat IP untuk kluster yang ditentukan mesin AKS.

3 alamat IP untuk 3 simpul sarana kontrol
10 alamat IP untuk headroom
1 alamat IP untuk penyeimbang muatan
172.100.0.238 - 172.100.0.254 16 Buffer 16 alamat IP.
172.100.0.255 1 Direservasi pada subnet Azure.

Dalam contoh ini, properti firstConsecutiveStaticIP, 172.100.0.224.

Untuk subnet yang lebih besar; misalnya /16 dengan lebih dari 60 ribu alamat, Anda mungkin tidak merasa praktis untuk mengatur penetapan IP statis Anda ke akhir ruang jaringan. Atur rentang alamat IP statik kluster Anda dari 24 alamat pertama di ruang IP Anda sehingga kluster dapat tangguh saat mengklaim alamat.

Contoh blok alamat Kubenet

Dalam contoh berikut ini, Anda dapat melihat bagaimana berbagai pertimbangan dalam mengisi ruang alamat di jaringan virtual untuk kluster. Ia menggunakan plugin jaringan kubenet dengan subnet khusus untuk kumpulan simpul sarana kontrol serta agen dengan tiga simpul per kumpulan.

Ruang alamat VNET: 10.100.0.0/16.

Blok alamat (subnet) CIDR Rentang IP Jumlah IP (tersedia)
Blok simpul sarana kontrol 10.100.0.0/24 10.100.0.0 - 10.100.0.255 255 - 4 cadangan = 251
Blok node agen 10.100.1.0/24 10.100.1.0 - 10.100.1.255 255 - 4 cadangan = 251
Blok layanan 10.100.16.0/20 10.100.16.0 - 10.100.31.255 4.096 - 5 cadangan = 4.091
Blok kluster 10.100.128.0/17 10.100.128.0 - 10.100.255.255 32.768 - 5 cadangan = 32.763

Dalam contoh ini, properti firstConsecutiveStaticIP adalah 10.100.0.239.

Contoh blok alamat Azure CNI

Dalam contoh berikut ini, Anda dapat melihat bagaimana berbagai pertimbangan dalam mengisi ruang alamat pada jaringan virtual untuk kluster. Ia menggunakan plugin jaringan Azure CNI dengan subnet khusus untuk kumpulan simpul sarana kontrol dan agen dengan tiga simpul per kumpulan.

Ruang alamat VNET: 172.24.0.0/16.

Catatan

Di lingkungan Anda, jika rentang IP publik berada dalam CIDR10.0.0.0/8, gunakan kubenet sebagai plugin jaringan.

Blok alamat (subnet) CIDR Rentang IP Jumlah IP (tersedia)
Blok simpul sarana kontrol 172.24.0.0/24 172.24.0.0 - 172.24.0.255 255 - 4 cadangan = 251
Simpul agen & blok kluster 172.24.128.0/17 172.24.128.0 - 172.24.255.255 32.768 - 5 cadangan = 32.763
Blok layanan 172.24.16.0/20 172.24.16.0 - 172.24.31.255 4.096 - 5 cadangan = 4.091

Dalam contoh ini, properti firstConsecutiveStaticIP akan menjadi 172.24.0.239.

Memperbarui model API

Perbarui model API yang digunakan untuk menyebarkan kluster dari mesin AKS ke jaringan virtual kustom Anda.

DimasterProfile , atur nilai berikut:

Bidang Contoh Deskripsi
vnetSubnetId /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn Tentukan subnet ID jalur Azure Resource Manager. Nilai ini dipetakan ke blok alamat simpul lapisan pengendalian.
firstConsecutiveStaticIP 10.100.0.239 Tetapkan ke properti konfigurasi firstConsecutiveStaticIP alamat IP yang berada di dekat akhir ruang alamat IP yang tersedia di subnet yang diinginkan. firstConsecutiveStaticIP hanya berlaku pada kumpulan simpul sarana kontrol.

Di agentPoolProfiles, atur nilai berikut:

Bidang Contoh Deskripsi
vnetSubnetId /subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/agents-sn Tentukan subnet ID jalur Azure Resource Manager. Nilai ini dipetakan ke blok alamat simpul-simpul agen.

Di orchestratorProfile, temukan kubernetesConfig dan atur nilai berikut:

Bidang Contoh Deskripsi
clusterSubnet 10.100.128.0/17 Subnet IP yang digunakan untuk mengalokasikan alamat IP untuk antarmuka jaringan pod. Nilai ini dipetakan ke dalam blok alamat kluster. Subnet harus berada di ruang alamat VNET. Dengan Azure CNI diaktifkan, nilai defaultnya adalah 10.240.0.0/12. Tanpa Azure CNI, nilai defaultnya adalah 10.244.0.0/16. Gunakan /16 sebagai ganti subnet /24. Jika Anda menggunakan /24, maka subnet ini hanya ditetapkan pada satu simpul saja. Simpul lain tidak mendapatkan jaringan POD yang ditetapkan, karena Anda kehabisan ruang IP, sehingga tidak siap di kluster.
serviceCidr 10.100.16.0/20 Subnet IP digunakan untuk mengalokasikan alamat IP untuk layanan yang digunakan dalam kluster. Nilai ini dihubungkan dengan blok layanan klaster.
dnsServiceIP 10.100.16.10 Alamat IP yang akan ditetapkan ke layanan DNS kluster. Alamat harus berasal dari subnet serviceCidr. Nilai ini harus diatur saat menentukan serviceCidr. Nilai defaultnya adalah alamat .10 subnet serviceCidr.

Misalnya, jika menggunakan kubenet:
Dengan ruang alamat jaringan 10.100.0.0/16 di mana subnet untuk control-plane-sn adalah 10.100.0.0/24 dan agents-sn adalah 10.100.1.0/24

"masterProfile": {
  ...
  "vnetSubnetId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn",
  "firstConsecutiveStaticIP": "10.100.0.239",
  ...
},
...
"agentPoolProfiles": [
  {
    ...
    "vnetSubnetId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/agents-sn",
    ...
  },
    ...
"kubernetesConfig": [
  {
    ...
    "clusterSubnet": "10.100.128.0/17",
    "serviceCidr": "10.100.16.0/20",
    "dnsServiceIP" : "10.100.16.10",

    ...
  },

Misalnya, jika Anda menggunakan Azure CNI dengan ruang alamat jaringan 172.24.0.0/16 di mana subnet untuk control-plane-sn adalah 172.24.0.0/24 dan k8s-sn adalah 172.24.128.0/17:

"masterProfile": {
  ...
  "vnetSubnetId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn",
  "firstConsecutiveStaticIP": "172.24.0.239",
  ...
},
...
"agentPoolProfiles": [
  {
    ...
    "vnetSubnetId": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/k8s-sn",
    ...
  },
    ...
"kubernetesConfig": [
  {
    ...
    "clusterSubnet": "172.24.128.0/17",
    "serviceCidr": "172.24.16.0/20",
    "dnsServiceIP" : "172.24.16.10",
    ...
  },

Menyebarkan kluster Anda

Setelah menambahkan nilai ke model API, Anda dapat menyebarkan kluster dari komputer klien menggunakan perintah deploy di mesin AKS. Untuk mengetahui petunjuknya, lihat Menyebarkan kluster Kubernetes.

Mengatur tabel rute

Jika Anda menggunakan kubenet, misalnya, networkPlugin: kubenet dalam kubernetesConfig objek konfigurasi model API. Setelah Anda menyebarkan kluster Anda, kembali ke jaringan virtual Anda di portal pengguna Azure Stack. Atur tabel rute dan grup keamanan jaringan (NSG) di bilah subnet. Setelah Anda berhasil menyebarkan kluster ke jaringan virtual kustom Anda, dapatkan ID sumber daya tabel rute dari bilah Jaringan di grup sumber daya kluster Anda.

  1. Buka portal pengguna Azure Stack Hub di instans Azure Stack Hub Anda.

  2. Pilih Semua suber daya.

  3. Masukkan nama jaringan virtual Anda di kotak pencarian.

  4. Pilih Subnet lalu pilih nama subnet yang berisi kluster Anda.

    tabel rute dan kelompok keamanan jaringan

  5. Pilih Tabel rute lalu pilih tabel rute untuk kluster Anda.

  6. Pastikan bahwa ini dilakukan untuk setiap subnet yang ditentukan dalam model API, termasuk masterProfile subnet.

Catatan

Jaringan virtual kustom untuk kluster Kubernetes Windows memiliki masalah yang diketahui .

Langkah berikutnya