云原生小站K8s集群怎么搭?运维新人必看

新人入圈 👉 点击这里 👈

(备用微信号: domsm789

在云计算时代,Kubernetes(简称K8s)已经从一种新兴技术演变为云原生的基石。对于运维新人和开发人员来说,搭建一个属于自己的K8s集群不仅是学习云原生技术的必经之路,更是深入理解容器编排、微服务架构的绝佳实践。本文将一步步指导你在本地或服务器上搭建一个高可用的K8s集群,帮助你快速入门云原生世界。

一、 环境准备与基础配置

搭建集群前,必须确保基础环境的稳定。 至少准备两台服务器,一台作为主节点(Master),另一台作为工作节点(Node)。在CentOS 7系统上,第一步是关闭防火墙和SELinux,具体操作如下:

systemctl stop firewalld

systemctl disable firewalld

setenforce 0

sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

这是因为Kubernetes与CNI网络插件和Kubelet的服务交互非常频繁,关闭防火墙可以避免不必要的连接中断。 为了系统的稳定性,必须关闭系统的Swap交换分区(虽然K8s 1.24之后对Swap的支持有所放宽,但 在搭建环境时关闭):

swapoff -a

接着,配置iptables的转发规则,这是容器网络通信的基础:

cat > /etc/sysctl.d/k8s.conf << EOF

net.bridge.bridge-nf-call-iptables = 1

net.bridge.bridge-nf-call-ip6tables = 1

net.ipv4.ip_forward = 1

EOF

sysctl system

二、 安装Container Runtime(运行时)

Kubernetes默认使用容器运行时接口(CRI)来管理容器的生命周期。对于运维新人,推荐安装轻量且强大的containerd。

安装依赖:

 yum install -y yum-utils device-mapper-persistent-data lvm2

添加阿里云Docker仓库:

bash

yum-config-manager add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo

安装containerd及安装插件:

bash

yum install -y containerd

mkdir -p /etc/containerd

containerd config default > /etc/containerd/config.toml

将配置文件中的 SystemdCgroup = false 改为 true,以便containerd能够利用系统的cgroup管理资源:

toml

[plugins.”io.containerd.grpc.v1.cri”.containerd.runtimes.runc.options]

SystemdCgroup = true

启动containerd服务:

bash

systemctl start containerd

systemctl enable containerd

三、 部署Master节点

Master节点负责集群的决策和管理,是集群的“大脑”。

配置阿里云的K8s yum源:

bash

cat > /etc/yum.repos.d/kubernetes.repo << EOF

[kubernetes]

云原生小站K8s集群怎么搭?运维新人必看 一

name=Kubernetes

baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64/

enabled=1

gpgcheck=0

EOF

安装组件:

bash

yum install -y kubeadm-1.24.0 kubectl-1.24.0 kubelet-1.24.0

初始化集群:

使用

kubeadm init 指令初始化Master节点,指定网络插件(如flannel),并指定Pod网段。

bash

kubeadm init

apiserver-advertise-address=

image-repository registry.aliyuncs.com/google_containers

kubernetes-version v1.24.0

service-cidr=10.96.0.0/12

pod-network-cidr=10.244.0.0/16

初始化成功后,会生成一段 join 命令,请务必复制保存,稍后要在Worker节点执行。

配置Kubectl:

普通用户需要配置kubectl才能访问集群,复制以下命令:

bash

mkdir -p $HOME/.kube

cp -i /etc/kubernetes/admin.conf $HOME/.kube/config

chown $(id -u):$(id -g) $HOME/.kube/config

此时,通过 kubectl get nodes 应该能看到Master节点状态为 Ready。
四、 添加Worker节点

Worker节点是容器运行的地方。在Worker节点上,使用之前保存的 join 命令将节点加入集群。

bash

kubeadm join :6443 token discovery-token-ca-cert-hash sha256:

可以执行 kubeadm token create print-join-command 来重新生成token。

如果在Worker节点执行后无法连接,请检查Master节点的防火墙是否开放了6443端口,或者检查Node节点的DNS解析是否正常。

五、 部署网络插件

为了让Pod之间能够正常通信,必须安装CNI网络插件。对于运维新人,Flannel是最简单且兼容性最好的选择:

bash

kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml

等待一段时间后,再次执行 kubectl get nodes,所有节点的状态应该都变为 Ready。
六、 部署Dashboard(可选)

为了更直观地管理集群,可以部署Kubernetes的Web仪表盘。

bash

kubectl apply -f https://raw.githubusercontent.com/kubernetes/dashboard/v2.4.0/aio/deploy/recommended.yaml

创建访问账号和服务账户:

bash

kubectl -n kubernetes-dashboard create serviceaccount dashboard-admin

kubectl create clusterrolebinding dashboard-admin clusterrolecluster-admin serviceaccountkubernetes-dashboard:dashboard-admin

kubectl describe secret -n kubernetes-dashboard $(kubectl -n kubernetes-dashboard get secret | grep dashboard-admin | awk ‘{print $1}')

使用输出的 token 登录 Dashboard 进行可视化操作。

搭建K8s集群是一个从理论到实践的完整过程,对于运维新人而言,这不仅是一次技术实践,更是一次对云原生架构理解的深化。通过亲手配置Master节点的决策管理、Worker节点的资源调度以及Pod间的网络通信,你将真正掌握云时代的核心运维能力。在实践中遇到问题不要气馁,多查阅官方文档,逐步排查,祝你在云原生之路上越走越远。

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

新人入圈 👉 点击这里 👈

(备用微信号: domsm789

暂无评论

发送评论 编辑评论


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