Dapr 官方教程第二章(Hello World Kubernetes)
本教程将帮助您在 Kubernetes 集群中使用 Dapr。您将从Hello World部署相同的应用程序。
概括地说,Python 应用程序生成消息,Node 应用程序使用并持久化它们。以下架构图说明了构成本快速入门的组件:
先决条件
本快速入门要求您在计算机上安装以下内容:
- kubectl
- Kubernetes 集群,例如Minikube、AKS或GKE
此外,除非您已经这样做了,否则请使用快速入门将存储库克隆cd到正确的目录中:
git clone https://github.com/dapr/quickstarts.git
cd quickstarts/hello-kubernetes/
在 Kubernetes 集群上设置 Dapr
初始化集群。
dapr init --kubernetes
创建和配置状态存储
Dapr 可以使用许多不同的状态存储(Redis、CosmosDB、DynamoDB、Cassandra 等)来持久化和检索状态。本演示将使用 Redis。
# 通过 docker 创建 redis
docker pull redis:latest
docker run -itd --name redis-test -p 6379:6379 redis
查看ip,并修改redis.yaml
文件
vim deploy/redis.yaml
# 开始部署
kubectl apply -f ./deploy/redis.yaml
使用 Dapr sidecar 部署 Node.js 应用程序
查看node.yaml文件的定义。dapr.io/enabled: true
- 这告诉 Dapr 控制平面向此部署注入一个边车。dapr.io/app-id: nodeapp
- 这会为 Dapr 应用程序分配一个唯一的 ID 或名称,因此它可以向其他 Dapr 应用程序发送消息并与之通信。
接着我们开始进行部署:
kubectl apply -f ./deploy/node.yaml
此部署提供外部 IP,等到 IP 可见:
kubectl get svc nodeapp
可选:如果您无法轻松访问 Kubernetes 集群服务 IP,也可以使用端口转发:
export NODE_APP=localhost:8080
kubectl port-forward service/nodeapp 8080:80
使用外部 IP 验证服务调用
要使用提取的外部 IP 调用服务,请从命令提示符运行:
export NODE_APP=localhost:8080
curl $NODE_APP/ports
使用 Dapr sidecar 部署 Python 应用程序
接下来,快速浏览一下 Python 应用程序。导航到 kubernetes 快速入门中的 Python 应用程序:cd quickstarts/hello-kubernetes/python
并通过cat app.py
查看app.py
.
就是不断的更新node数据,将 Python 应用程序部署到您的 Kubernetes 集群:
cd ../deploy/
kubectl apply -f python.yaml
现在等待 pod 处于Running
状态:
kubectl get pods --selector=app=python -w
观察消息
现在部署了 Node.js 和 Python 应用程序,观察消息通过获取 Node.js 应用的日志:
kubectl logs --selector=app=node -c node --tail=-1
如果一切顺利,您应该会看到如下日志:
确认成功持久化
清理
到./deploy
目录下执行清理操作。
kubectl delete -f .
欢迎加群讨论技术,1群:677373950(满了,可以加,但通过不了),2群:656732739