Aracılığıyla paylaş


Öğretici - Azure Kubernetes Service (AKS) kümesiyle PaaS hizmetlerini kullanma

Kubernetes ile uygulamalarınızı geliştirmek ve çalıştırmak için Azure Service Bus gibi PaaS hizmetlerini kullanabilirsiniz.

Yedinin beşinci bölümü olan bu öğreticide, uygulamanızı test etmek için bir Azure Service Bus ad alanı ve kuyruğu oluşturacaksınız. Şunları yapmayı öğreneceksiniz:

  • Azure Service Bus ad alanı ve kuyruğu oluşturun.
  • Azure Service Bus kuyruğunun kullanılması için Kubernetes bildirim dosyasını güncelleştirin.
  • Bir sipariş vererek güncelleştirilmiş uygulamayı test edin.

Başlamadan önce

Önceki öğreticilerde bir uygulamayı kapsayıcı görüntüsüne paketlediyseniz, görüntüyü Azure Container Registry'ye yüklediyseniz, bir Kubernetes kümesi oluşturdunuz ve bir uygulama dağıttınız. Bu öğreticiyi tamamlamak için önceden oluşturulmuş aks-store-quickstart.yaml Kubernetes bildirim dosyasına ihtiyaç duyarsınız. Bu dosya indirme işlemi önceki bir öğreticide uygulama kaynak koduna eklenmiştir. Depoyu kopyaladığınızdan ve dizinleri kopyalanan depoya değiştirdiğinizden emin olun. Bu adımları tamamlamadıysanız ve takip etmek istiyorsanız, Öğretici 1 - AKS için uygulama hazırlama ile başlayın.

Bu öğretici için Azure CLI sürüm 2.34.1 veya üzeri gerekir. Sürümü bulmak için az --version komutunu çalıştırın. Yüklemeniz veya yükseltmeniz gerekirse, bkz. Azure CLI yükleme.

Ortam değişkenlerini oluşturma

  • Bu öğreticideki komutlar için kullanılacak aşağıdaki ortam değişkenlerini oluşturun:

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

Azure Service Bus ad alanı ve kuyruğu oluşturma

Önceki öğreticilerde, tarafından gönderilen siparişleri depolamak için bir RabbitMQ kapsayıcısı order-servicekullandınız. Bu öğreticide, uygulama içindeki Service Bus kaynakları için bir kapsam kapsayıcısı sağlamak üzere bir Azure Service Bus ad alanı kullanırsınız. Uygulama bileşenleri arasında ileti göndermek ve almak için bir Azure Service Bus kuyruğu da kullanırsınız. Azure Service Bus hakkında daha fazla bilgi için bkz . Azure Service Bus ad alanı ve kuyruğu oluşturma.

  1. komutunu kullanarak az servicebus namespace create bir Azure Service Bus ad alanı oluşturun.

    az servicebus namespace create --name $SB_NS --resource-group $RG_NAME --location $LOC_NAME
    
  2. komutunu kullanarak az servicebus queue create bir Azure Service Bus kuyruğu oluşturun.

    az servicebus queue create --name orders --resource-group $RG_NAME --namespace-name $SB_NS
    
  3. komutunu kullanarak az servicebus queue authorization-rule create bir Azure Service Bus yetkilendirme kuralı oluşturun.

    az servicebus queue authorization-rule create \
        --name sender \
        --namespace-name $SB_NS \
        --resource-group $RG_NAME \
        --queue-name orders \
        --rights Send
    
  4. ve az servicebus queue authorization-rule keys list komutlarını kullanarak az servicebus namespace show daha sonra kullanmak üzere Azure Service Bus kimlik bilgilerini alın.

    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
    

Kubernetes bildirim dosyasını güncelleştirme

  1. komutunu kullanarak kümenize bağlanacak şekilde az aks get-credentials yapılandırınkubectl.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. aks-store-quickstart.yaml Dosyayı bir metin düzenleyicisinde açın.

  3. Mevcut rabbitmq StatefulSet, ConfigMap ve Service bölümlerini kaldırın ve mevcut order-service Dağıtım bölümünü aşağıdaki içerikle değiştirin:

    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
    

    Not

    API anahtarları gibi hassas bilgilerin Kubernetes bildirim dosyalarınıza doğrudan eklenmesi güvenli değildir ve yanlışlıkla kod depolarına işlenebilir. Kolaylık olması için buraya ekledik. Üretim iş yüklerinde, Azure Service Bus ile kimlik doğrulaması yapmak veya gizli dizilerinizi Azure Key Vault'ta depolamak için Yönetilen Kimlik'i kullanın.

  4. Güncelleştirilmiş aks-store-quickstart.yaml dosyayı kaydedin ve kapatın.

Güncelleştirilmiş uygulamayı dağıtma

  • komutunu kullanarak güncelleştirilmiş uygulamayı dağıtın kubectl apply .

    kubectl apply -f aks-store-quickstart.yaml
    

    Aşağıdaki örnek çıktıda başarıyla güncelleştirilen kaynaklar gösterilmektedir:

    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
    

Uygulamayı test etme

Örnek sipariş verme

  1. komutunu kullanarak kubectl get service hizmetin dış IP adresini store-front alın.

    kubectl get service store-front
    
  2. kullanarak http://<external-ip>tarayıcınızda hizmetin dış IP adresine store-front gidin.

  3. Bir ürün seçip Sepete ekle'yi seçerek sipariş verme.

  4. Siparişinizi görüntülemek için Sepet'i ve ardından Alışverişi Tamamla'yı seçin.

Azure Service Bus kuyruğundaki sırayı görüntüleme

  1. Azure portalına gidin ve daha önce oluşturduğunuz Azure Service Bus ad alanını açın.
  2. Varlıklar'ın altında Kuyruklar'ı ve ardından sipariş kuyruğu'na tıklayın.
  3. Siparişler kuyruğunda Service Bus Gezgini'ni seçin.
  4. Gönderdiğiniz siparişi görüntülemek için baştan göz at'ı seçin.

Sonraki adımlar

Bu öğreticide, örnek uygulamayı güncelleştirmek ve test etmek için Azure Service Bus'ı kullandınız. Şunları öğrendiniz:

  • Azure Service Bus ad alanı ve kuyruğu oluşturun.
  • Azure Service Bus kuyruğunun kullanılması için Kubernetes bildirim dosyasını güncelleştirin.
  • Bir sipariş vererek güncelleştirilmiş uygulamayı test edin.

Sonraki öğreticide AKS'de bir uygulamanın nasıl ölçeklendirileceğinizi öğreneceksiniz.