从0到1:使用ansible-role-k3s构建企业级K3s集群的完整流程

📅 2026/7/28 7:55:57 👁️ 阅读次数 📝 编程学习
从0到1:使用ansible-role-k3s构建企业级K3s集群的完整流程

从0到1:使用ansible-role-k3s构建企业级K3s集群的完整流程

【免费下载链接】ansible-role-k3sAnsible role for installing k3s as either a standalone server or HA cluster.项目地址: https://gitcode.com/gh_mirrors/an/ansible-role-k3s

ansible-role-k3s是一个功能强大的Ansible角色,能够帮助用户轻松部署K3s集群,无论是单节点独立服务器还是高可用集群,都能通过简单的配置快速实现。本文将为你详细介绍如何从0开始,使用ansible-role-k3s构建企业级K3s集群的完整流程。

一、准备工作:环境与工具检查 ✅

在开始部署K3s集群之前,需要确保Ansible用户能够通过SSH密钥认证连接到服务器,并且拥有无需密码的sudo权限。可以通过以下命令进行测试:

ssh <ansible_user>@<server_name> 'sudo cat /etc/shadow >/dev/null && echo "Works"'

如果输出结果为“Works”,则说明环境准备就绪。

二、快速部署:单节点K3s集群搭建 🚀

2.1 目录结构设置

首先创建工作目录,并准备以下文件:

kubernetes-playground/ |_ inventory.yml |_ cluster.yml

2.2 编写inventory文件

创建inventory.yml文件,定义集群节点信息:

--- k3s_cluster: hosts: kube-0: ansible_user: ansible ansible_host: 10.10.9.2 ansible_python_interpreter: /usr/bin/python3 kube-1: ansible_user: ansible ansible_host: 10.10.9.3 ansible_python_interpreter: /usr/bin/python3 kube-2: ansible_user: ansible ansible_host: 10.10.9.4 ansible_python_interpreter: /usr/bin/python3

2.3 创建playbook文件

编写cluster.ymlplaybook:

--- - name: Build a cluster with a single control node hosts: k3s_cluster vars: k3s_become: true roles: - role: xanmanning.k3s

2.4 执行部署命令

运行以下命令开始部署单节点K3s集群:

ansible-playbook -i inventory.yml cluster.yml

部署成功后,通过ansible -i inventory.yml -m ping all命令可以检查节点连接状态。

三、高可用部署:嵌入式etcd的HA集群配置 🛡️

3.1 准备inventory文件

创建适用于HA集群的inventory.yml,为每个节点添加k3s_control_node: true

--- k3s_cluster: hosts: kube-0: ansible_user: ansible ansible_host: 10.10.9.2 ansible_python_interpreter: /usr/bin/python3 k3s_control_node: true kube-1: ansible_user: ansible ansible_host: 10.10.9.3 ansible_python_interpreter: /usr/bin/python3 k3s_control_node: true kube-2: ansible_user: ansible ansible_host: 10.10.9.4 ansible_python_interpreter: /usr/bin/python3 k3s_control_node: true

3.2 编写HA集群playbook

创建ha_cluster.yml文件,启用嵌入式etcd数据存储:

--- - name: Build a cluster with HA control plane hosts: k3s_cluster vars: k3s_become: true k3s_etcd_datastore: true k3s_use_experimental: true # Note this is required for k3s < v1.19.5+k3s1 roles: - role: xanmanning.k3s

3.3 执行HA集群部署

运行以下命令部署高可用K3s集群:

ansible-playbook -i inventory.yml ha_cluster.yml

四、集群验证:检查部署结果 🔍

4.1 查看节点状态

登录任意控制节点,执行以下命令检查节点状态:

sudo kubectl get nodes -o wide

成功部署后,所有节点状态应显示为“Ready”。

4.2 检查系统组件

通过以下命令查看K3s系统组件运行情况:

sudo kubectl get pods -o wide --all-namespaces

所有系统组件pod应处于“Running”或“Completed”状态。

五、进阶操作:集群管理与维护 🛠️

5.1 扩展集群

需要扩展集群时,只需在inventory文件中添加新节点信息,然后重新运行部署命令即可。相关操作可参考官方文档operations/extending-a-cluster.md。

5.2 更新K3s版本

更新K3s集群版本前,建议先备份数据。具体更新步骤可参考operations/updating-k3s.md。

5.3 停止与启动集群

如需停止或重启集群,可参考文档operations/stop-start-cluster.md中的Ansible方法进行操作。

六、总结:ansible-role-k3s的优势与适用场景 📊

ansible-role-k3s提供了简单高效的K3s集群部署方案,无论是开发测试环境还是生产环境,都能满足需求。通过Ansible的自动化能力,大大简化了K3s的部署和管理流程,让用户可以专注于业务应用的开发和运行。

如果你需要构建轻量级、高效的Kubernetes集群,ansible-role-k3s无疑是一个理想的选择。现在就开始使用它来部署你的K3s集群吧!

【免费下载链接】ansible-role-k3sAnsible role for installing k3s as either a standalone server or HA cluster.项目地址: https://gitcode.com/gh_mirrors/an/ansible-role-k3s

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考