云原生干货k8是什么?高可用集群部署全解

新人入圈 👉 点击这里 👈

(备用微信号: domsm789 )

文章分类:圈子科普

在云原生的浪潮下,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

sed -ri 's/.swap./#&/' /etc/fstab

关闭防火墙: 内网环境 关闭,避免端口不通。 配置SELinux: Kubernetes 1.24+ 版本对 Containerd 更友好,需配置 SELinux Permissive 模式。

第二步:安装容器运行时

K8s 依赖容器运行时。目前最主流的是 Containerd,它比 Docker 生态更原生、更轻量。

下载对应的
.deb 或 .rpm 包并安装。 配置 /etc/containerd/config.toml,启用 SystemdCgroup,并配置镜像仓库加速(如阿里云、腾讯云镜像源)。

第三步:安装 kubeadm, kubelet, kubectl

这是官方提供的集群组建工具。

配置阿里云 K8s YUM/Apt 仓库。 执行安装命令使其在开机自启。

第四步:初始化控制平面 Master 1

这是高可用集群中最关键的一步。

你需要准备好一个 API Server 的负载均衡地址(例如 Nginx 或 Keepalived 的VIP),而不是直接用某个具体节点的IP。

初始化命令:

bash
云原生干货k8是什么?高可用集群部署全解 一

kubeadm 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

保存输出结果: 命令执行成功后,Server 会输出

kubeadm join 的命令及证书生成目录。请将生成的 /etc/kubernetes/admin.conf 复制到 ~/.kube/config 下,以便本地 kubectl 命令生效。

第五步:添加剩余的控制平面节点

对于 Master 2 和 Master 3:

下载证书及配置: 将 Master 1 生成的
/etc/kubernetes/pki 目录完整拷贝过去。 执行加入命令: 执行 Master 1 输出的 kubeadm join ... control-plane 命令。

* 验证结果: 在任意 Master 节点执行

kubectl get nodes,此时应能同时看到 3 个 Master 节点处于 Ready 状态。

第六步:将 Worker 节点加入集群

Worker 节点的部署相对简单,只需执行步骤四中保存的

kubeadm join ... 命令即可,无需 VIP 和负载均衡。

第七步:安装网络插件

集群有了节点,但Pod之间无法通信。必须安装 Calico 或 Flannel 等网络插件。

bash

kubectl create -f https://raw.githubusercontent.com/projectcalico/calico/v3.26.1/manifests/calico.yaml

四、

搭建 K8s 高可用集群不仅仅是执行几行命令,更是一场对网络、文件系统和进程管理的综合考验。从“容器编排器”的概念,到控制平面、工作节点的架构拆解,再到负载均衡与集群初始化,每一个环节都决定了集群的稳健程度。

掌握了这些云端“干货”,你也就拿到了通往云原生世界的金钥匙。

感兴趣的伙伴可以在下方添加一下,也是为了大家有个属于纯爱好者的、纯净的平台来交流沟通、入圈、寻找自己的partner,少走弯路、少踩坑,毕竟鱼龙混杂、知己难觅~

新人入圈 👉 点击这里 👈

(备用微信号: domsm789 )

暂无评论

发送评论 编辑评论


				
|´・ω・)ノ
ヾ(≧∇≦*)ゝ
(☆ω☆)
(╯‵□′)╯︵┴─┴
 ̄﹃ ̄
(/ω\)
∠( ᐛ 」∠)_
(๑•̀ㅁ•́ฅ)
→_→
୧(๑•̀⌄•́๑)૭
٩(ˊᗜˋ*)و
(ノ°ο°)ノ
(´இ皿இ`)
⌇●﹏●⌇
(ฅ´ω`ฅ)
(╯°A°)╯︵○○○
φ( ̄∇ ̄o)
ヾ(´・ ・`。)ノ"
( ง ᵒ̌皿ᵒ̌)ง⁼³₌₃
(ó﹏ò。)
Σ(っ °Д °;)っ
( ,,´・ω・)ノ"(´っω・`。)
╮(╯▽╰)╭
o(*////▽////*)q
>﹏<
( ๑´•ω•) "(ㆆᴗㆆ)
😂
😀
😅
😊
🙂
🙃
😌
😍
😘
😜
😝
😏
😒
🙄
😳
😡
😔
😫
😱
😭
💩
👻
🙌
🖕
👍
👫
👬
👭
🌚
🌝
🙈
💊
😶
🙏
🍦
🍉
😣
Source: github.com/k4yt3x/flowerhd
颜文字
Emoji
小恐龙
花!
上一篇
下一篇