1. K3s 基础部署
本章将指导您在 Linux 环境下完成 K3s 集群的安装。我们将涵盖单节点(All-in-One)和多节点(Master-Worker)两种模式,并重点解决国内网络环境下的安装痛点。
1.1 环境准备
1.1.1 系统要求
- 操作系统:Ubuntu 20.04/22.04 LTS (推荐), CentOS 7.6+, Rocky Linux 8/9, Debian 10/11
- 硬件配置:
- CPU: 1 Core (推荐 2 Cores+)
- 内存: 512MB (推荐 2GB+)
- 磁盘: 足够存放容器镜像即可
- 网络:节点间网络互通,且能访问互联网(离线安装除外)
1.1.2 检查清单
在所有节点上执行以下检查:
# 1. 检查主机名(确保每个节点唯一)
hostnamectl set-hostname <node-name>
# 2. 关闭防火墙(测试环境建议关闭,生产环境需放行 6443/tcp, 8472/udp, 10250/tcp)
systemctl stop ufw && systemctl disable ufw # Ubuntu
systemctl stop firewalld && systemctl disable firewalld # CentOS
# 3. 检查时间同步
date
# 如果时间不准,安装 chrony 进行同步
1.2 单节点安装 (All-in-One)
最简单的安装方式,适用于开发测试。
1.2.1 官方脚本安装
1.2.2 国内加速安装(推荐)
由于网络原因,直接使用官方脚本可能会超时。我们使用国内镜像源(Rancher 官方提供):
预期输出:
[INFO] Finding release for channel stable
[INFO] Using v1.28.x+k3s1 as release
[INFO] Downloading hash https://rancher-mirror.rancher.cn/k3s/v1.28.x+k3s1/sha256sum-amd64.txt
[INFO] Downloading binary https://rancher-mirror.rancher.cn/k3s/v1.28.x+k3s1/k3s
...
[INFO] systemd: Starting k3s
1.2.3 验证安装
1.3 多节点安装 (Master + Worker)
构建一个包含 1 个 Master 和 2 个 Worker 的集群。
1.3.1 初始化 Master 节点
在 Master 节点执行:
# 安装并获取 Token
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn sh -
# 获取 Node Token (Worker 加入集群需要)
sudo cat /var/lib/rancher/k3s/server/node-token
# 输出示例:K10abc...::server:def123...
1.3.2 加入 Worker 节点
在 Worker 节点执行(替换变量):
export K3S_URL=https://<MASTER_IP>:6443
export K3S_TOKEN=<NODE_TOKEN>
curl -sfL https://rancher-mirror.rancher.cn/k3s/k3s-install.sh | INSTALL_K3S_MIRROR=cn K3S_URL=$K3S_URL K3S_TOKEN=$K3S_TOKEN sh -
1.4 核心配置文件
安装完成后,核心文件位于:
- 二进制文件:
/usr/local/bin/k3s - Kubeconfig:
/etc/rancher/k3s/k3s.yaml(用于 kubectl 连接) - Systemd 服务:
- Server:
/etc/systemd/system/k3s.service - Agent:
/etc/systemd/system/k3s-agent.service
- Server:
- 数据目录:
/var/lib/rancher/k3s
1.5 故障排除
Q: kubectl 命令未找到?
A: K3s 自动将 kubectl 别名绑定到 k3s kubectl。如果提示未找到,请检查 /usr/local/bin 是否在 PATH 中,或手动执行:
Q: 节点状态 NotReady? A: 检查 Agent 日志:
常见原因:防火墙未关闭、时间不同步、Token 错误。1.6 自动化辅助脚本
我们提供了一个交互式安装脚本 scripts/install_k3s.sh,支持自动检测 OS、选择镜像源和节点类型。