Konfigurasi GitOps Flux v1 dengan Kubernetes dengan dukungan Azure Arc

Penting

Dokumen di bagian ini adalah untuk GitOps dengan Flux v1. GitOps dengan Flux v2 sekarang tersedia untuk kluster Kubernetes dan Azure Kubernetes Service (AKS) dengan dukungan Azure Arc; pelajari tentang GitOps dengan Flux v2. Sebaiknya migrasi ke Flux v2 sesegera mungkin.

Dukungan untuk sumber daya konfigurasi kluster berbasis Flux v1 yang dibuat sebelum 1 Januari 2024 akan berakhir pada 24 Mei 2025. Mulai 1 Januari 2024, Anda tidak akan dapat membuat sumber daya konfigurasi kluster berbasis Flux v1 baru.

Terkait Kubernetes, GitOps adalah praktik pendeklarasian keadaan konfigurasi kluster Kubernetes yang diinginkan (penyebaran, kumpulan nama XML, dll.) dalam repositori Git. Deklarasi ini diikuti oleh penjajakan dan penyebaran berbasis penarikan dari konfigurasi kluster ini menggunakan operator. Repositori Git dapat berisi:

  • Manifes berformat YAML yang menjelaskan sumber daya Kubernetes yang valid, termasuk Kumpulan nama XML, ConfigMaps, Penyebaran, DaemonSets, dll.
  • Bagan helm untuk menyebarkan aplikasi.

Flux, alat sumber terbuka populer di ruang GitOps, dapat disebarkan pada kluster Kubernetes untuk memudahkan alur konfigurasi dari repositori Git ke kluster Kubernetes. Flux mendukung penyebaran operatornya pada cakupan kluster maupun kumpulan nama XML. Operator fluks yang disebarkan dengan cakupan kumpulan nama XML hanya dapat menyebarkan objek Kubernetes dalam kumpulan nama XML tertentu tersebut. Kemampuan untuk memilih antara cakupan kluster atau kumpulan nama XML membantu Anda meraih pola penyebaran multipenyewa pada kluster Kubernetes yang sama.

Konfigurasi

Configurations architecture

Koneksi antara kluster Anda dan repositori Git dibuat sebagai sumber daya konfigurasi (Microsoft.KubernetesConfiguration/sourceControlConfigurations) di atas sumber daya Kubernetes dengan dukungan Azure Arc (diwakili oleh Microsoft.Kubernetes/connectedClusters) di Azure Resource Manager.

Properti sumber daya konfigurasi digunakan untuk menyebarkan operator Fluks pada kluster dengan parameter yang sesuai, seperti repo Git untuk menarik manifes dan interval penjajakan untuk menariknya. Data sumber daya konfigurasi disimpan terenkripsi saat bersiaga di database Azure Cosmos DB untuk memastikan kerahasiaan data.

config-agent yang berjalan di kluster Anda bertanggung jawab untuk:

  • Melacak sumber daya konfigurasi baru atau yang diperbarui pada sumber daya Kubernetes dengan dukungan Azure Arc.
  • Menyebarkan operator Flux untuk menonton repositori Git untuk setiap sumber daya konfigurasi.
  • Menerapkan pembaruan apa pun yang dibuat pada sumber daya konfigurasi apa pun.

Anda dapat membuat beberapa sumber daya konfigurasi dengan cakupan namespace pada kluster Kubernetes dengan dukungan Azure Arc yang sama untuk mencapai multi-penyewaan.

Catatan

  • config-agent memantau sumber daya konfigurasi baru atau yang diperbarui agar tersedia di sumber daya Kubernetes dengan dukungan Azure Arc. Karenanya, agen membutuhkan konektivitas agar keadaan yang diinginkan diturunkan ke kluster. Jika agen tidak dapat terhubung ke Azure, ada penundaan dalam penyebaran keadaan yang diinginkan pada kluster.
  • Input pelanggan sensitif seperti kunci privat, konten host yang diketahui, nama pengguna HTTPS, dan token/kata sandi tidak disimpan selama lebih dari 48 jam di layanan Kubernetes dengan dukungan Azure Arc. Jika Anda menggunakan input yang sensitif untuk konfigurasi, buat kluster online sesering mungkin.

Menerapkan konfigurasi berskala

Karena Azure Resource Manager mengelola konfigurasi, Anda dapat mengotomatiskan pembuatan konfigurasi yang sama di semua sumber daya Kubernetes dengan dukungan Azure Arc menggunakan Azure Policy, dalam lingkup langganan atau grup sumber daya.

Penerapan dalam skala besar ini memastikan konfigurasi garis besar umum (berisi konfigurasi seperti ClusterRoleBindings, RoleBindings, dan NetworkPolicy) dapat diterapkan di seluruh armada atau inventori kluster Kubernetes yang didukung Azure Arc.

Langkah berikutnya