主题
快速开始
本文介绍使用容器化方式(推荐)完成易盾私有化平台的完整部署。
前置检查
bash
# 1. 确认操作系统
cat /etc/os-release
# 2. 确认网卡名(重要!后续配置需要)
ip link show
# 或
nmcli device show | grep DEVICE
# 3. 确认磁盘空间
df -h
# 4. 确认节点 IP
ip addr | grep inet第一步:修改配置文件
bash
cd /path/to/nisp-x86-260525
vim auto-docker.conf必改项清单:
bash
# ✅ 1. 填写实际网卡名(最重要)
k3s_flannel_iface="eth0" # 替换为 ip link 看到的实际网卡名
# ✅ 2. 填写 Master 节点 IP
k8s_master_ip=(
192.168.1.10 # 单机:只填一个 IP
# 192.168.1.11 # 高可用:填三个 IP
# 192.168.1.12
)
# ✅ 3. SSH 认证方式(建议用密钥)
ssh_auth_type=key
ssh_private_key_file=/root/.ssh/id_rsa
# ✅ 4. 数据存储路径(选择空间最大的分区)
docker_path="/data"
k3s_path="/data"
# ✅ 5. SQL 初始化路径(留空则仅部署基础设施,不部署业务应用)
sql_path=/data/sql-package.tar.gz
# ⚠️ 6. 检查网段冲突(与现有网络冲突时才需要修改)
k3s_flannel_network_prefix="10.233"
docker_bip="172.18.0.1"可选项(按实际需要配置):
bash
# Worker 节点(可以留空)
k8s_worker_ip=(
# 192.168.1.13
)
# GPU 节点
nvidia_ip=(
# 192.168.1.14
)
# 手动指定中间件节点(留空则自动选择性能最优节点)
zookeeper_node=()
mysql_node=()
kafka_node=()第二步:建立 SSH 免密
bash
# 为每个节点生成并分发密钥
ssh-copy-id -i ~/.ssh/id_rsa.pub root@192.168.1.10
# 测试连接
ssh root@192.168.1.10 'hostname'第三步:准备镜像文件
确认以下目录(或文件)存在于部署机上:
../nisp/
├── image_k3s_amd64_<版本>/ # K3s 组件镜像 tar 包
├── image_infra_amd64_<版本>/ # 中间件镜像 tar 包
└── ops/
└── ops.tar # ops 容器镜像如果需要下载
在能访问内网的机器上执行:
bash
bash download-all.sh x86然后将下载的文件传输到部署机。
第四步:一键部署
bash
cd /path/to/nisp-x86-260525
bash deploy.sh部署过程会显示每个阶段的进度,全程约 30~60 分钟(取决于硬件性能)。
======================================================
易盾私有化一键部署
时间: 2025-05-25 10:00:00
状态目录: /path/.deploy_state
======================================================
>>> [1/8] 检查并安装 Docker
Docker 已安装且运行正常,跳过安装
>>> [2/8] 加载 ops 镜像并启动 ops 容器
容器 yidun-ops 启动成功
>>> [3/8] 部署 nginx + registry
nginx 部署完成
registry 部署完成
>>> [4/8] 导入镜像到 registry
k3s 镜像导入完成,共 XX 个
>>> [5-8/8] 在容器内执行部署脚本
...验证部署结果
bash
# 进入 ops 容器
docker exec -it yidun-ops bash
# 查看节点状态
kubectl get node -o wide
# 查看所有 Pod 状态
kubectl get pod -A -o wide
# 检查中间件
kubectl get pod -n yidun-infra
kubectl get pod -n tidb
# 检查业务应用
kubectl get pod -n yidun
kubectl get pod -n yidun-text预期输出(所有 Pod 都应是 Running 或 Completed):
NAME STATUS ROLES AGE
antispam01 Ready control-plane,master 30m断点续传
如果部署中途失败,修复问题后直接重新执行:
bash
bash deploy.sh
# 会自动跳过已完成的步骤强制从某步重新执行:
bash
# 重新执行步骤 6(中间件部署)和步骤 7(数据初始化)
FORCE_STEP=6,7 bash autoinstall-docker.sh重置所有步骤状态(从头开始):
bash
rm -f .deploy_state/step_*
rm -f .deploy_state/host_step_*常见问题
K3s 安装后 kubectl 不可用
容器化方式下,kubectl 是通过 wrapper 脚本调用宿主机 k3s 二进制的。k3s 安装完成后自动创建,如果不可用:
bash
# 在 ops 容器内查找 k3s 二进制
ls /host/bin/k3s-v*
# 手动创建 wrapper
K3S_BIN=$(find /host/bin -maxdepth 1 -name "k3s-v*" -type f | head -n 1)
echo "#!/bin/bash
exec $K3S_BIN kubectl \"\$@\"" > /usr/local/bin/kubectl
chmod +x /usr/local/bin/kubectl节点 NotReady
bash
# 检查节点日志
journalctl -u k3s -n 50
# 检查网络配置
kubectl get node -o yaml | grep flannel镜像拉取失败
bash
# 检查 registry 状态
curl http://private-registry.yidun.internal/v2/_catalog
# 检查 /etc/hosts
grep "private-registry" /etc/hosts