Dapr 安装与介绍 电脑版发表于:2021/8/25 23:08 ![](https://img.tnblog.net/arcimg/hb/09bd35ed0d1842daa688d951a1f60a73.png) >#Dapr 安装与介绍 [TOC] Dapr 介绍 ------------ tn2>Github: https://github.com/dapr/dapr Dapr是一种可移植的,事件驱动的,无服务器运行时,用于构建跨云和边缘的分布式应用程序。 更多关于Dapr的介绍可以参考B站的这篇(强烈推荐): https://www.bilibili.com/video/BV1tf4y1m7mJ?share_source=copy_web 安装Dapr CLI ------------ tn2>请提前准备好相关环境,以及Docker 我这里使用的是Ubuntu。 首先你自己觉得你自己的网络很好,能够直接从github下载就可以从官方的脚本进行下载。<br/> 此命令将最新的 linux Dapr CLI 安装到`/usr/local/bin`: ```bash wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | /bin/bash ``` tn2>如果您无权访问该`sudo`命令或您的用户名不在`sudoers`文件中,您可以通过`DAPR_INSTALL_DIR`环境变量将 Dapr 安装到备用目录。 ```bash wget -q https://raw.githubusercontent.com/dapr/cli/master/install/install.sh -O - | DAPR_INSTALL_DIR="$HOME/dapr" /bin/bash ``` tn2>也可以通过二进制进行下载安装,访问该链接进行下载:https://github.com/dapr/cli/releases ```bash # 解压dapr_linux_amd64.tar.gz tar zxvf dapr_linux_amd64.tar.gz cd release/linux_amd64 mv dapr /usr/local/bin ``` tn>更多关于安装Dapr的环境细节请参考官网:https://docs.dapr.io/getting-started/install-dapr-cli/ tn2>验证安装 ```bash dapr ``` ![](https://img.tnblog.net/arcimg/hb/6e78de69194a47cb8b7ad6cfc288f5ef.png) Docker初始化 ------------ tn2>Dapr 与您的应用程序一起作为`sidecar`运行,在自托管模式下,这意味着它是您本地机器上的一个进程。 因此,初始化 Dapr 包括获取`Dapr sidecar`二进制文件并将其安装到本地. 此外,默认初始化过程还创建了一个开发环境,帮助简化 Dapr 的应用开发。 这包括下列步骤: 1.运行一个用于状态存储和消息代理的Redis容器实例 2.运行一个用于提供可观察性的Zipkin容器实例 3.创建具有上述组件定义的 默认组件文件夹 4.运行用于本地演员支持的Dapr placement服务容器实例 (官方原话) tn>如果您使用`sudo`运行您的 Docker 命令,或者安装路径是`/usr/local/bin`(默认安装路径), 您需要在下面使用 `sudo`。 ```bash # 当前版本1.3.0 dapr init # 如果一切顺利,可以通过下面命令进行验证 dapr --version ``` ![](https://img.tnblog.net/arcimg/hb/432d439efcdf4f23945067f3e2b5f52a.png) ![](https://img.tnblog.net/arcimg/hb/55c2191235a04914888ce7d8d7200e50.png) ![](https://img.tnblog.net/arcimg/hb/302fbca8e661431c8857ebe01933e1e2.png) tn2>验证组件目录已初始化 在 dapr init时,CLI 还创建了一个默认组件文件夹,其中包括几个 YAML 文件,其中包含state store、elevated 和 zipkin。 Dapr sidecar, 将读取这些文件。 告诉它使用Redis容器进行状态管理和消息传递,以及Zipkin容器来收集跟踪。 在 Linux/MacOS 中 Dapr 使用默认组件和文件的路径是 `$HOME.dapr`。 Windows 中,Dapr 初始化路径到 `%USERPROFILE%\.dapr\`。 ![](https://img.tnblog.net/arcimg/hb/227f88e60f274767a1778079215db661.png) tn2>并且Dapr还提供了自己的Dashborad,输入如下命令进行访问。 ```bash # 开通端口 9999 dapr dashboard -p 9999 ``` ![](https://img.tnblog.net/arcimg/hb/f45d07b9a56640d39b248a3b951ccfce.png) ![](https://img.tnblog.net/arcimg/hb/4c37993f86e64d5186cc16b87c200c59.png) tn>好的好的,看起来一切都如此和谐,但在国内的用户可能会遇到诸多问题。我也难免,Azure是没问题。我在搞阿里云服务器的时候初始化失败了,貌似是因为dashboard下载不了。 为此我还特地发了一个issue:https://github.com/dapr/cli/issues/790 问题如下: ![](https://img.tnblog.net/arcimg/hb/50c0dc464d714de2b7e1decf37c16ab9.png) tn>我也翻了一下他们以前的人遇到这方面问题的回答。让我找到了一个还不错的解决办法。 ```bash # 清理 dapr uninstall --all # 重新初始化 其实就是换换版本 dapr init --dashboard-version=0.6.0 --runtime-version=1.2.2 ``` tn>本以为这样就行了结果,缓慢术打脸 ![](https://img.tnblog.net/arcimg/hb/d8f9552a3d644544b2b747636291e868.png) tn>至少让我们知道了要去下载这个万一对吧,所以我们可以先不择手段把这`dashboard`玩意弄到手。然后开两个ssh ```bash # 清理 dapr uninstall --all # 第一个ssh 执行这句进行初始化时光速执行下面这句 dapr init --dashboard-version=0.6.0 --runtime-version=1.2.2 # 将我们下载好的dashboard移动到该目录下面 mv dashboard_linux_amd64.tar.gz ~/.dapr/bin/ ``` ![](https://img.tnblog.net/arcimg/hb/fc27e98106734a23b8d9aed06c7704e1.png) tn2>就这样手(术)速成功了。但是当你访问网页时可能还是不行但是,运行环境至少是有的了。 ![](https://img.tnblog.net/arcimg/hb/557905db3ce847f89e49f61ec9b188e6.png) Kubernetes Dapr初始化 ------------ tn2>这就要简单多了 ```bash dapr init -k ``` tn2>然后检测一下 ```bash dapr status -k ``` ![](https://img.tnblog.net/arcimg/hb/0122b58c6af5402282bb35282e547b78.png) tn2>反正就挺一帆风顺的,看看有些啥玩意 ```bash kubectl get pod,deploy,svc -n dapr-system ``` ![](https://img.tnblog.net/arcimg/hb/b811362c04ef48da84b9a1f6e459aba6.png) tn2>众所周知LoadBalancer要钱,就为大伙破一次财。 ```bash kubectl expose deployment.apps/dapr-dashboard --type=LoadBalancer --port=80 --target-port=8080 --name dapr-dashboard-2 -n dapr-system ``` ![](https://img.tnblog.net/arcimg/hb/4242b9783edf4a729c146bbb0fda86af.png) ![](https://img.tnblog.net/arcimg/hb/715714d030644678ac60bb0491cbfc2d.png) ![](https://img.tnblog.net/arcimg/hb/610ba911c88847f3b2a987d1da61972a.png)