Aracılığıyla paylaş


Azure Arc özellikli Kubernetes kümesinde GitOps kullanarak Helm Grafiklerini dağıtma

Önemli

Bu makale, Flux v1 ile GitOps'a yöneliktir. Flux v2 ile GitOps artık Azure Arc özellikli Kubernetes ve Azure Kubernetes Service (AKS) kümelerinde kullanılabilir; Flux v2 ile GitOps öğreticisine gidin. En kısa zamanda Flux v2'ye geçiş yapmanızı öneririz.

1 Ocak 2024 tarihinden önce oluşturulan Flux v1 tabanlı küme yapılandırma kaynakları desteği 24 Mayıs 2025'te sona erecektir. 1 Ocak 2024'den itibaren yeni Flux v1 tabanlı küme yapılandırma kaynakları oluşturamayacaksınız. Helm, Kubernetes uygulamalarını yüklemenize ve yaşam döngüsünü yönetmenize yardımcı olan bir açık kaynak paketleme aracıdır. APT ve Yum gibi Linux paket yöneticilerine benzer şekilde Helm, önceden yapılandırılmış Kubernetes kaynaklarının paketleri olan Kubernetes grafiklerini yönetmek için kullanılır.

Bu makalede Azure Arc özellikli Kubernetes ile Helm'i yapılandırma ve kullanma adımları gösterilmektedir.

Ön koşullar

  • Etkin aboneliği olan bir Azure hesabı. Ücretsiz hesap oluşturun.

  • Mevcut Azure Arc özellikli Kubernetes bağlı kümesi.

    • Henüz bir kümeye bağlanmadıysanız Azure Arc özellikli Kubernetes kümesi hızlı başlangıç Bağlan adımlarını izleyin.
  • Bu özelliğin avantajlarını ve mimarisini anlama. Yapılandırmalar ve GitOps - Azure Arc özellikli Kubernetes makalesinde daha fazla bilgi edinin.

  • k8s-configuration Sürüm >= 1.0.0'ın Azure CLI uzantısını yükleyin:

    az extension add --name k8s-configuration
    

Azure Arc özellikli Kubernetes ile GitOps ve Helm kullanımına genel bakış

Helm operatörü, Helm Grafiği sürümlerini otomatik hale getiren bir Flux uzantısı sağlar. Helm Grafiği sürümü, HelmRelease adlı bir Kubernetes özel kaynağı aracılığıyla açıklanır. Flux bu kaynakları Git'ten kümeye eşitlerken Helm işleci Helm Grafiklerinin kaynaklarda belirtilen şekilde yayınlandığından emin olur.

Bu makalede kullanılan örnek depo aşağıdaki şekilde yapılandırılmıştır:

├── charts
│   └── azure-arc-sample
│       ├── Chart.yaml
│       ├── templates
│       │   ├── NOTES.txt
│       │   ├── deployment.yaml
│       │   └── service.yaml
│       └── values.yaml
└── releases
    └── app.yaml

Git deposunda iki dizinimiz vardır: biri Helm Grafiği ve diğeri yayınlar yapılandırmasını içeren dizin. dizininde releases , app.yaml aşağıda gösterilen HelmRelease yapılandırmasını içerir:

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

Helm yayın yapılandırması aşağıdaki alanları içerir:

Alan Tanım
metadata.name Zorunlu alan. Kubernetes adlandırma kurallarına uyması gerekir.
metadata.namespace İsteğe bağlı alan. Yayının nerede oluşturulduğunu belirler.
spec.releaseName İsteğe bağlı alan. Sağlanmadıysa yayın adı olacaktır $namespace-$name.
spec.chart.path Grafiği içeren dizin (depo köküne göre).
spec.values Varsayılan parametre değerlerinin Kullanıcı özelleştirmeleri Grafiğin kendisinden.

HelmRelease spec.values içinde belirtilen seçenekler, Grafik kaynağında values.yaml belirtilen seçenekleri geçersiz kılar.

HelmRelease hakkında daha fazla bilgiyi resmi Helm Operatörü belgelerinde bulabilirsiniz.

Yapılandırma oluşturma

için k8s-configurationAzure CLI uzantısını kullanarak bağlı kümenizi örnek Git deposuna bağlayın. Bu yapılandırmaya adı azure-arc-sample verin ve ad alanına Flux işlecini dağıtın 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

Yapılandırma parametreleri

Yapılandırmanın oluşturulmasını özelleştirmek için ek parametreler hakkında bilgi edinin.

Yapılandırmayı doğrulama

Azure CLI'yı kullanarak yapılandırmanın başarıyla oluşturulduğunu doğrulayın.

az k8s-configuration show --name azure-arc-sample --cluster-name AzureArcTest1 --resource-group AzureArcTest --cluster-type connectedClusters

Yapılandırma kaynağı uyumluluk durumu, iletiler ve hata ayıklama bilgileriyle güncelleştirilir.

{
  "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"
}

Uygulamayı doğrulama

Aşağıdaki komutu çalıştırın ve uygulamanın çalıştığını doğrulamak için tarayıcınızda adresine gidin localhost:8080 .

kubectl port-forward -n arc-k8s-demo svc/arc-k8s-demo 8080:8080

Sonraki adımlar

Azure İlkesi kullanarak küme yapılandırmalarını uygun ölçekte uygulayın.