1. 安装前环境确认
| 检查项 | 命令 | 预期结果 |
|---|---|---|
| 80/443 端口空闲 | `ss -tlnp | grep -E ':80 |
| Docker 运行状态 | systemctl status docker |
active (running) |
| 系统资源 | free -h && df -h / |
内存 >10G,磁盘 >20G |
2. 安装 k3s
| 步骤 | 命令 | 说明 |
|---|---|---|
| 下载安装脚本 | curl -sfL https://get.k3s.io -o install.sh |
国内网络建议提前准备镜像源 |
| 执行安装 | chmod +x install.sh && ./install.sh --write-kubeconfig-mode 644 |
默认启用 Traefik、CoreDNS、local-path-provisioner |
| 验证集群 | kubectl get nodes |
节点状态为 Ready |
| 验证核心组件 | kubectl get pods -A |
所有 Pod 均为 Running |
3. 配置国内镜像加速(⚠️ 必做)
k3s 使用内置 containerd,需单独配置镜像源,与宿主机 Docker 互不影响。
# 创建镜像源配置目录
mkdir -p /etc/rancher/k3s
# 写入 registries.yaml
cat > /etc/rancher/k3s/registries.yaml << 'EOF'
mirrors:
docker.io:
endpoint:
- "https://docker.1panel.live"
- "https://hub.rat.dev"
EOF
# 重启 k3s 使配置生效
systemctl restart k3s
4. 验证端口接管
| 验证项 | 命令 | 预期结果 |
|---|---|---|
| 80 端口响应 | curl -I http://localhost:80 |
返回 404 page not found(Traefik 默认页) |
| 443 端口响应 | curl -Ik https://localhost:443 |
返回 404(自签证书需加 -k) |
| Ingress Controller | kubectl get svc -n kube-system traefik |
TYPE 为 LoadBalancer,PORTS 包含 80/443 |
⚠️ 关键注意事项
SELinux 依赖:Alibaba Cloud Linux 4 可能缺少 k3s-selinux 包导致启动失败,需手动创建 systemd unit 或禁用 SELinux
镜像源 DNS:若 Pod 卡在 ContainerCreating,优先检查镜像源域名解析是否正常,及时更换可用源
与 Docker 共存:k3s 使用 containerd,不依赖也不干扰宿主机 Docker,无需卸载
Traefik 端口机制 :svclb 通过 iptables DNAT 转发,
ss不显示监听属正常现象,以 curl 验证为准
k3s v1.36.4+k3s1 安装完成,核心组件正常运行,80/443 端口已由 Traefik 接管并验证通过。环境就绪,可继续部署 Jenkins。

