1. 安装前环境确认
| 80/443 端口空闲 | ss -tlnp | grep -E ':80|:443' | 无输出(GitLab 已迁至 8080) |
| 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。





