Aracılığıyla paylaş


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şturmak

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'inizin 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.

  • az aks create komutunu --attach-acr parametresiyle kullanarak, kümenin ACR'nize erişimini sağlamak için 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. myhelmacr öğesini ACR'nizin adıyla değiştirdiğinizden emin olun.

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

AKS kümenize bağlanma

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. kubectl komutunu kullanarak yerel olarak yükleyin.

    az aks install-cli
    
  2. kubectl Kubernetes kümenize bağlanacak şekilde yapılandırmak için az aks get-credentials komutunu kullanın. 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. cd komutunu kullanarak azure-vote dizinine geçin.

    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. myhelmacr öğesini ACR'nizin adıyla değiştirdiğinizden 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 Helm çizelgelerini bir Azure kapsayıcı kayıt defterine gönderme ve çekme kısmına bakın.

Helm grafiğinizi oluşturma

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

    helm create azure-vote-front
    
  2. Azure-vote-front/Chart.yaml dosyasını, aşağıdaki örnekte gösterildiği gibi, https://charts.bitnami.com/bitnami grafik deposundan redis grafiğine bir bağımlılık eklemek ve appVersion sürümünü v1 sürümüne güncellemek için güncelleyin:

    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 ögesini <loginServer>/azure-vote-front ile değiştirin.
    • image.tag değeriniv1.
    • 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. Redisenvadını geçirmek için azure-vote-front/templates/deployment.yaml dosyasına bir 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ırın

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

    helm install azure-vote-front azure-vote-front/
    
  2. Hizmetin genel IP adresi döndürmesi birkaç dakika sürer. kubectl get service komutunu --watch argümanıyla kullanarak ilerleme durumunu izleyin.

    kubectl get service azure-vote-front --watch
    

    Hizmet hazır olduğunda, EXTERNAL-IP değeri <pending>'den bir IP adresine değişir. İzleme işlemini durdurmak CTRL+C için basınkubectl.

      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 <EXTERNAL-IP> kullanarak bir tarayıcıda uygulamanızın yük dengeleyicisine gidin.

Kümeyi sil

  • Kaynak grubunuzu, AKS kümenizi, Azure kapsayıcı kayıt defterinizi, ACR'de depolanan kapsayıcı görüntülerinizi ve tüm ilgili kaynakları kaldırmak için az group delete komutunu, silme işlemini onaylamak için --yes parametresiyle ve işlemin tamamlanmasını beklemeden komut istemine dönmek için --no-wait parametresiyle kullanın.

    az group delete --name myResourceGroup --yes --no-wait
    

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 AKS hizmet sorumlusuyla ilgili önemli noktalar ve silme başlığına bakınız.

Sonraki adımlar

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