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).

Tip

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

Parameter Format 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 layanan untuk menyebarkan konfigurasi. Default: default.
--scope -s String Cakupan izin untuk operator. Nilai yang mungkin adalah cluster (akses penuh) atau namespace (akses terbatas). Default: 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

Parameter Format Catatan
--kind String Jenis sumber untuk direkonsiliasi. Nilai yang diizinkan: bucket, git, dan azblob. Default: 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. Default: 10m.

Argumen referensi sumber repositori Git

Parameter Format Catatan
--branch String Cabang dalam sumber Git untuk disinkronkan ke kluster. Default: 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 untuk disinkronkan ke kluster. Contoh: --tag=3.2.0.
--semver String Rentang tag semver Git dalam sumber Git untuk disinkronkan ke kluster. Contoh: --semver=">=3.1.0-rc.1 <3.2.0".
--commit String Git commit SHA dalam sumber Git untuk disinkronkan ke kluster. Contoh: --commit=363a6a8fe6a7f13e05d34c163b0ef02a777da20a.

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

Repositori Git Publik

Parameter Format Catatan
--url -u http[s]://server/repo[.git] URL sumber repositori Git untuk berdamai 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 Azure DevOps SSH-RSA.

Repositori Git privat dengan kunci yang dibuat SSH dan Flux

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

Parameter Format 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 diakhpuni dengan baris baru (\n).

Tambahkan kunci umu terhubung ke akun pengguna di penyedia layanan Git Anda.

Parameter Format 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 known_hosts secara langsung atau di dalam file. Saat Anda menyediakan konten Anda sendiri, gunakan spesifikasi format konten known_hosts, bersama dengan salah satu skenario kunci SSH sebelumnya.

Parameter Format 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

Parameter Format 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

Parameter Format 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 wadah

Jika Anda menggunakan bucket sumber, berikut adalah argumen perintah khusus wadah.

Parameter Format Catatan
--url -u URL String URL untuk bucket. Format yang didukung: http://, https://.
--bucket-name String Nama yang akan disinkronkan bucket .
--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 Berkomunikasi dengan bucket tanpa TLS. Jika tidak disediakan, diasumsikan false; jika disediakan, diasumsikan benar.

Argumen sumber Akun Azure Blob Storage

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

Parameter Format 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 saat memperoleh token untuk mengaktifkan nama subjek /autentikasi berbasis 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 autentikasi dengan Azure Blob

Penting

Saat menggunakan autentikasi identitas terkelola untuk kluster dan azblob sumber AKS, identitas terkelola harus ditetapkan minimal 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 gitsumber , bucket atau azBlob . Rahasia lokal harus berisi semua parameter autentikasi yang diperlukan untuk sumber dan harus dibuat di namespace yang sama dengan konfigurasi Flux.

Parameter Format Catatan
--local-auth-ref --local-ref String Referensi lokal ke rahasia Kubernetes di namespace konfigurasi Flux untuk 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 identity bidang 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 Azure DevOps SSH-RSA.

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:

Catatan

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 keluar.

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 Kustomisasi untuk aplikasi yang tersedia di jalur repositori ini, Anda harus membuat kustomisasi file di git untuk konfigurasi Flux untuk digunakan.

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

Parameter Format Catatan
--kustomization Tidak ada nilai Mulai string 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 berdamai dengan kluster. Defaultnya adalah tingkat atas cabang.
prune Boolean 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 Default: 10m.
sync_interval format durasi golang Default: 10m.
retry_interval format durasi golang Default: 10m.
validation String Nilai: none, client, server. Default: none. Lihat Dokumentasi Fluks untuk detailnya.
force Boolean Default: 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