文章分类:圈子科普
在云原生的浪潮下,Kubernetes(简称K8s)早已从一个开源项目,演变为现代云计算基础设施的“操作系统”。无论是互联网大厂还是创业公司,都渴望掌握这一核心技能。但很多初学者在面对“高可用集群部署”等高度技术化的话题时,往往知其然不知其所以然。
本文将深入浅出地为大家解答“K8是什么”,并教你如何去构建一个基础的高可用集群。
一、 K8、真正的内核与标准。
K8s不仅仅是管理容器的工具,它还是一个声明式的系统。通过K8s,开发运维人员可以定义应用的期望状态(比如“我需要3个副本的Nginx实例”),而K8s会自动将当前状态调整到期望状态。这种自动化极大地提高了部署效率和系统稳定性。
二、 为什么集群需要“高可用”?
在回答“如何部署”之前,必须先理解为什么要高可用。单机部署的K8s虽然简单,但存在致命的单点故障(SPOF)。对于验证码服务、支付网关等核心业务,一旦Master节点(控制平面)宕机,整个集群将无法管理。
高可用的核心逻辑在于“冗余”与“投票”:
控制平面冗余: K8s的决策核心由API Server、Etcd(数据库)、Controller Manager等组件构成。高可用意味着需要有多个Master节点,数据在多个节点间复制(通常基于Raft协议)。
共享存储: Etcd数据必须持久化存储,不能只依赖节点的本机磁盘。
三、 高可用集群部署全解(实战思路)
为了便于理解,我们以目前最成熟的 3节点Master + 多Worker节点 架构为例,梳理核心的部署步骤。请注意,此过程核心要求:所有节点保持时间一致,且防火墙开放对应端口。
第一步:基础环境准备
所有K8s节点需提前配置好基础组件:
操作系统: 推荐 CentOS 7.9 或 Ubuntu 20.04/22.04。
禁用Swap: Kubernetes 默认通过判断 Swap 是否关闭来决定 Pod 的优先级策略。
swapoff -a.debsed -ri 's/.swap./#&/' /etc/fstab
关闭防火墙: 内网环境 关闭,避免端口不通。 配置SELinux: Kubernetes 1.24+ 版本对 Containerd 更友好,需配置 SELinux Permissive 模式。
第二步:安装容器运行时
K8s 依赖容器运行时。目前最主流的是 Containerd,它比 Docker 生态更原生、更轻量。
下载对应的或.rpm包并安装。 配置/etc/containerd/config.toml,启用 SystemdCgroup,并配置镜像仓库加速(如阿里云、腾讯云镜像源)。第三步:安装 kubeadm, kubelet, kubectl
这是官方提供的集群组建工具。
配置阿里云 K8s YUM/Apt 仓库。 执行安装命令使其在开机自启。第四步:初始化控制平面 Master 1
这是高可用集群中最关键的一步。
你需要准备好一个 API Server 的负载均衡地址(例如 Nginx 或 Keepalived 的VIP),而不是直接用某个具体节点的IP。
初始化命令:
bashkubeadm init
apiserver-advertise-address=
control-plane-endpoint=
image-repository registry.aliyuncs.com/google_containers
kubernetes-version v1.28.x
service-cidr=10.96.0.0/12
pod-network-cidr=10.244.0.0/16
kubeadm join保存输出结果: 命令执行成功后,Server 会输出
的命令及证书生成目录。请将生成的/etc/kubernetes/admin.conf复制到~/.kube/config下,以便本地kubectl命令生效。/etc/kubernetes/pki第五步:添加剩余的控制平面节点
对于 Master 2 和 Master 3:
下载证书及配置: 将 Master 1 生成的目录完整拷贝过去。 执行加入命令: 执行 Master 1 输出的kubeadm join ... control-plane命令。kubectl get nodes* 验证结果: 在任意 Master 节点执行
,此时应能同时看到 3 个 Master 节点处于 Ready 状态。kubeadm join ...第六步:将 Worker 节点加入集群
Worker 节点的部署相对简单,只需执行步骤四中保存的
命令即可,无需 VIP 和负载均衡。第七步:安装网络插件
集群有了节点,但Pod之间无法通信。必须安装 Calico 或 Flannel 等网络插件。
bash
kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml
四、
搭建 K8s 高可用集群不仅仅是执行几行命令,更是一场对网络、文件系统和进程管理的综合考验。从“容器编排器”的概念,到控制平面、工作节点的架构拆解,再到负载均衡与集群初始化,每一个环节都决定了集群的稳健程度。
掌握了这些云端“干货”,你也就拿到了通往云原生世界的金钥匙。
感兴趣的伙伴可以在下方添加一下,也是为了大家有个属于纯爱好者的、纯净的平台来交流沟通、入圈、寻找自己的partner,少走弯路、少踩坑,毕竟鱼龙混杂、知己难觅~
(备用微信号: domsm789 )




