Manajemen hibrida Azure Arc dan penyebaran kluster Kube

Azure Arc
Azure Kubernetes Service (AKS)
Azure Monitor
Azure Policy
Azure Role-based access control

Arsitektur referensi ini menunjukkan cara Azure Arc memperluas manajemen dan konfigurasi kluster Kubernetes di seluruh pusat data pelanggan, lokasi tepi, dan beberapa lingkungan cloud.

Sistem

Diagram arsitektur menunjukkan topologi Azure Arc untuk Kubernetes.

Unduh file Visio arsitektur ini.

Alur kerja

Arsitektur terdiri dari aspek-aspek berikut:

  • Kubernetes berkemampuan Azure Arc. Lampirkan dan konfigurasikan kluster Kubernetes di dalam atau di luar Azure dengan menggunakan Kubernetes dengan dukungan Azure Arc. Saat kluster Kubernetes dilampirkan ke Azure Arc, kluster tersebut diberi ID Azure Resource Manager dan identitas terkelola.
  • Azure Kubernetes Service. Host kluster Kubernetes di Azure untuk mengurangi kompleksitas dan overhead operasional manajemen kluster Kubernetes.
  • Kluster Kubernetes lokal. Lampirkan kluster Kubernetes bersertifikat Cloud Native Computing Foundation (CNCF) yang dihosting di lingkungan cloud lokal atau pihak ketiga.
  • Azure Policy. Menyebarkan dan mengelola kebijakan untuk kluster Kubernetes dengan dukungan Arc.
  • Azure Monitor. Amati dan pantau kluster Kubernetes yang didukung Arc.

Komponen

  • Azure Arc adalah jembatan yang memperluas platform Azure, memungkinkan untuk membangun aplikasi dan layanan yang dapat berjalan di seluruh pusat data, di tepi, dan di lingkungan multicloud.
  • Azure Kubernetes Service (AKS) adalah layanan terkelola untuk menyebarkan dan menskalakan kluster Kubernetes.
  • Azure Policy memungkinkan untuk mencapai kepatuhan cloud real-time dalam skala besar dengan tata kelola sumber daya yang konsisten.
  • Azure Monitor menyediakan pengamatan end-to-end untuk aplikasi, infrastruktur, dan jaringan Anda.

Detail skenario

Anda dapat menggunakan Azure Arc untuk mendaftarkan kluster Kubernetes yang dihosting di luar Microsoft Azure. Anda kemudian dapat menggunakan alat Azure untuk mengelola kluster ini bersama dengan kluster yang dihosting di Azure Kubernetes Service (AKS).

Kemungkinan kasus penggunaan

Penggunaan umum untuk arsitektur ini meliputi:

  • Mengelola kluster dan kluster Kubernetes lokal yang dihosting di AKS untuk inventori, pengelompokan, dan penandaan.
  • Menggunakan Azure Monitor untuk memantau kluster Kubernetes di seluruh lingkungan hibrid.
  • Menggunakan Azure Policy untuk menyebarkan dan menerapkan kebijakan untuk kluster Kubernetes di seluruh lingkungan hibrid.
  • Menggunakan Azure Policy untuk menyebarkan dan memberlakukan GitOps.

Rekomendasi

Bagian berikut menawarkan rekomendasi yang berlaku untuk sebagian besar skenario. Microsoft menyarankan agar Anda mengikutinya kecuali Anda memiliki persyaratan yang menimpanya.

Pendaftaran kluster

Anda dapat mendaftarkan kluster CNCF Kubernetes aktif apa pun. Anda memerlukan file kubeconfig untuk mengakses kluster dan peran cluster-admin pada kluster untuk menyebarkan agen Kubernetes berkemampuan Arc. Anda menggunakan antarmuka baris perintah (CLI) Azure untuk melakukan tugas pendaftaran kluster. Pengguna atau perwakilan layanan yang Anda gunakan untuk perintah az login dan az connectedk8s connect memerlukan izin Baca dan Tulis pada jenis sumber daya Microsoft.Kubernetes/connectedClusters. Peran Kluster Kubernetes - Azure Arc Onboarding memiliki izin ini dan dapat digunakan untuk penetapan peran baik pada prinsipal pengguna maupun perwakilan layanan. Helm 3 diperlukan untuk onboarding kluster yang menggunakan ekstensi connectedk8s. Azure CLI versi 2.3 atau yang lebih baru diperlukan untuk menginstal ekstensi antarmuka baris perintah Kubernetes berkemampuan Azure Arc.

Agen Azure Arc untuk Kubernetes

Kubernetes dengan dukungan Azure Arc terdiri dari beberapa agen (juga disebut sebagai operator) yang berjalan di kluster yang disebarkan ke namespace layanan azure-arc :

  • deployment.apps/config-agent. Mengawasi kluster yang terhubung untuk sumber daya konfigurasi kontrol sumber yang diterapkan pada kluster, dan memperbarui status kepatuhan.
  • deployment.apps/controller-manager. Operator dari operator yang mengatur interaksi di antara komponen Azure Arc.
  • deployment.apps/metrics-agent. Mengumpulkan metrik dari agen Arc lainnya untuk memastikan bahwa agen-agen ini menunjukkan performa yang optimal.
  • deployment.apps/cluster-metadata-operator. Mengumpulkan metadata kluster, versi kluster, jumlah node, dan versi agen Azure Arc.
  • deployment.apps/resource-sync-agent. Menyinkronkan metadata kluster yang disebutkan sebelumnya ke Azure.
  • deployment.apps/clusteridentityoperator. Mempertahankan sertifikat Identitas Layanan Terkelola (MSI) yang digunakan oleh agen lain untuk berkomunikasi dengan Azure.
  • deployment.apps/flux-logs-agent. Mengumpulkan log dari operator fluks yang disebarkan sebagai bagian dari konfigurasi kontrol sumber.
  • deployment.apps/extension-manager. Menginstal dan mengelola siklus hidup bagan Helm ekstensi.
  • deployment.apps/kube-azure-ad-proxy. Digunakan untuk autentikasi permintaan yang dikirim ke kluster dengan menggunakan Cluster Connect.
  • deployment.apps/clusterconnect-agent. Agen proksi terbalik yang memungkinkan fitur koneksi kluster untuk menyediakan akses ke apiserver kluster. Ini adalah komponen opsional yang disebarkan hanya jika fitur koneksi kluster diaktifkan pada kluster.
  • deployment.apps/guard. Server webhook autentikasi dan otorisasi yang digunakan untuk kontrol akses berbasis peran (RBAC) Microsoft Entra. Ini adalah komponen opsional yang disebarkan hanya jika fitur azure-rbac diaktifkan pada kluster.

Untuk informasi selengkapnya, lihat Menyambungkan kluster Kubernetes dengan dukungan Azure Arc.

Memantau kluster dengan menggunakan wawasan Kontainer Azure Monitor

Pemantauan kontainer Anda wajib dilakukan. Wawasan Kontainer Azure Monitor memberikan pengalaman pemantauan yang kaya untuk kluster mesin AKS dan AKS. Anda juga dapat mengonfigurasi wawasan Kontainer Azure Monitor untuk memantau kluster Kubernetes dengan dukungan Azure Arc yang dihosting di luar Azure. Melakukan ini menyediakan pemantauan komprehensif kluster Kubernetes Anda di seluruh Lingkungan cloud Azure, lokal, dan pihak ketiga.

Wawasan Kontainer Azure Monitor dapat memberi Anda visibilitas performa dengan mengumpulkan metrik memori dan prosesor dari pengontrol, simpul, dan kontainer, metrik yang tersedia di Kubernetes melalui antarmuka pemrograman aplikasi Metrik (API). Log wadah juga dikumpulkan. Setelah Anda mengaktifkan pemantauan dari kluster Kubernetes, metrik dan log secara otomatis dikumpulkan untuk Anda oleh versi kontainer agen Analitik Log. Metrik ditulis ke penyimpanan metrik, dan data log ditulis ke penyimpanan log yang terkait dengan ruang kerja Log Analytics Anda. Untuk informasi selengkapnya tentang wawasan Kontainer Azure Monitor, lihat Gambaran umum wawasan Kontainer Azure Monitor.

Anda dapat mengaktifkan wawasan Kontainer Azure Monitor untuk satu atau beberapa penyebaran Kubernetes dengan menggunakan skrip PowerShell atau skrip Bash.

Untuk mengaktifkan pemantauan untuk kluster Kubernetes dengan dukungan Arc, lihat Mengaktifkan pemantauan kluster Kubernetes dengan dukungan Azure Arc

Menggunakan Azure Policy untuk mengaktifkan penyebaran aplikasi berbasis GitOps

Gunakan Azure Policy untuk memberlakukan bahwa setiap sumber daya Microsoft.Kubernetes/connectedclusters yang diaktifkan GitOps atau sumber daya Microsoft.ContainerService/managedClusters memiliki Microsoft.KubernetesConfiguration/fluxConfigurations tertentu yang diterapkan di dalamnya. Misalnya, Anda dapat menerapkan konfigurasi garis besar ke satu atau beberapa kluster, atau menyebarkan aplikasi tertentu ke beberapa kluster. Untuk menggunakan Azure Policy, pilih definisi dari definisi bawaan Azure Policy untuk Kubernetes dengan dukungan Azure Arc, lalu buat penetapan kebijakan.

Saat Anda membuat penetapan kebijakan, atur cakupan ke grup sumber daya Azure atau langganan. Atur juga parameter untuk fluxConfiguration yang dibuat. Ketika penugasan dibuat, mesin Kebijakan akan mengidentifikasi semua sumber daya connectedCluster atau managedCluster yang terletak dalam cakupan, lalu menerapkan fluxConfiguration ke masing-masing sumber daya.

Jika Anda menggunakan beberapa repositori sumber untuk setiap kluster (misalnya, satu repositori untuk operator IT/kluster pusat dan repositori lain untuk tim aplikasi), aktifkan ini dengan menggunakan beberapa penetapan kebijakan dan konfigurasikan setiap penetapan kebijakan untuk menggunakan repositori sumber yang berbeda.

Untuk informasi selengkapnya, lihat Menyebarkan aplikasi secara konsisten dalam skala besar menggunakan konfigurasi Flux v2 dan Azure Policy.

Menyebarkan aplikasi menggunakan GitOps

GitOps adalah praktik untuk mendeklarasikan status konfigurasi Kubernetes yang diinginkan (penyebaran, namespace layanan, dan sebagainya) dalam repositori sumber, seperti repositori Git atau Helm, Bucket, atau Azure Blob Storage. Ini diikuti oleh penyebaran konfigurasi ini berbasis polling dan pull ke kluster dengan menggunakan operator.

Koneksi antara kluster Anda dan satu atau beberapa repositori sumber diaktifkan dengan menyebarkan ekstensi microsoft.flux ke kluster Anda. Properti sumber daya fluxConfiguration mewakili di mana dan bagaimana sumber daya Kubernetes harus mengalir dari repositori sumber ke kluster Anda. Data fluxConfiguration disimpan dienkripsi saat tidak aktif dalam database Azure Cosmos DB untuk memastikan kerahasiaan data.

Agen fluks-konfigurasi yang berjalan di kluster Anda bertanggung jawab untuk mengawasi sumber daya ekstensi fluxConfiguration baru atau yang diperbarui pada sumber daya Kubernetes dengan dukungan Azure Arc, untuk menyebarkan aplikasi dari repositori sumber, dan untuk menyebarkan pembaruan apa pun yang dibuat untuk fluxConfiguration. Anda bahkan dapat membuat beberapa sumber daya fluxConfiguration dengan menggunakan cakupan namespace pada kluster Kubernetes dengan dukungan Azure Arc yang sama untuk mencapai multi-penyewaan.

Repositori sumber dapat berisi sumber daya Kubernetes yang valid, termasuk Namespace, ConfigMaps, Deployments, dan DaemonSets. Ini juga dapat berisi bagan Helm untuk menyebarkan aplikasi. Skenario repositori sumber umum termasuk menentukan konfigurasi dasar untuk organisasi Anda yang dapat mencakup peran dan pengikatan kontrol akses basis peran (RBAC) umum, agen pemantauan, agen pengelogan, dan layanan di seluruh kluster.

Anda juga dapat mengelola kumpulan kluster yang lebih besar yang disebarkan di seluruh lingkungan heterogen. Misalnya, Anda dapat memiliki satu repositori yang menentukan konfigurasi dasar untuk organisasi Anda, lalu menerapkannya ke beberapa kluster Kubernetes secara bersamaan. Anda juga dapat menyebarkan aplikasi ke kluster dari beberapa repositori sumber.

Untuk informasi selengkapnya, lihat Menyebarkan aplikasi menggunakan GitOps dengan Flux v2.

Topologi, jaringan, dan perutean

Agen Azure Arc memerlukan protokol/port/URL keluar berikut untuk berfungsi:

Titik akhir (DNS) Deskripsi
https://management.azure.com:443 Diperlukan bagi agen untuk terhubung ke Azure dan mendaftarkan kluster.
https://[region].dp.kubernetesconfiguration.azure.com:443 Titik akhir data plane bagi agen untuk mendorong status dan mengambil informasi konfigurasi, tempat [wilayah] mewakili wilayah Azure yang meng-host instans AKS.
https://docker.io:443 Diperlukan untuk menarik gambar kontainer.
https://github.com:443, git://github.com:9418 Contoh repositori GitOps di-host di GitHub. Agen konfigurasi memerlukan konektivitas ke titik akhir git mana pun yang Anda tentukan.
https://login.microsoftonline.com:443 Diperlukan untuk mengambil dan memperbarui token Azure Resource Manager.
https://azurearcfork8s.azurecr.io:443 Diperlukan untuk penarikan gambar kontainer untuk agen Azure Arc.

Untuk daftar lengkap URL di seluruh layanan Azure Arc, lihat Persyaratan jaringan Azure Arc.

Pertimbangan

Pertimbangan ini mengimplementasikan pilar Azure Well-Architected Framework, yang merupakan serangkaian tenet panduan yang dapat digunakan untuk meningkatkan kualitas beban kerja. Untuk informasi selengkapnya, lihat Microsoft Azure Well-Architected Framework.

Keandalan

Keandalan memastikan aplikasi Anda dapat mencapai komitmen yang Anda buat kepada pelanggan Anda. Untuk informasi selengkapnya, lihat Gambaran Umum pilar keandalan.

  • Dalam kebanyakan kasus, lokasi yang Anda pilih saat membuat skrip penginstalan harus menjadi wilayah Azure yang secara geografis paling dekat dengan sumber daya lokal Anda. Data lainnya disimpan dalam geografi Azure yang berisi wilayah yang Anda tentukan, fakta yang mungkin memengaruhi pilihan wilayah Anda jika Anda memiliki persyaratan residensi data. Jika pemadaman memengaruhi wilayah Azure yang tersambung dengan komputer Anda, pemadaman tidak memengaruhi komputer yang terhubung, tetapi operasi manajemen yang menggunakan Azure mungkin tidak selesai. Untuk ketahanan ketika ada pemadaman regional, yang terbaik, jika Anda memiliki beberapa lokasi yang menyediakan layanan redundan secara geografis, untuk menghubungkan komputer di setiap lokasi ke wilayah Azure yang berbeda. Untuk wilayah yang tersedia, lihat Wilayah yang didukung untuk Kubernetes dengan dukungan Azure Arc.
  • Anda harus memastikan bahwa layanan yang direferensikan di bagian Arsitektur didukung di wilayah tempat Azure Arc disebarkan.

Keamanan

Keamanan memberikan jaminan terhadap serangan yang disukai dan penyalahgunaan data dan sistem berharga Anda. Untuk informasi selengkapnya, lihat Gambaran Umum pilar keamanan.

  • Anda dapat menggunakan Azure RBAC untuk mengelola akses ke Kubernetes dengan dukungan Azure Arc di seluruh Azure dan lingkungan lokal yang menggunakan identitas Microsoft Entra. Untuk informasi selengkapnya, lihat Menggunakan Azure RBAC untuk Otorisasi Kubernetes.
  • Microsoft menyarankan agar Anda menggunakan perwakilan layanan yang memiliki hak istimewa terbatas untuk onboarding kluster Kubernetes ke Azure Arc. Praktik ini berguna dalam alur CI/CD seperti Azure Pipelines dan GitHub Actions. Untuk informasi selengkapnya, lihat Membuat Perwakilan Layanan onboarding Azure Arc yang diaktifkan.
  • Untuk menyederhanakan manajemen perwakilan layanan, Anda dapat menggunakan identitas terkelola di AKS. Namun, kluster harus dibuat dengan menggunakan identitas terkelola, dan kluster yang ada (termasuk kluster Azure dan lokal) tidak dapat dimigrasikan ke identitas terkelola. Lihat Menggunakan identitas terkelola di Azure Kubernetes Service untuk informasi selengkapnya.

Pengoptimalan biaya

Optimalisasi biaya adalah tentang mencari cara untuk mengurangi pengeluaran yang tidak perlu dan meningkatkan efisiensi operasional. Untuk informasi selengkapnya, lihat Gambaran umum pilar pengoptimalan biaya.

Pertimbangan biaya umum dijelaskan dalam bagian Prinsip pengoptimalan biaya dalam Microsoft Azure Well-Architected Framework.

Keunggulan operasional

Keunggulan operasional mencakup proses operasi yang menyebarkan aplikasi dan membuatnya tetap berjalan dalam produksi. Untuk informasi selengkapnya, lihat Gambaran umum pilar keunggulan operasional.

  • Sebelum mengonfigurasi kluster Kubernetes dengan dukungan Azure Arc, tinjau batas Langganan Azure Resource Manager dan batas grup Sumber Daya untuk merencanakan jumlah kluster.
  • Gunakan Helm, alat pengemasan sumber terbuka, untuk menginstal dan mengelola siklus hidup aplikasi Kubernetes. Mirip dengan manajer paket Linux seperti APT dan Yum, Anda menggunakan Helm untuk mengelola bagan Kubernetes, yang merupakan paket sumber daya Kubernetes yang telah dikonfigurasi sebelumnya.

Kontributor

Artikel ini dikelola oleh Microsoft. Ini awalnya ditulis oleh kontributor berikut.

Penulis utama:

Untuk melihat profil LinkedIn non-publik, masuk ke LinkedIn.

Langkah berikutnya

Panduan hibrid terkait:

Arsitektur terkait: