İngilizce dilinde oku

Aracılığıyla paylaş


Hızlı Başlangıç: Azure Kubernetes Service (AKS) veya Arc özellikli Kubernetes için Dapr küme uzantısını kullanarak uygulama dağıtma

Bu hızlı başlangıçta AKS veya Arc özellikli Kubernetes kümesinde Dapr küme uzantısını kullanacaksınız. İleti oluşturan bir hello world Python uygulamasından ve iletileri kullanan ve kalıcı hale getiren bir Node.js uygulamasından oluşan bir örnek dağıtırsınız.

Önkoşullar

Depoyu kopyalama

  1. komutunu kullanarak Dapr hızlı başlangıç deposunu git clone kopyalayın.

    Bash
    git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.git
    
  2. Dizinine dapr-aks-extension-quickstart geçin.

Redis deposu oluşturma ve yapılandırma

Redis için Azure Cache oluşturma akışını başlatmak için Azure portalını açın.

  1. Önerilen bilgileri "Açık kaynak Redis önbelleği oluşturma" hızlı başlangıç yönergelerine göre doldurun.
  2. Redis örneği dağıtımını başlatmak için Oluştur'u seçin.

Kaynak bilgilerini doğrulama

  1. Redis kaynağı dağıtıldıktan sonra genel bakış sayfasına gidin.
  2. Şunlara dikkat edin:
    • Önbellek genel bakış sayfasının Temel Parçalar bölümünde bulunan konak adı. Konak adı biçimi şuna benzer: xxxxxx.redis.cache.windows.net.
    • Önbelleğin Gelişmiş Ayarlar dikey penceresinde bulunan SSL bağlantı noktası. Varsayılan değer şudur: 6380.
  3. Kimlik Doğrulaması dikey penceresine gidin ve Kaynağınızda Microsoft Entra Authentication'ın etkinleştirildiğini doğrulayın.

Yönetilen kimlik ekleme

  1. Kimlik Doğrulaması dikey penceresinde, Microsoft Entra Kimlik Doğrulamasını Etkinleştir onay kutusunun altındaki alana önkoşul olarak oluşturduğunuz Yönetilen Kimliğin adını yazın.

    Redis kullanıcısı olarak eklemek üzere yönetilen kimlik seçebileceğiniz alanı gösteren ekran görüntüsü.

  2. Yönetilen kimliğinizin Redis Kullanıcı tarafından atanan Veri Sahibi Erişim İlkesi izinleri olarak eklendiğini doğrulayın.

Genel ağ erişimini etkinleştirme

Bu senaryo için Redis önbelleğiniz genel ağ erişimini kullanır. Bu hızlı başlangıcı tamamladığınızda kaynakları temizlediğinizden emin olun.

  1. Özel Uç Nokta dikey penceresine gidin.
  2. Üstteki menüden Genel ağ erişimini etkinleştir'e tıklayın.

Dapr bileşenlerini yapılandırma

içinde redis.yaml, bileşen AKS kümesi için etkinleştirilen iş yükü kimliği kullanılarak Entra ID Kimlik Doğrulaması kullanacak şekilde yapılandırılır. Erişim anahtarı gerekmez.

yml
- name: useEntraID
  value: "true"
- name: enableTLS
  value: true
  1. Tercih ettiğiniz kod düzenleyicisinde örnekteki deploy dizine gidin ve dosyasını açın redis.yaml.

  2. için redisHostyer tutucu <REDIS_HOST>:<REDIS_PORT> değerini Daha önce Azure portalından kaydettiğiniz Redis cache konak adı ve SSL bağlantı noktası ile değiştirin.

    yml
    - name: redisHost
    value: <your-cache-name>.redis.cache.windows.net:6380
    

Yapılandırmayı uygulama

  1. redis.yaml komutunu kullanarak kubectl apply dosyayı uygulayın.

    Bash
    kubectl apply -f ./deploy/redis.yaml
    
  2. komutunu kullanarak kubectl get components.redis durum deponuzun başarıyla yapılandırıldığını doğrulayın.

    Bash
    kubectl get components.redis -o yaml
    

    Beklenen çıkış

    Output
    component.dapr.io/statestore created
    

Dapr sepet ile Node.js uygulamasını dağıtma

Node.js uygulamasını yapılandırma

içindenode.yaml, pod belirtiminde iş yükü kimliğini kullanmak için etiket eklenmiştir:

YAML
labels:
  app: node
  azure.workload.identity/use: "true"
  1. dizinine deploy gidin ve dosyasını açın node.yaml.

  2. için serviceAccountName yer tutucu <SERVICE_ACCOUNT_NAME> değerini oluşturduğunuz hizmet hesabı adıyla değiştirin.

    • Bu değer, federasyon kimliği kimlik bilgilerini oluşturmak için kullandığınız hizmet hesabıyla aynı olmalıdır.

Yapılandırmayı uygulama

  1. komutunu kullanarak Node.js uygulama dağıtımını kubectl apply kümenize uygulayın.

    Bash
    kubectl apply -f ./deploy/node.yaml
    
  2. Kubernetes dağıtımları zaman uyumsuz olduğundan, sonraki adımlara geçmeden önce aşağıdaki komutla dağıtımın tamamlanmasını doğrulayın:

    Bash
    kubectl rollout status deploy/nodeapp
    
  3. komutunu kullanarak hizmetinize erişin kubectl get svc .

    Bash
    kubectl get svc nodeapp
    
  4. Çıkıştaki öğesini EXTERNAL-IP not edin.

Node.js hizmetini doğrulama

  1. kullanarak curlhizmeti ile çağırın EXTERNAL-IP.

    Bash
    curl $EXTERNAL_IP/ports
    

    Örnek çıkış

    Output
    {"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
    
  2. Uygulamaya bir sipariş gönderin.

    Bash
    curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
    
  3. Siparişi onaylayın.

    Bash
    curl $EXTERNAL_IP/order
    

    Beklenen çıkış

    Output
    { "orderId": "42" }
    

Python uygulamasını Dapr sepet ile dağıtma

Python uygulamasını yapılandırma

içindepython.yaml, pod belirtiminde iş yükü kimliğini kullanmak için etiket eklenmiştir:

YAML
labels:
  app: node
  azure.workload.identity/use: "true"
  1. dizinine deploy gidin ve dosyasını açın python.yaml.

  2. için serviceAccountName yer tutucu <SERVICE_ACCOUNT_NAME> değerini oluşturduğunuz hizmet hesabı adıyla değiştirin.

    • Bu değer, federasyon kimliği kimlik bilgilerini oluşturmak için kullandığınız hizmet hesabıyla aynı olmalıdır.

Yapılandırmayı uygulama

  1. komutunu kullanarak Python uygulamasını Kubernetes kümenize dağıtın kubectl apply .

    Bash
    kubectl apply -f ./deploy/python.yaml
    
  2. Kubernetes dağıtımları zaman uyumsuz olduğundan, sonraki adımlara geçmeden önce aşağıdaki komutla dağıtımın tamamlanmasını doğrulayın:

    Bash
    kubectl rollout status deploy/pythonapp
    

İletileri gözlemleyin ve kalıcılığı onaylayın

Artık hem Node.js hem de Python uygulamaları dağıtıldığından iletilerin gelmesini izleyebilirsiniz.

  1. komutunu kullanarak Node.js uygulamasının günlüklerini kubectl logs alın.

    Bash
    kubectl logs --selector=app=node -c node --tail=-1
    

    Beklenen çıkış

    Output
    Got a new order! Order ID: 1
    Successfully persisted state
    Got a new order! Order ID: 2
    Successfully persisted state
    Got a new order! Order ID: 3
    Successfully persisted state
    
  2. kullanarak curl, en son siparişi almak için Node.js uygulamasının sipariş uç noktasını çağırın.

    Bash
    curl $EXTERNAL_IP/order
    

    Yanıtta en son JSON çıkışını görmeniz gerekir.

Kaynakları temizleme

Bu hızlı başlangıçtaki kaynakları artık kullanmayı planlamezseniz, kaynak grubunu kaldırarak tüm ilişkili kaynakları silebilirsiniz.

az group delete komutunu kullanarak kaynak grubunu, kümeyi, ad alanını ve tüm ilgili kaynakları kaldırın.

Azure CLI
az group delete --name MyResourceGroup

Sonraki adımlar