主题
环境要求
硬件要求
单机部署(最小规格)
| 资源 | 最低要求 | 推荐配置 |
|---|---|---|
| CPU | 8 核 | 16 核+ |
| 内存 | 32 GB | 64 GB+ |
| 系统盘 | 100 GB | 200 GB |
| 数据盘 | 500 GB | 1 TB+ |
| 网络 | 1 Gbps | 10 Gbps |
单机模式所有中间件副本数自动设为 1,仅用于测试或低并发场景。
高可用集群(生产推荐)
最小拓扑:3 台 Master + 0~N 台 Worker
| 角色 | 数量 | CPU | 内存 | 磁盘 |
|---|---|---|---|---|
| Master(控制面 + 中间件) | 3 | 16核 | 64GB | 1TB |
| Worker(业务应用,可选) | N | 8核 | 32GB | 500GB |
Master 节点数量不能为 2,必须是 1 或 ≥ 3(脚本强制校验)。
GPU 节点(AI 模块,按需)
| 类型 | 适用场景 |
|---|---|
| tesla(数据中心卡) | 高并发视频/图像 AI 推理 |
| gtx(消费级显卡) | 中低并发或测试环境 |
操作系统
| 系统 | 支持状态 |
|---|---|
| CentOS 7.x | ✅ 完全支持(主要测试环境) |
| Rocky Linux 8/9 | ✅ 支持 |
| Ubuntu 20.04/22.04 | ✅ 支持(需指定 python3 路径) |
| 其他 Linux | ⚠️ 未验证 |
Ubuntu 注意事项
Ubuntu 22.04 默认没有 Python 2,需要在 Ansible hosts 中取消注释:
ini
ansible_python_interpreter=/usr/bin/python3网络要求
内网连通性
所有节点之间需要以下端口互通:
| 端口 | 协议 | 用途 |
|---|---|---|
| 22 / 1046 | TCP | SSH(按 ssh_port 配置) |
| 6443 | TCP | K3s API Server |
| 8472 | UDP | Flannel VXLAN(Pod 网络) |
| 10250 | TCP | Kubelet |
| 2181 | TCP | ZooKeeper |
| 9092 | TCP | Kafka |
| 3306 / 4000 | TCP | MySQL |
| 6379 | TCP | Redis |
| 9000 | TCP | MinIO |
| 9200 / 9300 | TCP | Elasticsearch |
| 80 / 443 | TCP | Nginx(内部文件服务) |
| 5000 | TCP | Docker Registry |
网段规划
避免以下默认网段与已有网络冲突,如有冲突在配置文件中修改:
| 用途 | 默认网段 | 配置项 |
|---|---|---|
| Pod 网络 | 10.233.0.0/18 | k3s_flannel_network_prefix |
| Service 网络 | 10.233.64.0/18 | 自动计算 |
| Docker bridge | 172.18.0.0/16 | docker_bip |
离线环境要求
本项目完全支持离线部署,需要提前准备:
- 所有镜像 tar 包(
image_k3s_amd64_*、image_infra_amd64_*目录) - Docker 安装包(
docker_install/目录已包含) - K3s 二进制(通过
download-all.sh下载,或由 mirrors.yidun.internal 提供)
部署机要求
部署机是运行 deploy.sh 的那台服务器(通常是 Master 节点之一)。
- 已安装 Docker 26.1.4+(
docker_install/install.sh可自动安装) - 有足够磁盘空间存放镜像和部署文件(建议 200GB+)
- 能 SSH 连接到所有目标节点
时间同步
所有节点时间必须同步(误差 < 2 秒),否则 K3s etcd 会出现选主异常。
bash
# 检查时间同步状态
timedatectl status
# CentOS 7 配置 chrony
yum install -y chrony
systemctl enable chronyd --now