Bagikan melalui


Parameter yang didukung GitOps (Flux v2)

Azure menyediakan kemampuan penyebaran aplikasi otomatis menggunakan GitOps yang berfungsi dengan kluster Azure Kubernetes Service (AKS) dan Kubernetes dengan dukungan Azure Arc. GitOps dengan Flux v2 memungkinkan Anda menggunakan repositori Git sebagai sumber kebenaran untuk konfigurasi kluster dan penyebaran aplikasi. Untuk informasi selengkapnya, lihat Penyebaran aplikasi dengan GitOps (Flux v2) dan Tutorial: Menyebarkan aplikasi menggunakan GitOps dengan Flux v2.

GitOps di Kubernetes dengan dukungan Azure Arc atau Azure Kubernetes Service menggunakan Flux, set alat sumber terbuka populer yang mendukung banyak parameter untuk mengaktifkan berbagai skenario. Untuk deskripsi semua parameter yang didukung Flux, lihat dokumentasi Flux resmi.

Untuk melihat semua parameter yang didukung oleh Flux di Azure, lihat az k8s-configuration dokumentasi. Implementasi ini saat ini tidak mendukung setiap parameter yang didukung Flux. Beri tahu kami jika parameter yang Anda butuhkan hilang dari implementasi Azure.

Artikel ini menjelaskan beberapa parameter dan argumen yang tersedia untuk az k8s-configuration flux create perintah . Anda juga dapat melihat daftar lengkap parameter untuk az k8s-configuration flux dengan menggunakan -h parameter di Azure CLI (misalnya, az k8s-configuration flux -h atau az k8s-configuration flux create -h).

Petunjuk / Saran

Solusi untuk menyebarkan sumber daya Flux dengan parameter yang tidak didukung adalah menentukan sumber daya kustom Fluks yang diperlukan (seperti GitRepository atau Kustomisasi) di dalam repositori Git Anda. Sebarkan sumber daya ini dengan az k8s-configuration flux create perintah . Anda kemudian masih akan dapat mengakses sumber daya Flux Anda melalui antarmuka pengguna Azure Arc.

Argumen umum konfigurasi

Pengaturan Rancangan Catatan
--cluster-name -c string Nama sumber daya kluster di Azure.
--cluster-type -t Nilai yang diizinkan: connectedClusters, managedClusters Gunakan connectedClusters untuk kluster Kubernetes dengan dukungan Azure Arc atau managedClusters untuk kluster AKS.
--resource-group -g string Nama grup sumber daya Azure yang menyimpan sumber daya kluster.
--name -n string Nama konfigurasi Flux di Azure.
--namespace --ns string Nama namespace untuk menerapkan konfigurasi. Standar: default.
--scope -s string Cakupan izin untuk operator. Nilai yang mungkin adalah cluster (akses penuh) atau namespace (akses terbatas). Standar: cluster.
--suspend bendera Menangguhkan semua sumber dan menyesuaikan rekonsiliasi yang ditentukan dalam konfigurasi Fluks ini. Rekonsiliasi aktif pada saat penangguhan akan berlanjut.

Argumen umum sumber

Pengaturan Rancangan Catatan
--kind string Jenis sumber yang perlu direkonsiliasi. Nilai yang diizinkan: bucket, git, azblob. Standar: git.
--timeout format durasi golang Waktu maksimum untuk mencoba mendamaikan sumber sebelum waktu habis. Default: 10m.
--sync-interval --interval format durasi golang Waktu antara rekonsiliasi sumber pada kluster. Standar: 10m.

Argumen referensi sumber repositori Git

Pengaturan Rancangan Catatan
--branch string Cabang di repositori Git yang akan disinkronkan dengan kluster. Standar: master. Repositori yang lebih baru mungkin memiliki cabang akar bernama main, dalam hal ini Anda perlu mengatur --branch=main.
--tag string Tag dalam sumber Git agar disinkronkan dengan kluster. Contoh: --tag=3.2.0.
--semver string Rentang tag semver Git dalam sumber Git yang akan disinkronkan ke kluster. Contoh: --semver=">=3.1.0-rc.1 <3.2.0".
--commit string Git commit SHA dalam repositori Git untuk disinkronkan ke kluster. Contoh: --commit=363a6a8fe6a7f13e05d34c163b0ef02a777da20a.

Untuk informasi selengkapnya, lihat dokumentasi Flux tentang strategi checkout repositori Git.

Repositori Git Publik

Pengaturan Rancangan Catatan
--url -u http[s]://server/repo[.git] URL sumber repositori Git untuk menyelaraskan dengan kluster.

Repositori Git privat dengan SSH

Penting

Azure DevOps mengumumkan penghentian SSH-RSA sebagai metode enkripsi yang didukung untuk menyambungkan ke repositori Azure menggunakan SSH. Jika Anda menggunakan kunci SSH untuk menyambungkan ke repositori Azure dalam konfigurasi Flux, sebaiknya pindah ke kunci RSA-SHA2-256 atau RSA-SHA2-512 yang lebih aman. Untuk informasi selengkapnya, lihat Penghentian SSH-RSA Azure DevOps.

Repositori Git pribadi dengan kunci yang dibuat oleh SSH dan Flux

Tambahkan kunci publik yang dihasilkan oleh Flux ke akun pengguna di penyedia layanan Git Anda.

Pengaturan Rancangan Catatan
--url -u ssh://user@server/repo[.git] git@ harus mengganti user@ jika kunci publik dikaitkan dengan repositori alih-alih akun pengguna.

Repositori Git privat dengan SSH dan kunci yang disediakan pengguna

Gunakan kunci privat Anda sendiri secara langsung atau dari file. Kunci harus dalam format PEM dan diakhiri dengan baris baru (\n).

Tambahkan kunci publik terkait ke akun pengguna di penyedia layanan Git Anda.

Pengaturan Rancangan Catatan
--url -u ssh://user@server/repo[.git] git@ harus mengganti user@ jika kunci publik dikaitkan dengan repositori alih-alih akun pengguna.
--ssh-private-key Kunci Base64 dalam format PEM Berikan kunci secara langsung.
--ssh-private-key-file Jalur lengkap ke file lokal Berikan jalur lengkap ke file lokal yang berisi kunci format PEM.

Host Git privat dengan SSH dan host yang diketahui yang disediakan pengguna

Operator Flux mempertahankan daftar host Git umum dalam filenya known_hosts . Flux menggunakan informasi ini untuk mengautentikasi repositori Git sebelum membuat koneksi SSH. Jika Anda menggunakan repositori Git yang tidak biasa atau host Git Anda sendiri, Anda dapat menyediakan kunci host sehingga Flux dapat mengidentifikasi repositori Anda.

Sama seperti kunci privat, Anda dapat menyediakan konten Anda known_hosts secara langsung atau dalam file. Saat Anda menyediakan konten Anda sendiri, gunakan spesifikasi format konten known_hosts, bersama dengan salah satu skenario kunci SSH sebelumnya.

Pengaturan Rancangan Catatan
--url -u ssh://user@server/repo[.git] git@dapat mengganti .user@
--known-hosts String Base64 Berikan known_hosts konten secara langsung.
--known-hosts-file Jalur lengkap ke file lokal Sediakan known_hosts konten dalam file lokal.

Repositori Git privat dengan pengguna dan kunci HTTPS

Pengaturan Rancangan Catatan
--url -u https://server/repo[.git] HTTPS dengan Autentikasi Dasar.
--https-user String mentah Nama pengguna HTTPS.
--https-key String mentah Token akses pribadi HTTPS atau kata sandi.

Repositori Git privat dengan sertifikat HTTPS CA

Pengaturan Rancangan Catatan
--url -u https://server/repo[.git] HTTPS dengan Autentikasi Dasar.
--https-ca-cert String Base64 Sertifikat CA untuk komunikasi TLS.
--https-ca-cert-file Jalur lengkap ke file lokal Berikan konten sertifikat CA dalam file lokal.

Argumen sumber bucket

Jika Anda menggunakan bucket source, berikut adalah argumen perintah khusus untuk bucket.

Pengaturan Rancangan Catatan
--url -u URL String URL untuk bucket. Format yang didukung: http://, https://.
--bucket-name string Nama dari bucket untuk disinkronkan.
--bucket-access-key string ID Kunci Akses yang digunakan untuk mengautentikasi dengan bucket.
--bucket-secret-key string Kunci Rahasia yang digunakan untuk mengautentikasi dengan bucket.
--bucket-insecure Boolean (tipe data yang hanya memiliki dua nilai: true atau false) Berkomunikasi dengan bucket tanpa TLS. Jika tidak disediakan, diasumsikan false; jika disediakan, diasumsikan benar.

Argumen sumber untuk Akun Azure Blob Storage

Jika Anda menggunakan sumber azblob, berikut ini adalah argumen perintah yang khusus untuk blob.

Pengaturan Rancangan Catatan
--url -u URL String URL untuk azblob.
--container-name string Nama kontainer Azure Blob Storage untuk disinkronkan
--sp_client_id string ID klien untuk mengautentikasi perwakilan layanan dengan Azure Blob, diperlukan untuk metode autentikasi ini
--sp_tenant_id string ID penyewa untuk mengautentikasi perwakilan layanan dengan Azure Blob, diperlukan untuk metode autentikasi ini
--sp_client_secret string Rahasia klien untuk mengautentikasi perwakilan layanan dengan Azure Blob
--sp_client_cert string Sertifikat klien yang dikodekan Base64 untuk mengautentikasi perwakilan layanan dengan Azure Blob
--sp_client_cert_password string Kata sandi untuk sertifikat klien yang digunakan untuk mengautentikasi perwakilan layanan dengan Azure Blob
--sp_client_cert_send_chain string Menentukan apakah akan menyertakan header x5c dalam klaim klien ketika memperoleh token untuk mengaktifkan autentikasi berbasis nama subjek/penerbit untuk sertifikat klien.
--account_key string Kunci Bersama Azure Blob untuk autentikasi
--sas_token string Token SAS Azure Blob untuk autentikasi
--managed-identity-client-id string ID klien identitas terkelola untuk keperluan autentikasi dengan Azure Blob

Penting

Saat menggunakan autentikasi identitas terkelola untuk kluster AKS dan azblob sumber, identitas terkelola harus diberikan setidaknya peran Pembaca Data Blob Penyimpanan. Autentikasi menggunakan identitas terkelola belum tersedia untuk kluster Kubernetes dengan dukungan Azure Arc.

Rahasia lokal untuk autentikasi dengan sumber

Anda dapat menggunakan rahasia Kubernetes lokal untuk autentikasi dengan sumber git, bucket atau azBlob. Rahasia lokal harus berisi semua parameter autentikasi yang diperlukan untuk sumber dan harus dibuat di namespace yang sama dengan konfigurasi Flux.

Pengaturan Rancangan Catatan
--local-auth-ref --local-ref string Referensi lokal ke rahasia Kubernetes di namespace konfigurasi Flux, digunakan untuk autentikasi dengan sumbernya.

Untuk autentikasi HTTPS, Anda membuat rahasia dengan username dan password:

kubectl create ns flux-config
kubectl create secret generic -n flux-config my-custom-secret --from-literal=username=<my-username> --from-literal=password=<my-password-or-key>

Untuk autentikasi SSH, Anda membuat rahasia dengan bidang identity dan known_hosts.

kubectl create ns flux-config
kubectl create secret generic -n flux-config my-custom-secret --from-file=identity=./id_rsa --from-file=known_hosts=./known_hosts

Penting

Azure DevOps mengumumkan penghentian SSH-RSA sebagai metode enkripsi yang didukung untuk menyambungkan ke repositori Azure menggunakan SSH. Jika Anda menggunakan kunci SSH untuk menyambungkan ke repositori Azure dalam konfigurasi Flux, sebaiknya pindah ke kunci RSA-SHA2-256 atau RSA-SHA2-512 yang lebih aman. Untuk informasi selengkapnya, lihat Penghentian SSH-RSA Azure DevOps.

Untuk kedua kasus, saat Anda membuat konfigurasi Flux, gunakan --local-auth-ref my-custom-secret sebagai pengganti parameter autentikasi lainnya:

az k8s-configuration flux create -g <cluster_resource_group> -c <cluster_name> -n <config_name> -t connectedClusters --scope cluster --namespace flux-config -u <git-repo-url> --kustomization name=kustomization1 --local-auth-ref my-custom-secret

Pelajari selengkapnya tentang menggunakan rahasia Kubernetes lokal dengan metode autentikasi ini:

Nota

Jika Anda memerlukan Flux untuk mengakses sumber melalui proksi, Anda harus memperbarui agen Azure Arc dengan pengaturan proksi. Untuk informasi selengkapnya, lihat Menyambungkan menggunakan server proksi eksternal.

Implementasi Git

Untuk mendukung berbagai penyedia repositori yang menerapkan Git, Flux dapat dikonfigurasi untuk menggunakan salah satu dari dua pustaka Git: go-git atau libgit2. Untuk detailnya, lihat dokumentasi Fluks.

Implementasi GitOps flux v2 secara otomatis menentukan pustaka mana yang akan digunakan untuk repositori cloud publik:

  • Untuk repositori GitHub, GitLab, dan BitBucket, Flux menggunakan go-git.
  • Untuk Azure DevOps dan semua repositori lainnya, Flux menggunakan libgit2.

Untuk repositori lokal, Flux menggunakan libgit2.

Kustomisasi

Kustomisasi adalah pengaturan yang dibuat untuk konfigurasi Flux yang memungkinkan Anda memilih jalur tertentu dalam repositori sumber yang direkonsiliasi ke dalam kluster. Anda tidak perlu membuat file 'kustomization.yaml pada jalur yang ditentukan ini. Secara default, semua manifes dalam jalur ini direkonsiliasi. Namun, jika Anda ingin memiliki overlay Kustomize untuk aplikasi yang tersedia di jalur repositori ini, Anda harus membuat berkas Kustomize di git untuk konfigurasi Flux agar dapat digunakan.

Dengan menggunakan az k8s-configuration flux kustomization create, Anda dapat membuat satu atau beberapa kustomisasi selama konfigurasi.

Pengaturan Rancangan Catatan
--kustomization Tidak ada nilai Mulai rentetan parameter yang mengonfigurasi kustomisasi. Anda dapat menggunakannya beberapa kali untuk membuat beberapa kustomisasi.
name string Nama unik untuk kustomisasi ini.
path string Jalur dalam repositori Git untuk menyelaraskan dengan kluster. Default adalah tingkat teratas cabang.
prune Boolean (tipe data yang hanya memiliki dua nilai: true atau false) Defaultnya adalah false. Atur prune=true untuk memastikan bahwa objek yang disebarkan Flux ke kluster dibersihkan jika dihapus dari repositori atau jika konfigurasi Flux atau kustomisasi dihapus. Penggunaan prune=true penting untuk lingkungan di mana pengguna tidak memiliki akses ke kluster dan hanya dapat membuat perubahan melalui repositori Git.
depends_on string Nama satu atau beberapa kustomisasi (dalam konfigurasi ini) yang harus direkonsiliasi sebelum kustomisasi ini dapat direkonsiliasi. Misalnya: depends_on=["kustomization1","kustomization2"]. Jika Anda menghapus kustomisasi yang memiliki kustomisasi dependen, status kustomisasi dependen menjadi , dan rekonsiliasi DependencyNotReadyberhenti.
timeout format durasi golang Standar: 10m.
sync_interval format durasi Golang Standar: 10m.
retry_interval format durasi golang Standar: 10m.
validation string Nilai: none, client, server. Standar: none. Lihat Dokumentasi Fluks untuk detailnya.
force Boolean (tipe data yang hanya memiliki dua nilai: true atau false) Standar: false. Atur force=true untuk menginstruksikan pengontrol kustomisasi untuk membuat ulang sumber daya saat patching gagal karena perubahan bidang yang tidak dapat diubah.

Anda juga dapat menggunakan az k8s-configuration flux kustomization untuk memperbarui, mencantumkan, menampilkan, dan menghapus kustomisasi dalam konfigurasi Fluks.

Langkah berikutnya