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.

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 sahip olmalısı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. Eğer 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=westus2
    RAND=$RANDOM
    RG_NAME=myResourceGroup
    AKS_NAME=myAKSCluster
    SB_NS=sb-store-demo-$RAND
    

Azure Service Bus ad alanı ve kuyruk oluşturma

Önceki öğreticilerde, order-service tarafından gönderilen siparişleri depolamak için bir RabbitMQ kapsayıcısı kullandınız. Bu öğreticide, uygulamadaki Service Bus kaynakları için kapsayıcı bir alan oluşturmak amacıyla 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 Azure Service Bus ad alanı ve kuyruğu oluşturma sayfasına bakın.

  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. az servicebus namespace show ve az servicebus queue authorization-rule keys list komutlarını kullanarak 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. kubectl, az aks get-credentials komutunu kullanarak kümenize bağlanacak şekilde yapılandırın.

    az aks get-credentials --resource-group myResourceGroup --name myAKSCluster
    
  2. aks-store-quickstart.yaml dosyasını 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
            startupProbe:
              httpGet:
                path: /health
                port: 3000
              failureThreshold: 5
              initialDelaySeconds: 20
              periodSeconds: 10
            readinessProbe:
              httpGet:
                path: /health
                port: 3000
              failureThreshold: 3
              initialDelaySeconds: 3
              periodSeconds: 5
            livenessProbe:
              httpGet:
                path: /health
                port: 3000
              failureThreshold: 5
              initialDelaySeconds: 3
              periodSeconds: 3
    

    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 store-front hizmetin dış IP adresini kubectl get service alın.

    kubectl get service store-front
    
  2. Tarayıcınızda http://<external-ip> kullanarak store-front hizmetinin dış IP adresine 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 altında Kuyruklar'ı seçin ve ardından siparişler kuyruğunu seçin.
  3. Siparişler kuyruğunda Service Bus Gezgini'ni seçin.
  4. Siparişinizi görüntülemek için Baştan Göz At seçeneğini 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.