克隆服务器高效搭建k3s集群指南
核心优势:轻量、高效、简单
在资源受限或需要快速部署的场景下,克隆服务器环境并部署轻量级Kubernetes发行版k3s是绝佳选择,k3s由Rancher Labs开发,专为边缘计算、IoT和CI/CD优化,保留了K8s核心功能,内存占用仅为传统K8s的40%,极大降低了运维复杂度。
1、服务器准备
主节点 (Master) 1台(生产环境建议2台+实现高可用)
工作节点 (Worker) ≥1台(按业务需求扩展)
操作系统 推荐Ubuntu 22.04 LTS/CentOS Stream 9(已验证兼容性)
配置要求 主节点建议2核4GB+,工作节点按负载调整(k3s本身最低512MB可运行)
网络
* 所有节点间网络互通(关闭防火墙或放行6443、8472/UDP(VxLAN)、10250等端口)
* 节点主机名唯一且可解析(/etc/hosts
或DNS)
* 建议配置静态IP
2、工具安装
curl
、wget
基础下载工具
vim
/nano
文本编辑
# Ubuntu/Debian sudo apt update && sudo apt install -y curl wget vim # CentOS/RHEL sudo yum install -y curl wget vim
1、一键安装k3s Server
使用官方脚本安装并禁用默认的Traefik Ingress(可按需启用):
curl -sfL https://get.k3s.io | INSTALL_K3S_EXEC="--disable traefik" sh -s
脚本自动完成下载、安装、配置systemd服务、启动k3s。
2、获取节点凭证
安装成功后,获取访问集群的凭证(位于/etc/rancher/k3s/k3s.yaml
):
sudo cat /etc/rancher/k3s/k3s.yaml
记录输出的server
地址(通常为https://127.0.0.1:6443
或主节点IP)和token
(长字符串)。
3、验证主节点状态
sudo k3s kubectl get node
看到主节点状态为Ready
即成功。
1、在工作节点执行加入命令
使用主节点提供的token
和server
地址(替换<master_ip>
和<token>
):
curl -sfL https://get.k3s.io | K3S_URL=https://<master_ip>:6443 K3S_TOKEN=<token> sh
例如K3S_URL=https://192.168.1.100:6443 K3S_TOKEN=K1041c3380a113......
2、在主节点验证节点加入
回到主节点执行:
sudo k3s kubectl get node -o wide
新加入的工作节点状态应为Ready
,并显示其IP。
1、kubectl
访问配置
将主节点/etc/rancher/k3s/k3s.yaml
复制到本地~/.kube/config
,修改其中的server
地址为主节点公网IP或域名(若从外部访问)。
2、部署应用示例 (Nginx)
sudo k3s kubectl create deployment nginx --image=nginx:latest sudo k3s kubectl expose deployment nginx --port 80 --type NodePort sudo k3s kubectl get svc nginx # 查看分配的NodePort (如 30080)
通过http://<任一节点IP>:30080
访问Nginx。
3、持久化存储
k3s内置local-path
存储类,适合单节点测试:
apiVersion: v1 kind: PersistentVolumeClaim metadata: name: local-pvc spec: storageClassName: local-path accessModes: - ReadWriteOnce resources: requests: storage: 1Gi
4、网络策略 (选装)
默认使用Flannel (VxLAN),如需Calico、Cilium:
# 安装Calico (替换Flannel) sudo k3s kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
1、TLS证书管理
* 使用cert-manager
自动管理Let's Encrypt证书。
* 替换k3s默认自签名证书(修改/etc/rancher/k3s/k3s.yaml
中tls-san
并重启)。
2、API Server访问控制
* 严格限制访问kube-apiserver的IP(云安全组/主机防火墙)。
* 使用RBAC
细化权限,遵循最小权限原则。
3、etcd加密 (HA模式)
若启用高可用使用外部etcd,配置静态加密:
apiVersion: apiserver.config.k8s.io/v1 kind: EncryptionConfiguration resources: - resources: - secrets providers: - aescbc: keys: - name: key1 secret: <32-byte-base64-encoded-key>
4、定期备份
关键数据定时备份:
# 备份k3s集群数据 (SQLite/etcd) sudo k3s etcd-snapshot save --snapshot-compress --snapshot-retention 10
观点:k3s极大简化了Kubernetes在标准化环境中的落地,尤其适合利用克隆服务器快速构建开发测试或边缘计算集群,其轻量化设计并未牺牲核心功能,配合严谨的安全配置,完全能承担生产级负载,运维团队应优先掌握其自动化部署与灾备方案,以充分发挥云原生优势。
文章摘自:https://idc.huochengrm.cn/fwq/9367.html
评论
宜杨柳
回复在克隆服务器上搭建K3s集群,需安装K3s二进制文件,配置集群节点,完成初始化和启动。