K8s集群快速部署全过程

 更新时间:2026年07月10日 17:17:49   作者:爱吃蔬菜0913  
想轻松搞定K8s集群部署?本文手把手教你从零搭建生产级Kubernetes环境,涵盖关闭防火墙、配置IPVS内核模块、安装Containerd及初始化集群,无需踩坑,直接获取完整部署教程,快速掌握K8s集群搭建核心步骤

第 1 步:系统基础环境准备

1. 关闭防火墙和 SELinux

systemctl disable --now firewalld
setenforce 0
sed -i 's/^SELINUX=enforcing$/SELINUX=disabled/' /etc/selinux/config

2. 关闭 Swap 分区(K8s 强制要求)

swapoff -a
sed -i '/ swap / s/^\(.*\)$/#\1/g' /etc/fstab

3. 加载基础内核模块并配置网络参数

cat <<EOF | sudo tee /etc/modules-load.d/k8s.conf
overlay
br_netfilter
EOF

modprobe overlay
modprobe br_netfilter

cat <<EOF | sudo tee /etc/sysctl.d/k8s.conf
net.bridge.bridge-nf-call-iptables  = 1
net.bridge.bridge-nf-call-ip6tables = 1
net.ipv4.ip_forward                 = 1
EOF

sysctl --system

第 2 步:配置 IPVS 内核模块(生产级网络准备)

kube-proxy 使用 IPVS 模式需要内核支持。我们提前加载好相关模块,避免后续切换时找不到模块。

1. 安装 ipvsadm 管理工具

yum install -y ipvsadm  # (如果是 Ubuntu 系统,请使用 apt install -y ipvsadm)

2. 临时加载 IPVS 相关的内核模块

modprobe -- ip_vs
modprobe -- ip_vs_rr
modprobe -- ip_vs_wrr
modprobe -- ip_vs_sh
modprobe -- nf_conntrack

3. 确保开机自动加载这些模块(永久生效)

cat <<EOF | sudo tee /etc/modules-load.d/ipvs.conf
ip_vs
ip_vs_rr
ip_vs_wrr
ip_vs_sh
nf_conntrack
EOF

第 3 步

1. 安装并配置 containerd

yum install -y containerd.io

或下载 RPM 包到服务器

请在终端执行以下命令,直接从阿里云镜像下载适合麒麟 V10(基于 CentOS 8)的 containerd 包:

wget https://mirrors.aliyun.com/docker-ce/linux/centos/8/x86_64/stable/Packages/containerd.io-1.6.32-3.1.el8.x86_64.rpm

2. 验证文件是否下载成功

ls -l containerd.io-*.rpm

3. 使用本地命令安装

文件下载好后,再执行本地安装命令:

sudo yum localinstall -y containerd.io-*.rpm

启动 Containerd

systemctl daemon-reload
systemctl enable --now containerd

4. 执行命令查看我们集群需要用得镜像

kubeadm config images list

以下就是初始化需要得镜像需要提前准备:

以下是提前准备得镜像:可自行拉取

执行加载全部tar包命令

for img in *.tar; do     echo "正在加载: $img";     docker load -i "$img"; done

第 4 步:初始化集群

kubeadm init \
  --image-repository registry.cn-hangzhou.aliyuncs.com/google_containers \
  --kubernetes-version v1.30.14 \
  --pod-network-cidr 10.244.0.0/16 \
  --apiserver-advertise-address=10.0.1.107 # 实际服务器IP填写

如果执行完初始化秒出现error执行以下命令:临时开启 Linux 系统的 IPv4 数据包转发功能

echo 1 > /proc/sys/net/ipv4/ip_forward

拉取网络插件:

docker pull flannel/flannel:v0.26.7

docker pull flannel/flannel-cni-plugin:v1.6.2-flannel1

第 5 步:配置 kubectl 并安装 Flannel 网络

1. 配置 kubectl 访问权限

mkdir -p $HOME/.kube
sudo cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
sudo chown $(id -u):$(id -g) $HOME/.kube/config

2. 拉取kube-flannel.yml文件

curl -o kube-flannel.yml https://mirror.ghproxy.com/https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml

3. 修改yml镜像内容

 sed -i 's|docker.io/flannel/flannel|docker.m.daocloud.io/flannel/flannel|g' kube-flannel.yml

4. 执行应用文件

kubectl apply -f  kube-flannel.yml

5. 等待 30 秒,验证集群状态

sleep 30
kubectl get nodes
kubectl get pods -n kube-system

6. 这样得结果说明k8s部署成功

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • k8s暴露服务之Ingress环境部署实践

    k8s暴露服务之Ingress环境部署实践

    文章介绍了如何部署ingress控制器ingress-nginx,包括下载部署文件、修改镜像地址、上传文件、应用资源以及解决pod状态异常的问题
    2026-01-01
  • kubenetes集群版本升级方式

    kubenetes集群版本升级方式

    本文详细介绍了使用kubeadm和二进制方式搭建及升级Kubernetes集群的方法,介绍了版本控制、升级步骤、备份ETCD数据、升级各节点组件等关键操作,并提供了操作示例和注意事项,帮助理解和实施Kubernetes集群的搭建和升级过程
    2024-09-09
  • JenKins流水线实现一次打包,多个服务器部署过程

    JenKins流水线实现一次打包,多个服务器部署过程

    这篇文章主要介绍了JenKins流水线实现一次打包,多个服务器部署过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2026-06-06
  • k8s控制deamonset中pod数量的方法

    k8s控制deamonset中pod数量的方法

    DaemonSet是Kubernetes中用于确保每个节点运行一个Pod副本的控制器,常用于运行集群守护进程,通过节点选择器、节点亲和性、容忍度和更新策略,可以精确控制Pod的数量和调度,本文介绍k8s控制deamonset中pod数量的方法,感兴趣的朋友一起看看吧
    2025-01-01
  • k8s集群调度详解(kube-scheduler)

    k8s集群调度详解(kube-scheduler)

    Kubernetes调度器负责将Pod分配至Node节点,采用预选(资源匹配)和优选(资源利用率、镜像缓存)策略,支持指定节点、标签及亲和性(软/硬策略)调度,确保资源高效利用与灵活分配
    2025-09-09
  • 浅谈Spark RDD API中的Map和Reduce

    浅谈Spark RDD API中的Map和Reduce

    rdd是什么?如何创建?什么是map和reduce?本文就这些问题向大家作了一些分析,供大家参考,如有不足,欢迎指出。
    2017-10-10
  • Rainbond部署组件Statefulset的使用官方文档

    Rainbond部署组件Statefulset的使用官方文档

    这篇文章主要为大家介绍了官方文档Rainbond部署组件Statefulset的使用,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • 云服务器Jenkins部署Springboot项目及Vue项目的详细过程

    云服务器Jenkins部署Springboot项目及Vue项目的详细过程

    本文详细介绍了如何在云服务器上使用Jenkins部署Springboot和Vue项目,包括创建Springboot项目并上传到Git仓库、安装Maven和配置Maven插件、安装Gitee插件、配置Jenkins任务以及创建自由风格项目等步骤,感兴趣的朋友一起看看吧
    2025-02-02
  • 云原生技术持久化存储PV与PVC

    云原生技术持久化存储PV与PVC

    这篇文章主要介绍了云原生技术持久化存储PV与PVC
    2022-03-03
  • K8S中的mountPath和subPath使用详解

    K8S中的mountPath和subPath使用详解

    这篇文章主要介绍了K8S中的mountPath和subPath使用的相关资料,通过示例展示了如何使用mountPath和subPath来挂载ConfigMap到Pod中,并解决了服务无法启动的问题,需要的朋友可以参考下
    2024-12-12

最新评论