零基础入门kubeadm-ha:从环境准备到集群初始化的7个关键步骤
【免费下载链接】kubeadm-hakubeadm-ha 使用 kubeadm 进行高可用 kubernetes 集群搭建,利用 ansible-playbook 实现自动化安装,既提供一键安装脚本,也可以根据 playbook 分步执行安装各个组件。项目地址: https://gitcode.com/gh_mirrors/ku/kubeadm-ha
kubeadm-ha是一个使用kubeadm进行高可用Kubernetes集群搭建的工具,通过ansible-playbook实现自动化安装,既提供一键安装脚本,也可以根据playbook分步执行安装各个组件,非常适合新手和普通用户快速部署Kubernetes集群。
一、了解kubeadm-ha的核心优势
kubeadm-ha具有不受国内网络限制、所有组件使用kubelet托管、多master高可用、tls双向认证、自定义tls证书有效期、RBAC授权、支持Network Policy等特性。它支持多种操作系统,包括RedHat、Rocky Linux、CentOS、Debian、Ubuntu等,满足不同用户的环境需求。
二、硬件与软件环境准备
2.1 硬件系统要求
- Master节点:2c2g+
- Worker节点:2c4g+
2.2 软件系统要求
- 运行以下之一的一台或多台机器:RHEL 7、CentOS 7.4+、CentOS 8、Debian 9、Ubuntu 16.04+等
- 各节点时区时间一致
- 每个节点 mac 地址和 product_uuid 在集群内都是唯一的
- 建议升级内核到4.17+
- OpenEuler 操作系统需手动关闭 SELINUX 并重启系统后进行操作,命令如下:
sed -i 's/^SELINUX=.*/SELINUX=disabled/g' /etc/selinux/config
三、端口占用情况确认
搭建集群时脚本会关闭节点上防火墙,集群搭建完毕后会使用到特定的端口,以下是主要端口信息:
3.1 控制平面节点端口
| 协议 | 方向 | 端口范围 | 使用者 | 用途 |
|---|---|---|---|---|
| TCP | 入站 | 6443 | Kubernetes APIserver | All |
| TCP | 入站 | 2379-2380 | etcd server clientAPI | kube-apiserver,etcd |
| TCP | 入站 | 10248,10250 | Kubelet API | Self,Controlplane |
| TCP | 入站 | 10251,10259 | kube-scheduler | Self |
| TCP | 入站 | 10252,10257 | kube-controller-manager | Self |
3.2 工作节点端口
| 协议 | 方向 | 端口范围 | 使用者 | 用途 |
|---|---|---|---|---|
| tcp | 入站 | 80 | ingress-controller | All |
| tcp | 入站 | 443 | ingress-controller | All |
| tcp | 入站 | 10248,10250 | KubeletAPI | Self,Controlplane |
| TCP | 入站 | 30000-32767 | NodePort Services | All |
四、选择合适的Kube-apiserver负载模式
4.1 本地负载均衡
该模式在节点本地部署负载均衡器,节点本地所有需要链接apiserver的组件均通过本地负载均衡器进行访问。
- 优点:兼容所有云;无额外的网络消耗;不会因lb宕机导致整个集群崩溃。
- 缺点:集群外链接apiserver无法做到高可用;节点本地负载均衡器宕机则该节点无法正常工作。
4.2 VIP负载均衡
在集群外搭建主备负载,虚拟IP(VIP)飘在这些节点上,常见组合为HAproxy + keepalived。
- 优点:集群内外链接apiserver均为高可用。
- 缺点:公有云无法使用;有额外网络消耗;网络I/O集中于VIP节点。
五、获取项目代码
通过以下命令克隆仓库:
git clone https://gitcode.com/gh_mirrors/ku/kubeadm-ha六、熟悉项目ansible play-book
项目中的play-book有不同的编号前缀,代表不同的功能:
- 编号0X,1X,2X前缀的play-book为分步骤安装集群操作,如
00-kernel.yml(升级内核,可选项)、01-base.yml、02-container-engine.yml等,这些play-book有依赖关系,需按顺序执行。 - 编号8X前缀的play-book为集群后节点添加删除操作。
- 编号9X前缀的play-book为一键安装或维护整个集群操作,如
90-init-cluster.yml(一键初始化集群)、93-backup-cluster.yml(集群备份)等。
七、集群初始化关键步骤
7.1 准备配置文件
参考项目中的示例配置文件,如example/hosts.allinone.ip.ini、example/variables.yaml等,根据实际环境修改节点信息、网络配置等参数。
7.2 分步执行play-book或一键安装
- 分步执行:按照顺序执行01-base.yml、02-container-engine.yml、03-kubernetes-component.yml等play-book。
- 一键安装:直接执行90-init-cluster.yml,实现集群的快速部署。
7.3 验证集群状态
安装完成后,通过kubectl命令验证集群节点、组件等是否正常运行,确保集群初始化成功。
通过以上7个关键步骤,零基础用户也能顺利完成kubeadm-ha的环境准备和集群初始化,快速搭建起高可用的Kubernetes集群。更多详细操作可参考项目中的官方文档,如docs/01-集群安装.md、docs/02-节点管理.md等。
【免费下载链接】kubeadm-hakubeadm-ha 使用 kubeadm 进行高可用 kubernetes 集群搭建,利用 ansible-playbook 实现自动化安装,既提供一键安装脚本,也可以根据 playbook 分步执行安装各个组件。项目地址: https://gitcode.com/gh_mirrors/ku/kubeadm-ha
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考