Dapr 完全离线安装方案
2024-09-01 23:15:28Dapr 完全离线安装方案
以下是完整的 Dapr 离线安装指南,无需任何网络连接即可完成全部安装过程:
准备工作(在可联网的机器上)
1. 下载所有必需文件
# 创建离线安装目录
mkdir dapr-offline && cd dapr-offline
# 下载 Dapr CLI
wget https://github.com/dapr/cli/releases/download/v1.15.0/dapr_linux_amd64.tar.gz
# 下载 Dapr 运行时
wget https://github.com/dapr/dapr/releases/download/v1.15.5/daprd_linux_amd64.tar.gz
# 下载 Dashboard
wget https://github.com/dapr/dashboard/releases/download/v0.15.0/dashboard_linux_amd64.tar.gz
# 下载默认配置文件
wget https://raw.githubusercontent.com/dapr/dapr/master/daprd-system/config.yaml
2. 下载 Docker 镜像并保存
# 拉取所需镜像
docker pull daprio/dapr:1.15.5
docker pull daprio/placement:1.15.5
docker pull daprio/sentry:1.15.5
docker pull daprio/dashboard:0.15.0
docker pull redis:6-alpine
docker pull openzipkin/zipkin:latest
# 保存镜像为 tar 文件
docker save -o dapr-1.15.5.tar daprio/dapr:1.15.5
docker save -o placement-1.15.5.tar daprio/placement:1.15.5
docker save -o sentry-1.15.5.tar daprio/sentry:1.15.5
docker save -o dashboard-0.15.0.tar daprio/dashboard:0.15.0
docker save -o redis-6-alpine.tar redis:6-alpine
docker save -o zipkin-latest.tar openzipkin/zipkin:latest
3. 创建安装脚本
创建 install-dapr-offline.sh
文件:
#!/bin/bash
# 创建 Dapr 目录结构
mkdir -p /root/.dapr/{bin,components}
# 安装 Dapr CLI
tar -zxvf dapr_linux_amd64.tar.gz -C /usr/local/bin/
# 安装 Dapr 运行时
tar -zxvf daprd_linux_amd64.tar.gz -C /root/.dapr/bin/
# 安装 Dashboard
tar -zxvf dashboard_linux_amd64.tar.gz -C /root/.dapr/bin/
mv /root/.dapr/bin/dashboard /root/.dapr/bin/dashboard_linux_amd64
# 设置配置文件
cat << EOF > /root/.dapr/config.yaml
apiVersion: dapr.io/v1alpha1
kind: Configuration
metadata:
name: daprConfig
spec:
tracing:
samplingRate: "1"
zipkin:
endpointAddress: http://localhost:9411/api/v2/spans
EOF
# 创建默认组件
cat << EOF > /root/.dapr/components/pubsub.yaml
apiVersion: dapr.io/v1alpha1
kind: Component
metadata:
name: pubsub
spec:
type: pubsub.redis
version: v1
metadata:
- name: redisHost
value: localhost:6379
- name: redisPassword
value: ""
EOF
# 加载 Docker 镜像
for img in *.tar; do
docker load -i $img
done
# 启动 Dapr 服务
docker run --name dapr_redis -d --restart always -p 6379:6379 redis:6-alpine
docker run --name dapr_zipkin -d --restart always -p 9411:9411 openzipkin/zipkin
docker run --name dapr_placement -d --restart always -p 50005:50005 daprio/placement:1.15.5
docker run --name dapr_sentry -d --restart always -p 50001:50001 daprio/sentry:1.15.5
# 设置权限
chmod +x /root/.dapr/bin/*
# 添加环境变量
echo 'export PATH=$PATH:/root/.dapr/bin' >> /root/.bashrc
source /root/.bashrc
# 验证安装
echo "Dapr 离线安装完成!"
echo "CLI 版本: $(dapr --version | head -1)"
echo "运行时版本: $(daprd --version | head -1)"
离线安装步骤(在目标机器上)
1. 传输离线包到目标机器
将 dapr-offline
目录复制到目标机器
2. 执行安装
# 进入离线包目录
cd dapr-offline
# 赋予执行权限
chmod +x install-dapr-offline.sh
# 执行安装脚本
./install-dapr-offline.sh
3. 验证安装
# 检查版本
dapr --version
# 检查 Docker 容器
docker ps --format "table {{.Names}}\t{{.Status}}\t{{.Ports}}"
# 运行测试应用
dapr run --app-id myapp --dapr-http-port 3500 echo "Dapr 离线安装成功!"
手动启动 Dashboard(可选)
# 使用解压的二进制文件
/root/.dapr/bin/dashboard_linux_amd64 --port 8080
# 或使用 Docker 容器
docker run --name dapr_dashboard -d -p 8080:8080 daprio/dashboard:0.15.0
系统服务配置(可选)
创建 systemd 服务文件
创建 /etc/systemd/system/dapr-placement.service
:
[Unit]
Description=Dapr Placement Service
After=docker.service
Requires=docker.service
[Service]
Restart=always
ExecStart=/usr/bin/docker run --name dapr_placement -p 50005:50005 daprio/placement:1.15.5
[Install]
WantedBy=multi-user.target
启用服务
systemctl daemon-reload
systemctl enable dapr-placement
systemctl start dapr-placement
完全离线安装验证
# 断开网络连接
ifconfig eth0 down
# 验证 Dapr 功能
dapr run --app-id testapp --app-port 8080 --dapr-http-port 3500 sleep 60 &
dapr invoke --app-id testapp --method mymethod
卸载 Dapr
# 停止并删除所有容器
docker stop dapr_placement dapr_sentry dapr_redis dapr_zipkin
docker rm dapr_placement dapr_sentry dapr_redis dapr_zipkin
# 删除 Dapr 文件
rm -rf /root/.dapr
rm -f /usr/local/bin/dapr
# 删除 Docker 镜像
docker rmi daprio/dapr:1.15.5 daprio/placement:1.15.5 daprio/sentry:1.15.5
关键文件说明
文件路径 | 说明 |
---|---|
/usr/local/bin/dapr |
Dapr CLI 主程序 |
/root/.dapr/bin/daprd |
Dapr 运行时 |
/root/.dapr/bin/dashboard_linux_amd64 |
Dashboard 控制台 |
/root/.dapr/config.yaml |
全局配置 |
/root/.dapr/components/pubsub.yaml |
发布/订阅组件 |
此方案完全离线,确保在无网络环境下也能成功部署 Dapr 及其所有依赖组件。所有必需文件都已包含在离线包中,安装过程无需任何外部网络连接。