Rychlý start: Nasazení aplikace pomocí rozšíření clusteru Dapr (Preview) pro Azure Kubernetes Service (AKS)
V tomto rychlém startu se seznámíte s používáním rozšíření clusteru Dapr v clusteru AKS. Budete nasazovat příklad Hello World skládající se z aplikace Pythonu, která generuje zprávy, a aplikace Node, která je využívá a uchová.
Důležité
Funkce AKS ve verzi Preview jsou k dispozici na základě samoobslužných možností. Verze Preview se poskytují "tak, jak jsou" a "jak jsou k dispozici" a jsou vyloučené ze smluv o úrovni služeb a omezené záruky. Verze Preview služby AKS částečně pokryje zákaznická podpora na základě maximálního úsilí. Proto nejsou tyto funkce určeny pro použití v produkčním prostředí. Další informace najdete v následujících článcích podpory:
Požadavky
- Předplatné Azure. Pokud nemáte předplatné Azure, můžete si vytvořit bezplatný účet.
- Nainstalované rozhraní Azure CLI
- Cluster AKS s povoleným rozšířením clusteru Dapr
Klonování úložiště
Pokud chcete získat soubory, které budete používat k nasazení ukázkové aplikace, naklonujte úložiště Rychlý start a změňte ho do hello-kubernetes adresáře :
git clone https://github.com/dapr/quickstarts.git
cd quickstarts/hello-kubernetes
Vytvoření a konfigurace úložiště stavů
Dapr může k zachování a načítání stavu použít řadu různých úložišť stavů (Redis, CosmosDB, DynamoDB, Cassandra atd.). V tomto příkladu použijeme Redis.
Vytvoření úložiště Redis
- Otevřete Azure Portal a spusťte tok vytváření Redis Cache Azure.
- Vyplňte potřebné informace.
- Kliknutím na Vytvořit zakažte nasazení instance Redis.
- Poznamenejte si název hostitele vaší instance Redis, který můžete načíst z přehledu v Azure. Měl by vypadat jako
xxxxxx.redis.cache.windows.net:6380. - Po vytvoření instance budete muset získat přístupový klíč. Přejděte do části Přístupové klíče pod Nastavení a vytvořte tajný kód Kubernetes pro uložení hesla Redisu:
kubectl create secret generic redis --from-literal=redis-password=<your-redis-password>
Konfigurace komponent Dapr
Po vytvoření úložiště budete muset přidat klíče do souboru redis.yaml v adresáři deploy úložiště Hello World úložiště. Nahraďte redisHost hodnotu vlastní hlavní adresou Redis a redisPassword hodnotou vlastním tajným kódem. Další informace najdete tady:.
Pokud chcete povolit připojení přes protokol TLS, budete také muset redisPassword přidat následující dva řádky:
- name: redisPassword
secretKeyRef:
name: redis
key: redis-password
- name: enableTLS
value: true
Použití konfigurace
Použijte redis.yaml soubor:
kubectl apply -f ./deploy/redis.yaml
A ověřte, že vaše úložiště stavů bylo ve výstupu úspěšně nakonfigurováno:
component.dapr.io/statestore created
Nasazení Node.js saplikádou Dapr
Použijte Node.js nasazení aplikace na cluster:
kubectl apply -f ./deploy/node.yaml
Poznámka
Nasazení Kubernetes jsou asynchronní. To znamená, že před přechodem k dalším krokům budete muset počkat na dokončení nasazení. Můžete to provést pomocí následujícího příkazu:
kubectl rollout status deploy/nodeapp
Tím se nasadí Node.js do Kubernetes. Řídicí rovina Dapr automaticky vloží sacar Dapr do podu. Když se na soubor podíváte, uvidíte, jak je pro toto nasazení node.yaml povolený Dapr:
dapr.io/enabled: true– říká řídicí rovině Dapr, že má do tohoto nasazení vložit sakaru.dapr.io/app-id: nodeapp– aplikace Dapr přiřadí jedinečné ID nebo název, aby bylo možné odesílat zprávy do aplikace Dapr a komunikovat s ní.
Pokud chcete získat přístup ke službě, získejte a poznamenejte si EXTERNAL-IP prostřednictvím kubectl :
kubectl get svc nodeapp
Ověření služby
Pokud chcete službu volat, spusťte:
curl $EXTERNAL_IP/ports
Zobrazený výstup by měl vypadat přibližně takto:
{"DAPR_HTTP_PORT":"3500","DAPR_GRPC_PORT":"50001"}
Dále odešlete objednávku do aplikace:
curl --request POST --data "@sample.json" --header Content-Type:application/json $EXTERNAL_IP/neworder
Potvrďte trvalé uchování objednávky tím, že ji požádáte o:
curl $EXTERNAL_IP/order
Zobrazený výstup by měl vypadat přibližně takto:
{ "orderId": "42" }
Tip
Teď je vhodná doba, abyste se seznámili s řídicím panelem Dapr– pohodlným rozhraním pro kontrolu stavu, informací a protokolů aplikací spuštěných v Dapr. Následující příkaz ho z dostupných v systému http://localhost:8080/ :
kubectl port-forward svc/dapr-dashboard -n dapr-system 8080:8080
Nasazení aplikace v Pythonu pomocí saplikády Dapr
Rychle se podívejte na aplikaci v Pythonu. V rychlém startu přejděte do adresáře aplikace v hello-kubernetes Pythonu a otevřete app.py .
Jedná se o základní aplikaci v Pythonu, která odešle zprávy JSON do , což je výchozí port naslouchání localhost:3500 pro Dapr. Koncový bod aplikace Node.js vyvolat neworder odesláním na . v1.0/invoke/nodeapp/method/neworder Zpráva obsahuje nějaká data s objektem , orderId který se zvýší jednou za sekundu:
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)
Nasazení aplikace v Pythonu do clusteru Kubernetes:
kubectl apply -f ./deploy/python.yaml
Poznámka
Stejně jako výše uvedený příkaz počká na dokončení nasazení:
kubectl rollout status deploy/pythonapp
Sledování zpráv a potvrzení trvalosti
Teď, když jsou nasazené Node.js i Pythonu, prochádí zprávy.
Získejte protokoly Node.js aplikace:
kubectl logs --selector=app=node -c node --tail=-1
Pokud nasazení byla úspěšná, měly by se zobrazit protokoly, jako jsou tyto:
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
Pokud Node.js nejnovější objednávku, zavolejte koncový bod objednávky aplikace. Získejte externí IP adresu, kterou jste si předtím uložili, a připojte příkaz /order a proveďte na ní požadavek GET (zadejte ji do prohlížeče, použijte nástroj Postman nebo curl ho použijte!):
curl $EXTERNAL_IP/order
{"orderID":"42"}
V odpovědi by se měl zobrazit nejnovější json.
Vyčištění prostředků
K odebrání skupiny prostředků, clusteru AKS, oboru názvů a všech souvisejících prostředků použijte příkaz az group delete.
az group delete --name MyResourceGroup
Další kroky
Po úspěšném nasazení této ukázkové aplikace: