Konsep jaringan kontainer
Berlaku untuk: AKS di Azure Local 22H2, AKS di Windows Server
Komponen aplikasi harus bekerja sama untuk memproses tugas mereka dalam pendekatan layanan mikro berbasis kontainer. Kubernetes menyediakan berbagai sumber daya yang memungkinkan komunikasi aplikasi dan memungkinkan Anda tersambung serta mengekspos aplikasi secara internal atau eksternal. Untuk membangun aplikasi yang sangat tersedia, Anda dapat menyeimbangkan beban aplikasi Anda.
Aplikasi yang lebih kompleks mungkin memerlukan konfigurasi lalu lintas masuk untuk penghentian SSL/TLS atau perutean beberapa komponen. Anda mungkin juga perlu membatasi arus lalu lintas jaringan ke atau antara pod dan simpul untuk keamanan.
Artikel ini memperkenalkan konsep inti yang menyediakan jaringan ke aplikasi Anda di AKS yang diaktifkan oleh Arc:
- Layanan Kubernetes
- Kontreler ingress
- Kebijakan Jaringan
Layanan Kubernetes
Untuk menyederhanakan konfigurasi jaringan untuk beban kerja aplikasi, Kubernetes menggunakan layanan untuk mengelompokkan satu set pod secara logis dan untuk menyediakan konektivitas jaringan. Tipe Layanan berikut ini tersedia:
IP Kluster: membuat alamat IP internal untuk digunakan dalam kluster Kubernetes. Gunakan IP Kluster untuk aplikasi internal saja yang mendukung beban kerja lain dalam kluster.
NodePort: membuat pemetaan port pada node yang mendasar yang memungkinkan aplikasi diakses langsung dengan alamat IP node dan port.
LoadBalancer: membuat sumber daya penyeimbang muatan Azure, mengonfigurasi alamat IP eksternal, dan menghubungkan pod yang diminta ke kumpulan backend load balancer. Untuk memungkinkan traffic pelanggan mencapai aplikasi, aturan penyeimbangan beban dibuat pada port yang diinginkan.
Untuk kontrol dan perutean lalu lintas masuk lainnya, Anda dapat menggunakan pengontrol ingress.
Catatan
Saat Anda menyebarkan kluster target yang berbagi jaringan dengan kluster target lain, ada kemungkinan konflik alamat IP load balancer.
Ini dapat terjadi jika Anda menyebarkan dua beban kerja yang menggunakan port yang berbeda dalam kluster target yang berbagi objek AksHciClusterNetwork
yang sama. Karena cara alamat IP dan pemetaan port dialokasikan di dalam Proksi HA, ini dapat menyebabkan penetapan alamat IP duplikat. Jika ini terjadi, satu atau kedua beban kerja dapat mengalami masalah konektivitas jaringan acak hingga Anda menyebarkan kembali beban kerja Anda. Saat menyebarkan ulang beban kerja, Anda dapat menggunakan port yang sama yang menyebabkan setiap beban kerja menerima alamat IP layanan terpisah, atau Anda dapat menyebarkan kembali beban kerja Anda pada kluster target yang menggunakan objek yang berbeda AksHciClusterNetwork
.
ExternalName: membuat entri DNS tertentu untuk akses aplikasi yang lebih mudah. Alamat IP untuk penyeimbang beban dan layanan dapat menjadi alamat internal atau eksternal tergantung pada pengaturan jaringan Anda secara keseluruhan dan dapat ditetapkan secara dinamis. Atau, Anda dapat menentukan alamat IP statis yang ada untuk digunakan. Alamat IP statis yang ada sering dikaitkan dengan entri DNS. load balancer internal hanya diberi alamat IP pribadi, sehingga tidak dapat diakses dari Internet.
Dasar-dasar jaringan Kubernetes di Azure Local
Untuk mengizinkan akses ke aplikasi atau agar komponen aplikasi dapat saling berkomunikasi, Kube menyediakan lapisan abstraksi ke jaringan virtual. Simpul Kubernetes terhubung ke jaringan virtual dan dapat menyediakan konektivitas masuk dan keluar untuk pod. Komponen kube-proxy berjalan pada setiap simpul untuk menyediakan fitur jaringan ini.
Di Kubernetes, Layanan secara logis mengelompokkan pod untuk memungkinkan:
- Akses langsung melalui satu alamat IP atau nama DNS dan port tertentu.
- Distribusikan lalu lintas menggunakan penyeimbang beban antara beberapa pod yang menghosting layanan atau aplikasi yang sama.
Platform Azure Local juga membantu menyederhanakan jaringan virtual untuk AKS pada kluster Azure Local dengan menyediakan jaringan "underlay" dengan cara yang sangat tersedia.
Saat Anda membuat kluster AKS, kami juga membuat dan mengonfigurasi sumber daya penyeimbang beban HAProxy
yang mendasarinya. Saat Anda menyebarkan aplikasi dalam kluster Kubernetes, alamat IP dikonfigurasi untuk pod dan layanan Kubernetes Anda sebagai titik akhir dalam penyeimbang beban ini.
Sumber alamat IP
Untuk menyederhanakan konfigurasi jaringan untuk beban kerja aplikasi, AKS Arc menetapkan alamat IP ke objek berikut dalam penyebaran:
- Server API kluster Kubernetes: server API adalah komponen dari sarana kontrol Kubernetes yang mengekspos API Kubernetes. Server API adalah ujung depan untuk bidang kontrol Kubernetes. Alamat IP statis selalu dialokasikan ke server API terlepas dari model jaringan yang mendasarinya.
- Simpul Kubernetes (komputer virtual): kluster Kubernetes terdiri dari sekumpulan mesin pekerja, yang disebut node, dan node yang menghosting aplikasi kontainer. Selain simpul bidang kontrol, setiap kluster memiliki setidaknya satu simpul pekerja. Untuk kluster AKS, node Kubernetes dikonfigurasi sebagai komputer virtual. Komputer virtual ini dibuat sebagai komputer virtual yang sangat tersedia di Azure Local, untuk informasi selengkapnya, lihat Konsep jaringan simpul.
- Layanan Kubernetes: di Kubernetes, Layanan secara logis mengelompokkan alamat IP pod untuk memungkinkan akses langsung melalui satu alamat IP atau nama DNS pada port tertentu. Layanan juga dapat mendistribusikan lalu lintas menggunakan penyeimbang beban. Alamat IP statis selalu dialokasikan untuk layanan Kubernetes terlepas dari model jaringan yang mendasarinya.
- Penyeimbang beban HAProxy: HAProxy adalah load balancer TCP/HTTP dan server proksi yang menyebarkan permintaan masuk di beberapa titik akhir. Setiap kluster beban kerja dalam penyebaran AKS di Azure Local memiliki penyeimbang beban HAProxy yang disebarkan dan dikonfigurasi sebagai komputer virtual khusus.
- Layanan Cloud Lokal Microsoft: Ini adalah penyedia cloud Lokal Azure yang memungkinkan pembuatan dan pengelolaan lingkungan virtual yang menghosting Kubernetes di kluster Lokal Azure lokal atau kluster Windows Server. Model jaringan diikuti oleh kluster Azure Local atau Windows Server Anda menentukan metode alokasi alamat IP yang digunakan oleh Microsoft On-Premises Cloud Service. Untuk mempelajari lebih lanjut tentang konsep jaringan yang diterapkan oleh Layanan Cloud Lokal Microsoft, lihat Konsep jaringan node.
Jaringan Kubernetes
Di AKS di Azure Local, Anda dapat menyebarkan kluster yang menggunakan salah satu model jaringan berikut:
- Jaringan Flanel Overlay - Sumber daya jaringan biasanya dibuat dan dikonfigurasi saat kluster disebarkan.
- Project Jaringan Calico - Model ini menawarkan fitur jaringan tambahan, seperti kebijakan jaringan dan kontrol alur.
Kedua implementasi jaringan menggunakan model konfigurasi jaringan overlay, yang menyediakan tugas alamat IP yang terputus dari sisa jaringan pusat data.
Untuk mempelajari selengkapnya tentang jaringan overlay, lihat Memperkenalkan: Jaringan Overlay Kubernetes untuk Windows.
Untuk informasi selengkapnya tentang plug-in dan kebijakan Jaringan Calico, lihat memulai dengan kebijakan jaringan Calico.
Membandingkan model jaringan
Flanel
Catatan
Flannel CNI dihentikan pada Desember 2023.
Flanel adalah lapisan jaringan virtual yang dirancang khusus untuk kontainer. Flannel menciptakan jaringan datar yang melapisi jaringan host. Semua kontainer/pod diberi satu alamat IP dalam jaringan overlay ini, dan berkomunikasi secara langsung dengan menghubungkan ke alamat IP masing-masing.
Calico
Calico adalah jaringan sumber terbuka dan solusi keamanan jaringan untuk kontainer, mesin virtual, dan beban kerja berbasis host asli. Calico mendukung beberapa bidang data termasuk: data plane eBPF Linux, data plane jaringan Linux, dan data plane HNS Windows.
Kemampuan
Kemampuan | Flanel | Calico |
---|---|---|
Kebijakan Jaringan | Tidak | Ya |
IPv6 | Tidak | Ya |
Lapisan yang digunakan | L2 (VxLAN) | L2 (VxLAN) |
Sebarkan klaster di jaringan virtual yang ada atau baru | Ya | Ya |
Dukungan Windows | Ya | Ya |
koneksi Pod-Pod | Ya | Ya |
Koneksi Pod-VM, mesin virtual dalam jaringan yang sama | Tidak | Ya |
Koneksi Pod-VM, mesin virtual dalam jaringan yang berbeda | Ya | Ya |
Layanan Kubernetes | Ya | Ya |
Mengekspos melalui Penyeimbang beban | Ya | Ya |
Jaringan | Banyak jaringan pada kluster yang sama dengan multi daemon | Banyak jaringan pada kluster yang sama |
Penyebaran | Linux: DaemonSet | Linux: DaemonSet |
Windows: Layanan | Windows: Layanan | |
Baris perintah | tidak ada | calicoctl |
Penting
Saat ini, pilihan default adalah menggunakan Calico dalam mode jaringan overlay. Untuk mengaktifkan Flannel, gunakan -primaryNetworkPlugin
parameter New-AksHciCluster
perintah PowerShell dan tentukan flannel
sebagai nilainya. Nilai ini tidak dapat diubah setelah Anda menyebarkan kluster, dan berlaku untuk node kluster Windows dan Linux.
Contohnya:
New-AksHciCluster -name MyCluster -primaryNetworkPlugin 'flannel'
Langkah berikutnya
Artikel ini membahas konsep jaringan untuk kontainer dalam simpul AKS di Azure Local. Untuk informasi selengkapnya tentang konsep AKS di Azure Local, lihat artikel berikut ini: