Persyaratan perencanaan alamat IP
Berlaku untuk: Azure Local, versi 23H2
Perencanaan alamat IP untuk AKS yang diaktifkan oleh Azure Arc melibatkan desain jaringan yang mendukung aplikasi, kumpulan simpul, jaringan pod, komunikasi layanan, dan akses eksternal. Artikel ini memancarkan Anda melalui beberapa pertimbangan utama untuk perencanaan alamat IP yang efektif, dan jumlah minimum alamat IP yang diperlukan untuk menyebarkan AKS dalam produksi. Lihat konsep dan persyaratan jaringan AKS sebelum membaca artikel ini.
Perencanaan alamat IP sederhana untuk kluster dan aplikasi Kubernetes
Dalam panduan skenario berikut, Anda memesan alamat IP dari satu jaringan untuk kluster dan layanan Kubernetes Anda. Contoh ini adalah skenario paling mudah dan sederhana untuk penetapan alamat IP.
Persyaratan alamat IP | Jumlah minimum alamat IP | Bagaimana dan di mana melakukan reservasi ini |
---|---|---|
IP VM AKS Arc | Pesan satu alamat IP untuk setiap simpul pekerja di kluster Kubernetes Anda. Misalnya, jika Anda ingin membuat 3 kumpulan simpul dengan 3 simpul di setiap kumpulan simpul, Anda memerlukan 9 alamat IP di kumpulan IP Anda. | Pesan alamat IP melalui kumpulan IP di jaringan logis VM Arc. |
IP peningkatan versi AKS Arc K8s | Karena AKS Arc melakukan peningkatan bergulir, cadangkan satu alamat IP untuk setiap kluster AKS Arc untuk operasi peningkatan versi Kubernetes. | Pesan alamat IP melalui kumpulan IP di jaringan logis VM Arc. |
IP sarana kontrol | Pesan satu alamat IP untuk setiap kluster Kubernetes di lingkungan Anda. Misalnya, jika Anda ingin membuat total 5 kluster, cadangkan 5 alamat IP, satu untuk setiap kluster Kubernetes. | Pesan alamat IP melalui kumpulan IP di jaringan logis VM Arc. |
IP load balancer | Jumlah alamat IP yang dicadangkan tergantung pada model penyebaran aplikasi Anda. Sebagai titik awal, Anda dapat memesan satu alamat IP untuk setiap layanan Kubernetes. | Cadangkan alamat IP di subnet yang sama dengan jaringan logis VM Arc, tetapi di luar kumpulan IP. |
Contoh panduan untuk reservasi alamat IP untuk kluster dan aplikasi Kubernetes
Jane adalah administrator TI yang baru saja memulai dengan AKS yang diaktifkan oleh Azure Arc. Jane ingin menyebarkan dua kluster Kubernetes: kluster Kubernetes A dan kluster Kubernetes B pada kluster Azure Local. Jane juga ingin menjalankan aplikasi voting di atas kluster A. Aplikasi ini memiliki tiga instans UI front-end yang berjalan di dua kluster dan satu instans database backend. Semua kluster dan layanan AKS berjalan dalam satu jaringan, dengan satu subnet.
- Kluster Kubernetes A memiliki 3 simpul sarana kontrol dan 5 simpul pekerja.
- Kluster Kubernetes B memiliki 1 simpul sarana kontrol dan 3 simpul pekerja.
- 3 instans UI front-end (port 443).
- 1 instans database backend (port 80).
Berdasarkan tabel sebelumnya, Jane harus memesan total 19 alamat IP di subnet Jane:
- 8 alamat IP untuk VM simpul AKS Arc di kluster A (satu IP per VM node K8s).
- 4 alamat IP untuk VM simpul AKS Arc di kluster B (satu IP per VM node K8s).
- 2 alamat IP untuk menjalankan operasi peningkatan AKS Arc (satu alamat IP per kluster AKS Arc).
- 2 alamat IP untuk sarana kontrol AKS Arc (satu alamat IP per kluster AKS Arc)
- 3 alamat IP untuk layanan Kubernetes (satu alamat IP per instans UI front-end, karena semuanya menggunakan port yang sama. Database backend dapat menggunakan salah satu dari tiga alamat IP selama menggunakan port yang berbeda).
Melanjutkan dengan contoh ini, dan menambahkannya ke tabel berikut, Anda mendapatkan:
Parameter | Jumlah alamat IP | Bagaimana dan di mana melakukan reservasi ini |
---|---|---|
AKS Arc VM, peningkatan versi K8s, dan IP sarana kontrol | Memesan 16 alamat IP | Lakukan reservasi ini melalui kumpulan IP di jaringan logis Azure Local. |
IP load balancer | 3 alamat IP untuk layanan Kubernetes, untuk aplikasi voting Jane. | Alamat IP ini digunakan saat Anda menginstal load balancer pada kluster A. Anda dapat menggunakan ekstensi MetalLB Arc, atau membawa load balancer pihak ke-3 Anda sendiri. Pastikan IP ini berada di subnet yang sama dengan jaringan logis Arc, tetapi di luar kumpulan IP yang ditentukan dalam jaringan logis VM Arc. |
Contoh perintah CLI untuk reservasi alamat IP untuk kluster dan aplikasi Kubernetes
Bagian ini menjelaskan serangkaian perintah yang dijalankan Jane untuk skenarionya. Pertama, buat jaringan logis dengan kumpulan IP yang memiliki setidaknya 16 alamat IP. Kami membuat kumpulan IP dengan 20 alamat IP untuk menyediakan opsi untuk menskalakan pada hari N. Untuk informasi terperinci tentang opsi parameter di jaringan logis, lihat az stack-hci-vm network lnet create
:
$ipPoolStart = "10.220.32.18"
$ipPoolEnd = "10.220.32.37"
az stack-hci-vm network lnet create --subscription $subscription --resource-group $resource_group --custom-location $customLocationID --name $lnetName --vm-switch-name $vmSwitchName --ip-allocation-method "Static" --address-prefixes $addressPrefixes --gateway $gateway --dns-servers $dnsServers --ip-pool-start $ipPoolStart --ip-pool-end $ipPoolEnd
Selanjutnya, buat kluster AKS Arc dengan jaringan logis sebelumnya:
az aksarc create -n $aksclustername -g $resource_group --custom-location $customlocationID --vnet-ids $lnetName --aad-admin-group-object-ids $aadgroupID --generate-ssh-keys
Sekarang Anda dapat mengaktifkan load balancer MetalLB dengan kumpulan IP 3 alamat IP, di subnet yang sama dengan jaringan logis VM Arc. Anda dapat menambahkan lebih banyak kumpulan IP nanti jika aplikasi Anda membutuhkan peningkatan. Untuk persyaratan terperinci, lihat ringkasan ekstensi MetalLB Arc.
az k8s-runtime load-balancer create --load-balancer-name $lbName --resource-uri subscriptions/$subscription/resourceGroups/$resource_group/providers/Microsoft.Kubernetes/connectedClusters/metallb-demo --addresses 10.220.32.47-10.220.32.49 --advertise-mode ARP
Pertimbangan LNET untuk kluster AKS dan VM Arc
Jaringan logis di Azure Local digunakan oleh kluster AKS dan VM Arc. Anda dapat mengonfigurasi jaringan logis dengan salah satu dari 2 cara berikut:
- Bagikan jaringan logis antara AKS dan Arc VM.
- Tentukan jaringan logis terpisah untuk kluster AKS dan VM Arc.
Berbagi jaringan logis antara AKS dan Arc VM di Azure Local menawarkan manfaat komunikasi yang disederhanakan, penghematan biaya, dan manajemen jaringan yang disederhanakan. Namun, pendekatan ini juga memperkenalkan potensi tantangan seperti ketidakcocokan sumber daya, risiko keamanan, dan kompleksitas dalam pemecahan masalah.
Kriteria | Berbagi jaringan logis | Menentukan jaringan logis terpisah |
---|---|---|
Kompleksitas konfigurasi | Konfigurasi yang lebih sederhana dengan satu jaringan, mengurangi kompleksitas penyiapan. | Penyiapan yang lebih kompleks, karena Anda perlu mengonfigurasi beberapa jaringan logis untuk VM dan kluster AKS. |
Skalabilitas | Potensi batasan skalabilitas karena VM Arc dan kluster AKS berbagi sumber daya jaringan. | Lebih dapat diskalakan karena sumber daya jaringan dipisahkan dan dapat diskalakan secara independen. |
Manajemen kebijakan jaringan | Lebih mudah dikelola dengan satu set kebijakan jaringan, tetapi lebih sulit untuk mengisolasi beban kerja. | Lebih mudah untuk mengisolasi beban kerja, karena kebijakan terpisah dapat diterapkan per jaringan logis. |
Pertimbangan keamanan | Peningkatan risiko kerentanan lintas komunikasi jika tidak tersegmentasi dengan benar. | Keamanan yang lebih baik karena setiap jaringan dapat disegmentasi dan diisolasi lebih ketat. |
Dampak kegagalan jaringan | Kegagalan dalam jaringan bersama dapat memengaruhi VM AKS dan Arc secara bersamaan. | Kegagalan dalam satu jaringan hanya memengaruhi beban kerja dalam jaringan tersebut, mengurangi risiko keseluruhan. |
Alokasi rentang alamat IP untuk CIDR pod dan CIDR layanan
Bagian ini menjelaskan rentang alamat IP yang digunakan oleh Kubernetes untuk komunikasi pod dan layanan dalam kluster. Rentang alamat IP ini didefinisikan selama proses pembuatan kluster AKS dan digunakan untuk menetapkan alamat IP unik ke pod dan layanan dalam kluster.
CIDR jaringan Pod
CIDR jaringan pod adalah berbagai alamat IP yang digunakan oleh Kubernetes untuk menetapkan alamat IP unik ke masing-masing pod yang berjalan dalam kluster Kubernetes. Setiap pod mendapatkan alamat IP sendiri dalam rentang ini, memungkinkan pod untuk berkomunikasi satu sama lain dan dengan layanan dalam kluster. Di AKS, alamat IP pod ditetapkan melalui Calico CNI dalam mode VXLAN. Calico VXLAN membantu membuat jaringan Overlay, di mana alamat IP pod (dari jaringan pod CIDR) divirtualisasi dan diterowongkan melalui jaringan fisik. Dalam mode ini, setiap pod diberi alamat IP dari CIDR jaringan pod, tetapi alamat IP ini tidak dapat dirutekan secara langsung pada jaringan fisik. Sebaliknya, itu dienkapsulasi dalam paket jaringan dan dikirim melalui jaringan fisik yang mendasarinya untuk mencapai pod tujuannya pada node lain.
AKS menyediakan nilai default 10.244.0.0/16 untuk CIDR jaringan pod. AKS memang mendukung penyesuaian untuk CIDR jaringan pod. Anda dapat mengatur nilai Anda sendiri menggunakan --pod-cidr
parameter saat membuat kluster AKS. Pastikan rentang IP CIDR cukup besar untuk mengakomodasi jumlah maksimum pod per simpul dan di seluruh kluster Kubernetes.
CIDR jaringan layanan
CIDR jaringan Layanan adalah rentang alamat IP yang dicadangkan untuk layanan Kubernetes seperti LoadBalancers, ClusterIP, dan NodePort dalam kluster. Kubernetes mendukung jenis layanan berikut:
- ClusterIP: Jenis layanan default, yang mengekspos layanan dalam kluster. IP yang ditetapkan dari CIDR jaringan Layanan hanya dapat diakses dalam kluster Kubernetes.
- NodePort: Mengekspos layanan pada port tertentu pada alamat IP setiap simpul. ClusterIP masih digunakan secara internal, tetapi akses eksternal melalui IP node dan port tertentu.
- LoadBalancer: Jenis ini membuat penyeimbang beban yang dikelola penyedia cloud dan mengekspos layanan secara eksternal. Penyedia cloud biasanya mengelola penetapan IP eksternal, sementara ClusterIP internal tetap berada dalam jaringan layanan CIDR.
AKS menyediakan nilai default 10.96.0.0/12 untuk CIDR jaringan layanan. AKS tidak mendukung kustomisasi untuk CIDR jaringan layanan saat ini.
Langkah berikutnya
Membuat jaringan logis untuk kluster Kubernetes di Azure Local, versi 23H2