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