Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
V tomto rychlém startu použijete rozšíření Dapr v clusteru Kubernetes s podporou AKS nebo Arc. Nasadíte hello world příklad, který se skládá z aplikace Pythonu, která generuje zprávy a Node.js aplikaci, která zprávy spotřebovává a zachovává.
Prerequisites
- Předplatné služby Azure. Pokud žádné nemáte, můžete si vytvořit bezplatný účet.
- Nainstalované rozhraní Azure CLI
- Klastr AKS s:
- Povolená identita úloh
- Spravovaná identita vytvořená ve stejném předplatném
- Účet služby Kubernetes
- Federované přihlašovací údaje
- Rozšíření Dapr nainstalované v clusteru AKS
- Kubectl nainstalovaný místně
Klonování úložiště
Naklonujte úložiště rychlého startu
git cloneDapr pomocí příkazu.git clone https://github.com/Azure-Samples/dapr-aks-extension-quickstart.gitPřejděte do
dapr-aks-extension-quickstartadresáře.cd dapr-aks-extension-quickstart
Vytvoření a konfigurace úložiště Redis
Otevřete portál Azure a spusťte tok vytváření Azure Managed Redis.
Vyplňte doporučené údaje podle pokynů v rychlém startu Vytvoření instance Azure Managed Redis.
Vyberte Vytvořit pro spuštění nasazení instance Redis.
Ověření informací o zdroji
Po nasazení prostředku Redis přejděte na stránku s přehledem.
Poznamenejte si:
- Název hostitele, který najdete v části Základy na stránce přehledu prostředků. Formát názvu hostitele vypadá nějak takto:
<your-cache-name>.<region>.redis.azure.net. - Port SSL, který se nachází v>pokročilých nastaveních. Výchozí hodnota je
10000.
- Název hostitele, který najdete v části Základy na stránce přehledu prostředků. Formát názvu hostitele vypadá nějak takto:
V terminálu povolte ověřování pomocí přístupového klíče ve výchozí databázi.
az redisenterprise database update \ --cluster-name <REDIS_NAME> \ --resource-group <RESOURCE_GROUP> \ --access-keys-auth EnabledNačtěte primární klíč pro výchozí databázi a uložte ho do proměnné prostředí.
export REDIS_PRIMARY_KEY=$(az redisenterprise database list-keys \ --cluster-name <REDIS_NAME> \ --resource-group <RESOURCE_GROUP> \ --query primaryKey \ -o tsv)
Povolení přístupu k veřejné síti
V tomto scénáři vaše instance Azure Managed Redis používá přístup k veřejné síti. Po dokončení tohoto rychlého startu nezapomeňte prostředky vyčistit .
V nabídce prostředků v části Nastavení vyberte Sítě.
Nastavte přístup k veřejné síti na Povoleno.
Nakonfigurujte komponenty Dapr
V souboru redis.yaml nakonfigurujete komponentu tak, aby používala ověřování pomocí přístupového klíče s protokolem TLS.
- name: redisPassword
secretKeyRef:
name: redis-secret
key: redisPassword
- name: useEntraID
value: "false"
- name: enableTLS
value: true
V preferovaném editoru kódu přejděte do adresáře nasazení v ukázkovém úložišti a otevřete redis.yaml.
Pro
redisHostnahraďte zástupnou hodnotu<REDIS_HOST>:10000hodnotou názvu hostitele Azure Managed Redis , kterou jste si dříve uložili z portálu Azure.- name: redisHost value: <your-cache-name>.<region>.redis.azure.net:10000Vytvořte tajný kód Kubernetes, který
redisPasswordpoužívá .kubectl create secret generic redis-secret \ --from-literal=redisPassword="$REDIS_PRIMARY_KEY"
Aplikovat konfiguraci
Použijte soubor redis.yaml pomocí kubectl apply příkazu.
kubectl apply -f ./deploy/redis.yaml
Očekávaný výstup
component.dapr.io/statestore created
Nasazení aplikace Node.js pomocí sajdkáru Dapr
Konfigurace aplikace Node.js
Přejděte do
deployadresáře a otevřete workload-identity.yaml.Nahraďte
<MANAGED_IDENTITY_CLIENT_ID>za ID klienta spravované identity přiřazené uživatelem, kterou jste vytvořili.Před nasazením manifestů aplikace použijte manifest účtu služby.
kubectl apply -f ./deploy/workload-identity.yaml
Ve node.yaml specifikace podu používá štítek identity úlohy a sdílený účet služby workload-sa:
labels:
app: node
azure.workload.identity/use: "true"
Aplikovat konfiguraci
Nasazení aplikace Node.js na váš cluster proveďte pomocí příkazu
kubectl apply.kubectl apply -f ./deploy/node.yamlNasazení Kubernetes jsou asynchronní, takže než přejdete k dalším krokům, ověřte, že nasazení je hotové pomocí následujícího příkazu:
kubectl rollout status deploy/nodeappPomocí příkazu
kubectl get svcpřistupte ke službě.kubectl get svc nodeappPoznamenejte si
EXTERNAL-IPve výstupu a nastavte ji jako proměnnou prostředí.export EXTERNAL_IP=<EXTERNAL-IP>
Ověření služby Node.js
Pomocí
curlzavolejte službu s vašímEXTERNAL-IP.curl $EXTERNAL_IP/portsPříklad výstupu
{"DAPR_HTTP_ENDPOINT":"http://localhost:3500","DAPR_GRPC_ENDPOINT":"http://localhost:50001"}Odešlete do aplikace objednávku.
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworderPotvrďte objednávku.
curl $EXTERNAL_IP/orderOčekávaný výstup
{ "orderId": "42" }
Nasazení aplikace v Pythonu pomocí sajdkáru Dapr
Konfigurace aplikace v Pythonu
V python.yaml specifikace podu používá štítek identity úlohy a sdílený účet služby workload-sa:
labels:
app: python
azure.workload.identity/use: "true"
Aplikovat konfiguraci
Pomocí příkazu nasaďte aplikaci Python do clusteru
kubectl applyKubernetes.kubectl apply -f ./deploy/python.yamlNasazení Kubernetes jsou asynchronní, takže než přejdete k dalším krokům, ověřte, že nasazení je hotové pomocí následujícího příkazu:
kubectl rollout status deploy/pythonapp
Sledování zpráv a potvrzení trvalosti
Teď, když jsou nasazené Node.js i aplikace Pythonu, můžete sledovat zprávy, které přicházejí.
Získejte protokoly aplikace Node.js pomocí příkazu
kubectl logs.kubectl logs --selector=app=node -c node --tail=-1Očekávaný výstup
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 statePomocí
curlvolání koncového bodu objednávky aplikace Node.js získejte nejnovější objednávku.curl $EXTERNAL_IP/orderV odpovědi by se měl zobrazit nejnovější výstup JSON.
Vyčistěte zdroje
Pokud už nebudete chtít používat prostředky z tohoto rychlého startu, můžete pomocí příkazu az group delete odebrat skupinu prostředků, cluster, obor názvů a všechny související prostředky.
az group delete --name <your-resource-group>