Hızlı Başlangıç: Helm ile Azure Kubernetes Service (AKS) üzerinde geliştirme

Helm , Kubernetes uygulamalarının yaşam döngüsünü yüklemenize ve yönetmenize yardımcı olan bir açık kaynak paketleme aracıdır. Helm, APT ve Yum gibi Linux paket yöneticilerine benzer şekilde, önceden yapılandırılmış Kubernetes kaynaklarının paketleri olan Kubernetes grafiklerini yönetir.

Bu hızlı başlangıçta, AKS'de bir uygulamayı paketlemek ve çalıştırmak için Helm'i kullanacaksınız. Helm kullanarak mevcut bir uygulamayı yükleme hakkında bilgi için bkz . AKS'de Helm ile mevcut uygulamaları yükleme.

Önkoşullar

Azure Container Registry oluşturma

Uygulamanızı Helm kullanarak AKS kümenizde çalıştırmak için kapsayıcı görüntülerinizi bir Azure Container Registry'de (ACR) depolamanız gerekir. Kayıt defteri adınızın Azure içinde benzersiz olması ve 5-50 alfasayısal karakter içermesi gerekir. Yalnızca küçük harf karakterlere izin verilir. Temel SKU, geliştirme amaçlı dağıtımlar için uygun maliyetli, depolama ve aktarım hızı açısından dengeli bir giriş noktasıdır.

  1. az group create komutunu kullanarak bir Azure kaynak grubu oluşturun . Aşağıdaki örnek eastus konumunda myResourceGroup adlı bir kaynak grubu oluşturur.

    az group create --name myResourceGroup --location eastus
    
  2. az acr create komutunu çağırarak benzersiz bir ada sahip bir Azure Container Registry oluşturun . Aşağıdaki örnek, Temel SKU ile myhelmacr adlı bir ACR oluşturur.

    az acr create --resource-group myResourceGroup --name myhelmacr --sku Basic
    

    Çıkışınız aşağıdaki daraltılmış örnek çıkışa benzer olmalıdır. ACR'nizin sonraki bir adımda kullanması için loginServer değerinizi not alın.

    {
      "adminUserEnabled": false,
      "creationDate": "2023-12-26T22:36:23.998425+00:00",
      "id": "/subscriptions/<ID>/resourceGroups/myResourceGroup/providers/Microsoft.ContainerRegistry/registries/myhelmacr",
      "location": "eastus",
      "loginServer": "myhelmacr.azurecr.io",
      "name": "myhelmacr",
      "networkRuleSet": null,
      "provisioningState": "Succeeded",
      "resourceGroup": "myResourceGroup",
      "sku": {
        "name": "Basic",
        "tier": "Basic"
      },
      "status": null,
      "storageAccount": null,
      "tags": {},
      "type": "Microsoft.ContainerRegistry/registries"
    }
    

AKS kümesi oluşturma

Kapsayıcı görüntülerini çekmek ve çalıştırmak için yeni AKS kümenizin ACR'nize erişmesi gerekir.

  • ACR'nize küme erişimi vermek için parametresiyle --attach-acr az aks create komutunu kullanarak bir AKS kümesi oluşturun. Aşağıdaki örnek, myAKSCluster adlı bir AKS kümesi oluşturur ve myhelmacr ACR'ye erişim verir. değerini ACR'nizin adıyla değiştirdiğinizden myhelmacr emin olun.

    az aks create --resource-group myResourceGroup --name myAKSCluster --location eastus --attach-acr myhelmacr --generate-ssh-keys
    

AKS kümenize Bağlan

Kubernetes kümesini yerel olarak bağlamak için Kubernetes komut satırı istemcisi kubectl'yi kullanırsınız. kubectl Azure Cloud Shell kullanıyorsanız zaten yüklüdür.

  1. az aks install-cli komutunu kullanarak yerel olarak yükleyinkubectl.

    az aks install-cli
    
  2. az aks get-credentials komutunu kullanarak Kubernetes kümenize bağlanacak şekilde yapılandırınkubectl. Aşağıdaki komut, myResourceGroup'ta myAKSCluster adlı AKS kümesinin kimlik bilgilerini alır.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    

Örnek uygulamayı indirin:

Bu hızlı başlangıçta Azure Vote uygulaması kullanılır.

  1. komutunu kullanarak git clone GitHub'dan uygulamayı kopyalayın.

    git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
    
  2. azure-vote komutunu kullanarak dizine cd gidin.

    cd azure-voting-app-redis/azure-vote/
    

Örnek uygulamayı derleme ve ACR'ye gönderme

  • az acr build komutunu kullanarak görüntüyü derleyin ve ACR'nize gönderin. Aşağıdaki örnek azure-vote-front:v1 adlı bir görüntü oluşturur ve myhelmacr ACR'ye gönderir. değerini ACR'nizin adıyla değiştirdiğinizden myhelmacr emin olun.

    az acr build --image azure-vote-front:v1 --registry myhelmacr --file Dockerfile .
    

Not

Helm grafiklerini ACR'nize de aktarabilirsiniz. Daha fazla bilgi için bkz . Helm grafiklerini Azure kapsayıcı kayıt defterine gönderme ve çekme.

Helm grafiğinizi oluşturma

  1. komutunu kullanarak helm create Helm grafiğinizi oluşturun.

    helm create azure-vote-front
    
  2. Aşağıdaki örnekte gösterildiği gibi azure-vote-front/Chart.yaml dosyasını güncelleştirerek redis grafiği için grafik deposundan https://charts.bitnami.com/bitnami bir bağımlılık ekleyin ve olarak güncelleştirinv1appVersion:

    Not

    Bu kılavuzda gösterilen kapsayıcı görüntüsü sürümleri bu örnekle çalışacak şekilde test edilmiştir, ancak kullanılabilir en son sürüm olmayabilir.

    apiVersion: v2
    name: azure-vote-front
    description: A Helm chart for Kubernetes
    
    dependencies:
      - name: redis
        version: 17.3.17
        repository: https://charts.bitnami.com/bitnami
    
    ...
    # This is the version number of the application being deployed. This version number should be
    # incremented each time you make changes to the application.
    appVersion: v1
    
  3. komutunu kullanarak Helm grafiği bağımlılıklarınızı güncelleştirin helm dependency update .

    helm dependency update azure-vote-front
    
  4. azure-vote-front/values.yaml dosyasını aşağıdaki değişikliklerle güncelleştirin.

    • Görüntü ayrıntılarını, kapsayıcı bağlantı noktasını ve dağıtım adını ayarlamak için bir redis bölümü ekleyin.
    • Ön uç bölümünü redis dağıtımına bağlamak için bir arka uçAdı ekleyin.
    • image.repository öğesini olarak <loginServer>/azure-vote-frontdeğiştirin.
    • image.tag değerini olarak v1değiştirin.
    • service.type dosyasını LoadBalancer olarak değiştirin.

    Örneğin:

    replicaCount: 1
    backendName: azure-vote-backend-master
    redis:
      image:
        registry: mcr.microsoft.com
        repository: oss/bitnami/redis
        tag: 6.0.8
      fullnameOverride: azure-vote-backend
      auth:
        enabled: false
    
    image:
      repository: myhelmacr.azurecr.io/azure-vote-front
      pullPolicy: IfNotPresent
      tag: "v1"
    ...
    service:
      type: LoadBalancer
      port: 80
    ...
    
  5. Redis dağıtımının adını geçirmek için azure-vote-front/templates/deployment.yaml dosyasına bir env bölüm ekleyin.

    ...
          containers:
            - name: {{ .Chart.Name }}
              securityContext:
                {{- toYaml .Values.securityContext | nindent 12 }}
              image: "{{ .Values.image.repository }}:{{ .Values.image.tag | default .Chart.AppVersion }}"
              imagePullPolicy: {{ .Values.image.pullPolicy }}
              env:
              - name: REDIS
                value: {{ .Values.backendName }}
    ...
    

Helm grafiğinizi çalıştırma

  1. komutunu kullanarak Helm grafiğinizi kullanarak helm install uygulamanızı yükleyin.

    helm install azure-vote-front azure-vote-front/
    
  2. Hizmetin genel IP adresi döndürmesi birkaç dakika sürer. bağımsız değişkeniyle komutunu kubectl get service kullanarak ilerleme durumunu --watch izleyin.

    kubectl get service azure-vote-front --watch
    

    Hizmet hazır olduğunda, EXTERNAL-IP değer bir <pending> IP adresine dönüşür. İzleme işlemini durdurmak kubectl için basınCTRL+C.

      NAME               TYPE           CLUSTER-IP    EXTERNAL-IP     PORT(S)        AGE
      azure-vote-front   LoadBalancer   10.0.18.228   <pending>       80:32021/TCP   6s
      ...
      azure-vote-front   LoadBalancer   10.0.18.228   52.188.140.81   80:32021/TCP   2m6s
    
  3. Örnek uygulamayı görmek için uygulamasını kullanarak <EXTERNAL-IP> bir tarayıcıda uygulamanızın yük dengeleyicisine gidin.

Küme silme

Not

AKS kümenizi sistem tarafından atanan yönetilen kimlikle (bu hızlı başlangıçtaki varsayılan kimlik seçeneği) oluşturduysanız, kimlik platform tarafından yönetilir ve kaldırılması gerekmez.

AKS kümenizi bir hizmet sorumlusuyla oluşturduysanız, kümeyi sildiğinizde hizmet sorumlusu kaldırılmaz. Hizmet sorumlusunu kaldırmak için bkz . AKS hizmet sorumlusuyla ilgili önemli noktalar ve silme.

Sonraki adımlar

Helm kullanma hakkında daha fazla bilgi için Helm belgelerine bakın.