Menyebarkan Bagan Helm menggunakan GitOps pada kluster Kube dengan Azure Arc aktif
Penting
Artikel ini untuk GitOps dengan Flux v1. GitOps dengan Flux v2 sekarang tersedia untuk kluster Kubernetes dan Azure Kubernetes Service (AKS) dengan dukungan Azure Arc; buka tutorial untuk 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. Helm adalah alat pengemasan sumber terbuka yang membantu Anda memasang dan mengelola siklus hidup aplikasi Kubernetes. Mirip dengan manajer paket Linux seperti APT dan Yum, Helm digunakan untuk mengelola bagan Kube, yang merupakan paket sumber daya Kube yang telah dikonfigurasi sebelumnya.
Artikel ini menunjukkan cara mengonfigurasi dan menggunakan Helm bersama Kube dengan Azure Arc aktif.
Prasyarat
Akun Azure dengan langganan aktif. Buat akun secara gratis.
Kluster terhubung Kube yang didukung Azure Arc yang sudah ada.
- Jika Anda belum menyambungkan kluster, baca Mulai cepat menyambungkan kluster Kube yang didukung Azure Arc.
Pemahaman manfaat dan arsitektur fitur ini. Baca selengkapnya di Artikel Konfigurasi dan GitOps - Kube yang didukung Azure Arc.
k8s-configuration
Instal ekstensi Azure CLI versi >= 1.0.0:az extension add --name k8s-configuration
Gambaran umum penggunaan GitOps dan Helm bersama Kube dengan Azure Arc aktif
Operator Helm menyediakan ekstensi untuk Flux yang mengotomatiskan rilis Bagan Helm. Rilis Bagan Helm dijelaskan melalui sumber daya kustom Kube bernama HelmRelease. Flux menyinkronkan sumber daya ini dari Git ke kluster, sementara operator Helm memastikan Bagan Helm dirilis seperti yang ditentukan dalam sumber daya.
Contoh repositori yang digunakan dalam artikel ini disusun dengan cara berikut:
├── charts
│ └── azure-arc-sample
│ ├── Chart.yaml
│ ├── templates
│ │ ├── NOTES.txt
│ │ ├── deployment.yaml
│ │ └── service.yaml
│ └── values.yaml
└── releases
└── app.yaml
Dalam repo Git kami memiliki dua direktori: satu berisi Bagan Helm dan satu berisi konfigurasi rilis. Dalam direktori releases
, app.yaml
yang berisi konfigurasi HelmRelease, ditunjukkan di bawah ini:
apiVersion: helm.fluxcd.io/v1
kind: HelmRelease
metadata:
name: azure-arc-sample
namespace: arc-k8s-demo
spec:
releaseName: arc-k8s-demo
chart:
git: https://github.com/Azure/arc-helm-demo
ref: master
path: charts/azure-arc-sample
values:
serviceName: arc-k8s-demo
Konfigurasi rilis Helm berisi bidang berikut:
Bidang | Deskripsi |
---|---|
metadata.name |
Bidang wajib. Perlu mengikuti konvensi penamaan Kube. |
metadata.namespace |
Bidang opsional. Menentukan tempat rilis dibuat. |
spec.releaseName |
Bidang opsional. Jika tidak diberikan, nama rilis akan menjadi $namespace-$name . |
spec.chart.path |
Direktori yang berisi bagan (bergantung pada terhadap akar repositori). |
spec.values |
Kustomisasi pengguna nilai parameter default dari Bagan itu sendiri. |
Opsi yang ditentukan dalam HelmRelease spec.values
akan menggantikan opsi yang ditentukan di values.yaml
dari sumber Bagan.
Anda dapat mempelajari lebih lanjut tentang HelmRelease dalam dokumentasi Operator Helm resmi.
Membuat profil konfigurasi
Menggunakan ekstensi CLI Azure untuk k8s-configuration
, tautkan kluster tersambung Anda ke repositori Git contoh. Beri nama konfigurasi ini azure-arc-sample
dan sebarkan operator Flux di namespace arc-k8s-demo
.
az k8s-configuration create --name azure-arc-sample --cluster-name AzureArcTest1 --resource-group AzureArcTest --operator-instance-name flux --operator-namespace arc-k8s-demo --operator-params='--git-readonly --git-path=releases' --enable-helm-operator --helm-operator-chart-version='1.2.0' --helm-operator-params='--set helm.versions=v3' --repository-url https://github.com/Azure/arc-helm-demo.git --scope namespace --cluster-type connectedClusters
Parameter konfigurasi
Untuk menyesuaikan pembuatan konfigurasi, pelajari tentang parameter tambahan.
Memvalidasi konfigurasi
Menggunakan Azure CLI, pastikan bahwa konfigurasi berhasil dibuat.
az k8s-configuration show --name azure-arc-sample --cluster-name AzureArcTest1 --resource-group AzureArcTest --cluster-type connectedClusters
Sumber daya konfigurasi diperbarui dengan status kepatuhan, pesan, dan informasi penelusuran kesalahan.
{
"complianceStatus": {
"complianceState": "Installed",
"lastConfigApplied": "2019-12-05T05:34:41.481000",
"message": "{\"OperatorMessage\":null,\"ClusterState\":null}",
"messageLevel": "3"
},
"enableHelmOperator": "True",
"helmOperatorProperties": {
"chartValues": "--set helm.versions=v3",
"chartVersion": "1.2.0"
},
"id": "/subscriptions/57ac26cf-a9f0-4908-b300-9a4e9a0fb205/resourceGroups/AzureArcTest/providers/Microsoft.Kubernetes/connectedClusters/AzureArcTest1/providers/Microsoft.KubernetesConfiguration/sourceControlConfigurations/azure-arc-sample",
"name": "azure-arc-sample",
"operatorInstanceName": "flux",
"operatorNamespace": "arc-k8s-demo",
"operatorParams": "--git-readonly --git-path=releases",
"operatorScope": "namespace",
"operatorType": "Flux",
"provisioningState": "Succeeded",
"repositoryPublicKey": "",
"repositoryUrl": "https://github.com/Azure/arc-helm-demo.git",
"resourceGroup": "AzureArcTest",
"type": "Microsoft.KubernetesConfiguration/sourceControlConfigurations"
}
Memvalidasi aplikasi
Jalankan perintah berikut dan buka localhost:8080
di browser Anda untuk memastikan bahwa aplikasi sedang berjalan.
kubectl port-forward -n arc-k8s-demo svc/arc-k8s-demo 8080:8080
Langkah berikutnya
Menerapkan konfigurasi kluster dalam skala besar menggunakan Azure Policy.
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk