Spiga

Dapr 完全离线安装方案

2024-09-01 23:15:28

Dapr 完全离线安装方案

以下是完整的 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 及其所有依赖组件。所有必需文件都已包含在离线包中,安装过程无需任何外部网络连接。