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 membahas tentang menemukan informasi yang Anda butuhkan di jaringan virtual Anda. Anda dapat menemukan langkah-langkah untuk menghitung alamat IP yang digunakan oleh kluster Anda, mengatur nilai 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.

Batasan 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 Mendapatkan blok alamat IP.
  • Pertimbangkan bahwa ukuran subnet node 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 di bawah ini.
  • Ruang alamat 169.254.0.0/16 tidak boleh 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. Anda akan menggunakan ID Sumber Daya dan rentang dalam model API saat menyebarkan 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+ Subnet untuk menambahkan subnet.

  5. Tambahkan nama dan Rentang alamat menggunakan notasi CIDR. PilihOK.

  6. Pilih Properti di bilah Jaringan virtual. Salin ID Sumber Daya, lalu tambahkan . Anda akan 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 hubungkan subnet dengan kelompok 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 menggunakan beberapa jaringan virtual yang ada, pertimbangkan untuk menggunakan ruang alamat yang berbeda pada setiap jaringan jika Anda ingin menggunakan peering jaringan virtual. Ruang alamat yang tumpang tindih dapat mengganggu kemampuan Anda untuk memungkinkan peering.

Mendapatkan blok alamat IP

Mesin AKS mendukung penyebaran pada jaringan virtual yang ada. Ketika 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: Ini adalah blok alamat yang digunakan untuk menetapkan alamat ke node kluster. Ia dapat menjadi blok alamat tunggal untuk semua simpul kluster atau dapat menjadi blok yang terpisah (subnet) untuk sarana kontrol dan kumpulan agen. Pertimbangkan jumlah node di kluster Anda saat memilih rentang alamat untuk blok ini. Untuk node dan kontainer Azure CNI, dapatkan alamatnya dari blok alamat yang sama, jadi pertimbangkan jumlah kontainer yang ingin Anda sebarkan ke kluster Anda saat memilih rentang alamat saat menggunakan Azure CNI.
  • Blok alamat layanan: Ini adalah blok alamat tempat layanan yang disebarkan ke kluster Kubernetes akan 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: Ini merupakan blok alamat tempat pod untuk 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 perlu mengatur dua nilai lagi. Anda perlu mengetahui jumlah alamat IP yang perlu Anda cadangkan untuk kluster Anda, dan IP statis berurutan pertama dalam ruang IP subnet. Mesin AKS memerlukan rentang hingga 16 alamat IP yang tidak digunakan saat Anda menggunakan beberapa simpul sarana kontrol. Kluster akan menggunakan satu alamat IP untuk setiap sarana kontrol hingga lima simpul sarana kontrol. Mesin AKS juga akan memerlukan 10 alamat IP berikutnya setelah simpul sarana kontrol terakhir untuk reservasi alamat IP headroom. Akhirnya, alamat IP lain akan digunakan oleh load balancer setelah node sarana kontrol dan reservasi headroom, dengan total 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 simpul sarana kontrol. Jika Anda menggunakan subnet dengan 256 alamat, misalnya 10.100.0.0/24, Anda harus mengatur alamat IP statis berurutan pertama sebelum 239. Tabel berikut menunjukkan alamat dan pertimbangan:

Rentang untuk subnet /24 Telepon 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 akan menjadi 172.100.0.224.

Untuk subnet yang lebih besar, misalnya /16 dengan lebih dari 60 ribu alamat, mungkin terasa tidak praktis untuk mengatur tugas IP statik 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 akan menjadi 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.

Di masterProfile, atur nilai berikut:

Bidang Contoh Deskripsi
vnetSubnetId /subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn Tentukan subnet ID jalur Azure Resource Manager. Nilai ini dipetakan ke alamat blok simpul sarana kontrol di atas.
firstConsecutiveStaticIP 10.100.0.239 Tetapkan ke properti konfigurasi firstConsecutiveStaticIP alamat IP yang berada di dekat firstConsecutiveStaticIP 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/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/agents-sn Tentukan subnet ID jalur Azure Resource Manager. Nilai ini memetakan ke blok alamat node agen di atas.

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 memetakan ke blok alamat kluster di atas. 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, subnet ini hanya akan ditetapkan ke satu node. Node lain tidak akan mendapatkan jaringan POD yang ditetapkan, karena Anda akan kehabisan ruang IP, sehingga mereka tidak akan siap di kluster.
serviceCidr 10.100.16.0/20 Subnet IP digunakan untuk mengalokasikan alamat IP untuk layanan yang digunakan dalam kluster. Nilai ini memetakan ke blok layanan kluster di atas.
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/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn",
  "firstConsecutiveStaticIP": "10.100.0.239",
  ...
},
...
"agentPoolProfiles": [
  {
    ...
    "vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/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 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/77e28b6a-582f-42b0-94d2-93b9eca60845/resourceGroups/MDBN-K8S/providers/Microsoft.Network/virtualNetworks/MDBN-K8S/subnets/control-plane-sn",
  "firstConsecutiveStaticIP": "172.24.0.239",
  ...
},
...
"agentPoolProfiles": [
  {
    ...
    "vnetSubnetId": "/subscriptions/77e28b6a-582f-42b0-94d2-93b9eca60845/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 deploy perintah 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 berhasil menyebarkan kluster ke jaringan virtual kustom, 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 Windows Kubernetes memiliki masalah yang diketahui.

Langkah berikutnya