Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
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:
- Autentikasi HTTPS repositori Git
- Sertifikat HTTPS yang Ditandatangani Sendiri untuk Repositori Git
- Autentikasi SSH repositori Git
- Autentikasi statis wadah
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
- 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.