Rövid útmutató: Alkalmazás üzembe helyezése az Azure Kubernetes Service (AKS) vagy az Arc-kompatibilis Kubernetes Dapr-fürtbővítményével

Ebben a rövid útmutatóban a Dapr-fürtbővítményt használja egy AKS- vagy Arc-kompatibilis Kubernetes-fürtben. Üzembe helyez egy hello world példát, amely egy olyan Python-alkalmazásból áll, amely üzeneteket hoz létre, és egy csomópontalkalmazásból, amely felhasználja és megőrzi az üzeneteket.

Előfeltételek

A tárház klónozása

  1. Klónozza a Dapr rövid útmutatók adattárát a git clone paranccsal.

    git clone https://github.com/dapr/quickstarts.git
    
  2. Váltson a könyvtárra a hello-kubernetes következő használatával cd: .

    cd quickstarts/tutorials/hello-kubernetes/
    

Állapottároló létrehozása és konfigurálása

A Dapr számos különböző állapottárolót használhat, például a Redist, az Azure Cosmos DB-t, a DynamoDB-t és a Cassandrát az állapot megőrzéséhez és lekéréséhez. Ebben a példában a Redist használjuk.

Redis-tároló létrehozása

  1. Nyissa meg az Azure Portalt az Azure Cache for Redis létrehozási folyamatának elindításához.

  2. Töltse ki a szükséges információkat.

  3. Válassza a Létrehozás lehetőséget a Redis-példány üzembe helyezésének elindításához.

  4. Jegyezze fel a Redis-példány állomásnevét, amelyet az Azure Áttekintés szakaszából tud lekérni. A gazdagépnév hasonló lehet a következő példához: xxxxxx.redis.cache.windows.net:6380.

  5. A Gépház alatt keresse meg az Access-kulcsokat a hozzáférési kulcsok lekéréséhez.

  6. Hozzon létre egy Kubernetes-titkos kulcsot a Redis-jelszó tárolásához a kubectl create secret generic redis parancs használatával.

    kubectl create secret generic redis --from-literal=redis-password=<your-redis-password>
    

A Dapr-összetevők konfigurálása

Az áruház létrehozása után hozzá kell adnia a kulcsokat a redis.yaml fájlhoz a "Helló világ!" alkalmazás adattár üzembehelyezési könyvtárában. További információt itt talál.

  1. Cserélje le az redisHost értéket a saját Redis-főcímére.

  2. Cserélje le a redisPassword saját titkos kódjára.

  3. Adja hozzá az alábbi redisPassword két sort a TLS-en keresztüli kapcsolat engedélyezéséhez

    - name: redisPassword
        secretKeyRef:
          name: redis
          key: redis-password
    - name: enableTLS
      value: true
    

A konfiguráció alkalmazása

  1. Alkalmazza a redis.yaml fájlt a kubectl apply paranccsal.

    kubectl apply -f ./deploy/redis.yaml
    
  2. Ellenőrizze, hogy az állapottároló sikeresen konfigurálva lett-e a kubectl get components.redis paranccsal.

    kubectl get components.redis -o yaml
    

    A következő példakimenethez hasonló kimenetnek kell megjelennie:

    component.dapr.io/statestore created
    

A Node.js alkalmazás üzembe helyezése a Dapr oldalkocsival

  1. Alkalmazza a Node.js alkalmazás üzembe helyezését a fürtre a kubectl apply parancs használatával.

    kubectl apply -f ./deploy/node.yaml
    

    Feljegyzés

    A Kubernetes-telepítések aszinkronok, ami azt jelenti, hogy meg kell várnia az üzembe helyezés befejezését, mielőtt továbblépne a következő lépésekre. Ezt a következő paranccsal teheti meg:

    kubectl rollout status deploy/nodeapp
    

    Ezzel üzembe helyezi a Node.js alkalmazást a Kubernetesben. A Dapr vezérlősík automatikusan befecskendezi a Dapr oldalkocsit a podba. Ha áttekinti a node.yaml fájlt, láthatja, hogyan engedélyezve van a Dapr az adott üzembe helyezéshez:

    • dapr.io/enabled: true: arra utasítja a Dapr vezérlősíkot, hogy injektáljon egy oldalkocsit az üzembe helyezéshez.
    • dapr.io/app-id: nodeapp: egyedi azonosítót vagy nevet rendel a Dapr-alkalmazáshoz, így más Dapr-alkalmazások is küldhetnek neki üzeneteket, és kommunikálhatnak vele.
  2. A parancs használatával érheti el a kubectl get svc szolgáltatást.

    kubectl get svc nodeapp
    
  3. Jegyezze fel a EXTERNAL-IP kimenetet.

A szolgáltatás ellenőrzése

  1. Hívja meg a szolgáltatást curl a EXTERNAL-IPsajátjával.

    curl $EXTERNAL_IP/ports
    

    A következő példakimenethez hasonló kimenetnek kell megjelennie:

    {"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
    
  2. Megrendelés elküldése az alkalmazásnak a következő használatával curl: .

    curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
    
  3. Ellenőrizze, hogy a rendelés megőrződött-e, ha a következőt curlkéri: .

    curl $EXTERNAL_IP/order
    

    A következő példakimenethez hasonló kimenetnek kell megjelennie:

    { "orderId": "42" }
    

A Python-alkalmazás üzembe helyezése a Dapr oldalkocsival

  1. Lépjen a Python-alkalmazás könyvtárára a hello-kubernetes rövid útmutatóban, és nyissa meg app.py.

    Ez a példa egy alapszintű Python-alkalmazás, amely JSON-üzeneteket localhost:3500küld a Dapr alapértelmezett figyelési portjának. A Node.js alkalmazás végpontját neworder a következőbe való közzétételsel hívhatja meg v1.0/invoke/nodeapp/method/neworder. Az üzenet olyan adatokat orderId tartalmaz, amelyek másodpercenként egyszer növeksenek:

    n = 0
    while True:
        n += 1
        message = {"data": {"orderId": n}}
    
        try:
            response = requests.post(dapr_url, json=message)
        except Exception as e:
            print(e)
    
        time.sleep(1)
    
  2. Helyezze üzembe a Python-alkalmazást a Kubernetes-fürtben a kubectl apply paranccsal.

    kubectl apply -f ./deploy/python.yaml
    

    Feljegyzés

    Az előző parancshoz hasonlóan meg kell várnia az üzembe helyezés befejezését, mielőtt továbblépne a következő lépésekre. Ezt a következő paranccsal teheti meg:

    kubectl rollout status deploy/pythonapp
    

Üzenetek megfigyelése és az adatmegőrzés megerősítése

Most, hogy mind a Node.js, mind a Python-alkalmazás üzembe lett helyezve, figyelheti az üzeneteket.

  1. Kérje le a Node.js alkalmazás naplóit a kubectl logs parancs használatával.

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

    Ha az üzemelő példányok sikeresek voltak, a következő példanaplókhoz hasonló naplókat kell látnia:

    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. Hívja meg a Node.js alkalmazás rendelési végpontját a legújabb rendelés curllekéréséhez.

    curl $EXTERNAL_IP/order
    {"orderID":"42"}
    

    A válaszban meg kell jelennie a legújabb JSON-nak.

Az erőforrások eltávolítása

  • Távolítsa el az erőforráscsoportot, a fürtöt, a névteret és az összes kapcsolódó erőforrást az az group delete paranccsal.

    az group delete --name MyResourceGroup
    

Következő lépések