Tutorial - Menggunakan layanan PaaS dengan kluster Azure Kubernetes Service (AKS)

Dengan Kubernetes, Anda dapat menggunakan layanan PaaS, seperti Azure Bus Layanan, untuk mengembangkan dan menjalankan aplikasi Anda.

Dalam tutorial ini, bagian lima dari tujuh, Anda membuat namespace dan antrean Azure Bus Layanan untuk menguji aplikasi Anda. Anda akan mempelajari cara untuk:

  • Buat namespace dan antrean Azure Bus Layanan.
  • Perbarui file manifes Kubernetes untuk menggunakan antrean Azure Bus Layanan.
  • Uji aplikasi yang diperbarui dengan menempatkan pesanan.

Sebelum Anda mulai

Dalam tutorial sebelumnya, Anda mengemas aplikasi ke dalam gambar kontainer, mengunggah gambar ke Azure Container Registry, membuat kluster Kubernetes, dan menyebarkan aplikasi. Untuk menyelesaikan tutorial ini, Anda memerlukan file manifes Kubernetes aks-store-quickstart.yaml yang telah dibuat sebelumnya. Unduhan file ini disertakan dengan kode sumber aplikasi dalam tutorial sebelumnya. Pastikan Anda mengkloning repositori dan mengubah direktori ke dalam repositori kloning. Jika Anda belum menyelesaikan langkah-langkah ini dan ingin mengikutinya, mulailah dengan Tutorial 1 - Siapkan aplikasi untuk AKS.

Tutorial ini memerlukan Azure CLI versi 2.34.1 atau yang lebih baru. Jalankan az --version untuk menemukan versinya. Jika Anda perlu memasang atau meningkatkan, lihat Memasang Azure CLI.

Membuat variabel lingkungan

  • Buat variabel lingkungan berikut untuk digunakan untuk perintah dalam tutorial ini:

    LOC_NAME=eastus
    RAND=$RANDOM
    RG_NAME=myResourceGroup
    AKS_NAME=myAKSCluster
    SB_NS=sb-store-demo-$RAND
    

Membuat namespace dan antrean Azure Bus Layanan

Dalam tutorial sebelumnya, Anda menggunakan kontainer RabbitMQ untuk menyimpan pesanan yang dikirimkan oleh order-service. Dalam tutorial ini, Anda menggunakan namespace Azure Bus Layanan untuk menyediakan kontainer cakupan untuk sumber daya Bus Layanan dalam aplikasi. Anda juga menggunakan antrean Azure Service bus untuk mengirim dan menerima pesan di antara komponen aplikasi. Untuk informasi selengkapnya tentang Azure Bus Layanan, lihat Membuat namespace dan antrean Azure Bus Layanan.

  1. Buat namespace azure Bus Layanan menggunakan az servicebus namespace create perintah .

    az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
    
  2. Buat antrean Azure Bus Layanan menggunakan az servicebus queue create perintah .

    az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NS
    
  3. Buat aturan otorisasi Azure Bus Layanan menggunakan az servicebus queue authorization-rule create perintah .

    az servicebus queue authorization-rule create \
        --name sender \
        --namespace-name $SB_NS \
        --resource-group $RG_NAME \
        --queue-name orders \
        --rights Send
    
  4. Dapatkan kredensial Azure Bus Layanan untuk digunakan nanti menggunakan az servicebus namespace show perintah dan az servicebus queue authorization-rule keys list .

    az servicebus namespace show --name $SB_NS --resource-group $RG_NAME --query name -o tsv
    az servicebus queue authorization-rule keys list --namespace-name $SB_NS --resource-group $RG_NAME --queue-name orders --name sender --query primaryKey -o tsv
    

Memperbarui file manifes Kubernetes

  1. Konfigurasikan kubectl untuk menyambungkan ke kluster Anda menggunakan az aks get-credentials perintah .

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. Buka file aks-store-quickstart.yaml di editor teks.

  3. Hapus bagian StatefulSet, ConfigMap, dan Service yang ada rabbitmq dan ganti bagian Penyebaran yang ada order-service dengan konten berikut:

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: order-service
    spec:
      replicas: 1
      selector:
        matchLabels:
          app: order-service
      template:
        metadata:
          labels:
            app: order-service
        spec:
          nodeSelector:
            "kubernetes.io/os": linux
          containers:
          - name: order-service
            image: <REPLACE_WITH_YOUR_ACR_NAME>.azurecr.io/aks-store-demo/order-service:latest
            ports:
            - containerPort: 3000
            env:
            - name: ORDER_QUEUE_HOSTNAME
              value: "<REPLACE_WITH_YOUR_SB_NS_HOSTNAME>" # Example: sb-store-demo-123456.servicebus.windows.net
            - name: ORDER_QUEUE_PORT
              value: "5671"
            - name: ORDER_QUEUE_TRANSPORT
              value: "tls"
            - name: ORDER_QUEUE_USERNAME
              value: "sender"
            - name: ORDER_QUEUE_PASSWORD
              value: "<REPLACE_WITH_YOUR_SB_SENDER_PASSWORD>"
            - name: ORDER_QUEUE_NAME
              value: "orders"
            - name: FASTIFY_ADDRESS
              value: "0.0.0.0"
            resources:
              requests:
                cpu: 1m
                memory: 50Mi
              limits:
                cpu: 75m
                memory: 128Mi
    

    Catatan

    Secara langsung menambahkan informasi sensitif, seperti kunci API, ke file manifes Kubernetes Anda tidak aman dan mungkin secara tidak sengaja berkomitmen pada repositori kode. Kami menambahkannya di sini untuk kesederhanaan. Untuk beban kerja produksi, gunakan Identitas Terkelola untuk mengautentikasi dengan Azure Bus Layanan atau menyimpan rahasia Anda di Azure Key Vault.

  4. Simpan dan tutup file yang diperbarui aks-store-quickstart.yaml .

Sebarkan aplikasi yang diperbarui

  • Sebarkan aplikasi yang diperbarui menggunakan kubectl apply perintah .

    kubectl apply -f aks-store-quickstart.yaml
    

    Contoh output berikut menunjukkan sumber daya yang berhasil diperbarui:

    deployment.apps/order-service configured
    service/order-service unchanged
    deployment.apps/product-service unchanged
    service/product-service unchanged
    deployment.apps/store-front configured
    service/store-front unchanged
    

Uji aplikasi

Melakukan urutan sampel

  1. Dapatkan alamat store-front IP eksternal layanan menggunakan kubectl get service perintah .

    kubectl get service store-front
    
  2. Navigasi ke alamat store-front IP eksternal layanan di browser Anda.

  3. Lakukan pemesanan dengan memilih produk dan memilih Tambahkan ke kelir.

  4. Pilih Keliring untuk melihat pesanan Anda, lalu pilih Checkout.

Menampilkan urutan dalam antrean Azure Bus Layanan

  1. Navigasi ke portal Azure dan buka namespace azure Bus Layanan yang Anda buat sebelumnya.
  2. Di bawah Entitas, pilih Antrean, lalu pilih antrean pesanan.
  3. Dalam antrean pesanan, pilih Bus Layanan Explorer.
  4. Pilih Intip dari awal untuk melihat pesanan yang Anda kirimkan.

Langkah berikutnya

Dalam tutorial ini, Anda menggunakan Azure Bus Layanan untuk memperbarui dan menguji aplikasi sampel. Anda mempelajari cara untuk:

  • Buat namespace dan antrean Azure Bus Layanan.
  • Perbarui file manifes Kubernetes untuk menggunakan antrean Azure Bus Layanan.
  • Uji aplikasi yang diperbarui dengan menempatkan pesanan.

Dalam tutorial berikutnya, Anda mempelajari cara menskalakan aplikasi di AKS.