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 git
sumber , 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:
- Autentikasi HTTPS repositori Git
- Sertifikat yang ditandatangani sendiri HTTPS repositori Git
- Autentikasi SSH repositori Git
- Autentikasi statis wadah
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 DependencyNotReady berhenti. |
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
- Pelajari selengkapnya tentang Penyebaran aplikasi dengan GitOps (Flux v2) untuk AKS dan Kubernetes dengan dukungan Azure Arc.
- Gunakan tutorial kami untuk mempelajari cara mengaktifkan GitOps pada kluster Kubernetes yang didukung AKS atau Azure Arc.
- Pelajari tentang alur kerja CI/CD menggunakan GitOps.