服务器运维: k3s 安装及配置的完整操作笔记

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。

相关推荐
Z21-X5 分钟前
云原生运维学习笔记:揭开虚拟化的硬核面纱,从底层架构到KVM实战
运维·笔记·学习·云原生
深圳老胡8 分钟前
STM32C5A3ZG开发板:基于STM32CubeMX与VSCode的按键检测与LED闪烁实战
笔记·stm32·单片机·代码规范
天疆说12 分钟前
DeepSeek 开源学习中心公开课调研笔记
笔记·学习·开源
Rabitebla1 小时前
【Linux】 权限篇(三):深入理解 umask 位运算与粘滞位的设计思想
java·linux·服务器·c++·笔记·学习
实名上网宋凯宣1 小时前
现代电网可靠性测试系统-VPP工作笔记
笔记·学习
ss.li1 小时前
rppg相关论文阅读笔记10.22
论文阅读·笔记·python
Z21-X1 小时前
云原生运维学习笔记:KVM实战——从环境搭建到热迁移的硬核体验
运维·笔记·学习·云原生
深圳老胡2 小时前
STM32C5 应用阶段开发难点解析:从选型到量产的实战经验
笔记·stm32·单片机·代码规范
weixin_448119945 小时前
Datawhale DeepSeek Harness 技术入门与架构原理 笔记4
笔记·架构
果壳science16 小时前
张祥前实验如何获取正电荷
笔记·科技·嵌入式硬件·硬件工程·制造