Hızlı başlangıç: Held ile Azure Kubernetes hizmeti (AKS) üzerinde geliştirme

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

Bu hızlı başlangıçta, AKS üzerinde bir uygulamayı paketlemek ve çalıştırmak için Held kullanacaksınız. Held kullanarak var olan bir uygulamayı yükleme hakkında daha fazla bilgi için bkz. AKS nasıl yapılır Kılavuzu 'nda mevcut uygulamaları Held Ile yükleme .

Önkoşullar

Azure Container Registry oluşturma

Bilgisayarınızı AKS kümenizde Helm kullanarak çalıştırmak için kapsayıcı görüntülerinizi bir Azure Container Registry (ACR) olarak depolamanız gerekir. Azure 'da benzersiz bir kayıt defteri adı sağlayın ve 5-50 alfasayısal karakter içerir. 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.

Aşağıdaki örnek, Basic SKU 'Su Ile Myresourcegroup Içinde myhelmacr adlı bir ACR oluşturmak için az ACR Create komutunu kullanır.

az group create --name MyResourceGroup --location eastus
az acr create --resource-group MyResourceGroup --name MyHelmACR --sku Basic

Çıktı aşağıdaki örneğe benzer olacaktır. Daha sonraki bir adımda kullanacağınız için ACR 'niz için Loginserver değerini göz önünde bulabilirsiniz. Aşağıdaki örnekte, Myhelmacr.azurecr.io Myhelmacr için loginserver ' dır.

{
  "adminUserEnabled": false,
  "creationDate": "2019-06-11T13:35:17.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

Yeni AKS kümenizin, kapsayıcı görüntülerini çekmek ve çalıştırmak için ACR 'nize erişmesi gerekir. Şunları yapmak için aşağıdaki komutu kullanın:

  • Myaks adlı bir aks kümesi oluşturun ve Myhelmacr öğesini ekleyin.
  • Myaks kümesine myhelmacr ACR 'nize erişim izni verin.
az aks create -g MyResourceGroup -n MyAKS --location eastus  --attach-acr MyHelmACR --generate-ssh-keys

aks kümenize Bağlan

Bir Kubernetes kümesini yerel olarak bağlamak için Kubernetes komut satırı istemcisini ( kubectl) kullanın. kubectl Azure Cloud Shell kullanıyorsanız, zaten yüklüdür.

  1. kubectlKomutunu kullanarak yerel olarak yükler az aks install-cli :

    az aks install-cli
    
  2. kubectlKomutunu kullanarak Kubernetes kümenize bağlanacak şekilde yapılandırın az aks get-credentials . Aşağıdaki komut örneği, Myresourcegroup Içinde myaks adlı aks kümesi için kimlik bilgilerini alır:

    az aks get-credentials --resource-group MyResourceGroup --name MyAKS
    

Örnek uygulamayı indirin:

Bu hızlı başlangıç, Azure oy uygulamasınıkullanır. uygulamayı GitHub kopyalayın ve azure-vote dizine gidin.

git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
cd azure-voting-app-redis/azure-vote/

Örnek uygulamayı derleyin ve ACR 'ye gönderin

Yukarıdaki Dockerfile 'ı kullanarak, kayıt defterine görüntü derlemek ve göndermek için az ACR Build komutunu çalıştırın. .Komutun sonunda, Dockerfile konumunu (Bu durumda, geçerli dizin) ayarlar.

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

Not

ACR 'nize kapsayıcı görüntüleri almanın yanı sıra, Helm grafiklerini de ACR 'nize aktarabilirsiniz. Daha fazla bilgi için bkz. Azure Container Registry 'de Helu grafikleri gönderme ve çekme.

Held grafiğinizi oluşturma

Komutunu kullanarak Held grafiğinizi oluşturun helm create .

helm create azure-vote-front

Grafik deposundan redsıs grafiğinin bir bağımlılığını eklemek ve ' ye güncelleştirmek için Azure-Vote-Front/Chart. YAML 'yi güncelleştirin https://charts.bitnami.com/bitnami appVersion v1 . Örneğin:

apiVersion: v2
name: azure-vote-front
description: A Helm chart for Kubernetes

dependencies:
  - name: redis
    version: 14.7.1
    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

Şu kullanarak helmchart bağımlılıklarını güncelleştirin helm dependency update :

helm dependency update azure-vote-front

Update Azure-Vote-Front/values. YAML:

  • Görüntü ayrıntılarını, kapsayıcı bağlantı noktasını ve dağıtım adını ayarlamak için bir redsıs bölümü ekleyin.
  • Ön uç bölümünü redsıs dağıtımına bağlamak Için backendname ekleyin.
  • Image. Repository öğesini olarak değiştirin <loginServer>/azure-vote-front .
  • Image. Tag öğesini olarak değiştirin v1 .
  • Service. Type öğesini LoadBalancer öğesine değiştirin.

Örneğin:

# Default values for azure-vote-front.
# This is a YAML-formatted file.
# Declare variables to be passed into your templates.

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

env Redsıs dağıtımının adını geçirmek için Azure-Vote-Front/Templates/Deployment. YAML öğesine 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 }}
...

Held grafiğinizi çalıştırma

Komutunu kullanarak Held grafiğinizi kullanarak uygulamanızı yüklersiniz helm install .

helm install azure-vote-front azure-vote-front/

Hizmetin genel bir IP adresi döndürmesi birkaç dakika sürer. kubectl get serviceKomutunu bağımsız değişkeniyle kullanarak ilerlemeyi izleyin --watch .

$ kubectl get service azure-vote-front --watch
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

Örnek uygulamayı görmek için kullanarak bir tarayıcıda uygulamanızın yük dengeleyicisine gidin <EXTERNAL-IP> .

Küme silme

Kaynak grubunu, AKS kümesini, kapsayıcı kayıt defterini, ACR 'de depolanan kapsayıcı görüntülerini ve tüm ilgili kaynakları kaldırmak için az Group Delete komutunu kullanın.

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

Not

Kümeyi sildiğinizde, AKS kümesi tarafından kullanılan Azure Active Directory hizmet sorumlusu kaldırılmaz. Hizmet sorumlusunu kaldırma adımları için bkz. AKS hizmet sorumlusuyla ilgili önemli noktalar ve silme.

Yönetilen bir kimlik kullandıysanız, kimlik platform tarafından yönetilir ve kaldırma gerektirmez.

Sonraki adımlar

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