温馨提示×

centos k8s部署能用脚本吗

小樊
36
2026-09-27 13:12:15
栏目: 智能运维

可以的,在 CentOS 上部署 Kubernetes(k8s)完全可以用脚本,而且实际生产中非常常见。下面给你几个层次的可行方案和示例,方便你选择。


一、能不能用脚本?

✅ 可以,而且推荐用脚本

  • 初始化系统(关闭防火墙、swap、配置内核参数)
  • 安装 Docker / containerd
  • 安装 kubeadm / kubelet / kubectl
  • 使用 kubeadm init/join 部署集群
  • 安装网络插件(Calico / Flannel)

二、常见部署方式对比

方式 是否脚本化 适合场景
手动命令 ❌ 学习
Shell 脚本 ✅ 小集群 / 测试
Ansible ✅✅ 生产推荐
kubeadm + 脚本 ✅ 最常用
RKE / kubespray ✅✅ 多节点生产

三、Shell 脚本示例(CentOS 7/8)

1️⃣ 初始化节点(所有节点执行)

#!/bin/bash
# init-node.sh

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

systemctl stop firewalld
systemctl disable firewalld

swapoff -a
sed -i '/swap/d' /etc/fstab

cat > /etc/sysctl.d/k8s.conf <<EOF
net.bridge.bridge-nf-call-ip6tables = 1
net.bridge.bridge-nf-call-iptables = 1
EOF
sysctl --system

2️⃣ 安装容器运行时(containerd)

#!/bin/bash
# install-containerd.sh

yum install -y yum-utils
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
yum install -y containerd.io

mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml

systemctl restart containerd
systemctl enable containerd

3️⃣ 安装 kubeadm

#!/bin/bash
# install-k8s.sh

cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://packages.cloud.google.com/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=1
repo_gpgcheck=1
gpgkey=https://packages.cloud.google.com/yum/doc/yum-key.gpg
EOF

yum install -y kubelet kubeadm kubectl
systemctl enable kubelet

4️⃣ Master 初始化

kubeadm init \
  --pod-network-cidr=10.244.0.0/16 \
  --image-repository=registry.aliyuncs.com/google_containers

5️⃣ Worker 加入

kubeadm join <master-ip>:6443 \
  --token xxxx \
  --discovery-token-ca-cert-hash sha256:xxxx

四、更省事的方式(推荐)

✅ 使用 Ansible(生产级)

  • kubespray
  • 自定义 playbook

✅ 使用 RKE(Rancher)

rke up

五、注意事项

  • CentOS 7 已 EOL,建议 CentOS Stream / Rocky / Alma
  • 内核建议 ≥ 4.18
  • 网络插件必须装(否则节点 NotReady)

六、我可以帮你

如果你愿意,可以告诉我:

  • CentOS 版本
  • 单节点 / 多节点
  • 是否离线环境
  • 网络插件偏好(Calico / Flannel)

我可以直接给你一套可运行的完整脚本。

0 踩