Mulai Cepat: Mengembangkan di Azure Kubernetes Service (AKS) dengan Helm

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 mengelola bagan Kubernetes, yang merupakan paket sumber daya Kubernetes yang telah dikonfigurasi sebelumnya.

Dalam mulai cepat ini, Anda menggunakan Helm untuk mengemas dan menjalankan aplikasi di AKS. Untuk informasi tentang menginstal aplikasi yang ada menggunakan Helm, lihat Menginstal aplikasi yang ada dengan Helm di AKS.

Prasyarat

Membuat Azure Container Registry

Anda perlu menyimpan gambar kontainer Anda di Azure Container Registry (ACR) untuk menjalankan aplikasi Anda di kluster AKS menggunakan Helm. Nama registri Anda harus unik dalam Azure dan berisi 5-50 karakter alfanumerik. Hanya karakter huruf kecil yang diizinkan. SKU dasar adalah titik masuk yang dioptimalkan biaya untuk tujuan pengembangan yang menyediakan keseimbangan penyimpanan dan hasil.

  1. Buat grup sumber daya Azure menggunakan perintah az group create . Contoh berikut ini menampilkan cara membuat grup sumber daya bernama myResourceGroup di lokasi eastus.

    az group create --name myResourceGroup --location eastus
    
  2. Buat Azure Container Registry dengan nama unik dengan memanggil perintah az acr create . Contoh berikut membuat ACR bernama myhelmacr dengan SKU Dasar .

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

    Output Anda akan terlihat mirip dengan contoh output ringkas berikut. Catat nilai loginServer Anda untuk digunakan ACR Anda di langkah selanjutnya.

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

Membuat kluster AKS

Kluster AKS baru Anda memerlukan akses ke ACR untuk menarik gambar kontainer dan menjalankannya.

  • Buat kluster AKS menggunakan perintah az aks create dengan --attach-acr parameter untuk memberikan akses kluster ke ACR Anda. Contoh berikut membuat kluster AKS bernama myAKSCluster dan memberinya akses ke myhelmacr ACR. Pastikan Anda mengganti myhelmacr dengan nama ACR Anda.

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

Menyambungkan ke kluster AKS Anda

Untuk menyambungkan kluster Kubernetes secara lokal, Anda menggunakan klien baris perintah Kubernetes, kubectl. kubectl sudah diinstal jika Anda menggunakan Azure Cloud Shell.

  1. Instal kubectl secara lokal menggunakan perintah az aks install-cli .

    az aks install-cli
    
  2. Konfigurasikan kubectl untuk terhubung ke kluster Kubernetes menggunakan perintah az aks get-credentials. Perintah berikut mendapatkan kredensial untuk kluster AKS bernama myAKSCluster di myResourceGroup.

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

Mengunduh aplikasi contoh

Mulai cepat menggunakan Aplikasi Azure Vote.

  1. Kloning aplikasi dari GitHub menggunakan git clone perintah .

    git clone https://github.com/Azure-Samples/azure-voting-app-redis.git
    
  2. Navigasi ke azure-vote direktori menggunakan cd perintah .

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

Membangun dan mendorong aplikasi sampel ke ACR

  • Buat dan dorong gambar ke ACR Anda menggunakan perintah az acr build . Contoh berikut membangun gambar bernama azure-vote-front:v1 dan mendorongnya ke myhelmacr ACR. Pastikan Anda mengganti myhelmacr dengan nama ACR Anda.

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

Catatan

Anda juga dapat mengimpor bagan Helm ke ACR Anda. Untuk informasi selengkapnya, lihat Dorong dan tarik bagan Helm ke registri kontainer Azure.

Membuat bagan Helm Anda

  1. Hasilkan bagan Helm Anda menggunakan perintah helm create.

    helm create azure-vote-front
    
  2. Perbarui azure-vote-front/Chart.yaml untuk menambahkan dependensi untuk bagan redis dari https://charts.bitnami.com/bitnami repositori bagan dan perbarui appVersion ke v1, seperti yang ditunjukkan dalam contoh berikut:

    Catatan

    Versi gambar kontainer yang ditampilkan dalam panduan ini telah diuji untuk bekerja dengan contoh ini tetapi mungkin bukan versi terbaru yang tersedia.

    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. Perbarui dependensi bagan Helm Anda menggunakan helm dependency update perintah .

    helm dependency update azure-vote-front
    
  4. Perbarui azure-vote-front/values.yaml dengan perubahan berikut.

    • Tambahkan bagian redis untuk mengatur detail gambar, port kontainer, dan nama penyebaran.
    • Tambahkan backendName untuk menyambungkan bagian ujung depan ke penyebaran redis.
    • Ubah image.repository ke <loginServer>/azure-vote-front.
    • Ubah image.tag ke v1.
    • Ubah service.type ke LoadBalancer.

    Misalnya:

    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. env Tambahkan bagian ke azure-vote-front/templates/deployment.yaml untuk meneruskan nama penyebaran redis.

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

Jalankan bagan Helm Anda

  1. Pasang aplikasi Anda menggunakan bagan Helm Anda dengan perintah helm install.

    helm install azure-vote-front azure-vote-front/
    
  2. Perlu beberapa menit agar layanan mengembalikan alamat IP publik. Pantau kemajuan menggunakan perintah kubectl get service dengan argumen --watch.

    kubectl get service azure-vote-front --watch
    

    Ketika layanan siap, EXTERNAL-IP nilai berubah dari <pending> ke alamat IP. Tekan CTRL+C untuk menghentikan kubectl proses menonton.

      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. Arahkan ke penyeimbang muatan aplikasi Anda di browser menggunakan <EXTERNAL-IP> untuk melihat aplikasi contoh.

Menghapus kluster

  • Hapus grup sumber daya Anda, kluster AKS, registri kontainer Azure, gambar kontainer yang disimpan di ACR, dan semua sumber daya terkait menggunakan perintah az group delete dengan --yes parameter untuk mengonfirmasi penghapusan dan --no-wait parameter untuk kembali ke prompt perintah tanpa menunggu operasi selesai.

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

Catatan

Jika Anda membuat kluster AKS dengan identitas terkelola yang ditetapkan sistem (opsi identitas default dalam mulai cepat ini), identitas dikelola oleh platform dan tidak memerlukan penghapusan.

Jika Anda membuat kluster AKS dengan perwakilan layanan, perwakilan layanan tidak akan dihapus saat Anda menghapus kluster. Untuk menghapus perwakilan layanan, lihat Pertimbangan dan penghapusan perwakilan layanan AKS.

Langkah berikutnya

Untuk informasi selengkapnya tentang menggunakan Helm, lihat dokumentasi Helm.