温馨提示×

centos怎样快速部署k8s

小樊
35
2026-09-15 12:25:13
栏目: 智能运维

CentOS 上“快速部署 Kubernetes”,最常用、最省事的方式是 kubeadm + 脚本化初始化。下面给你一套能直接照做的快速方案(以 CentOS 7/8 为例,单 master 实验/测试环境)。


一、环境准备(所有节点)

1. 系统要求

  • CentOS 7.x / 8.x
  • 2 CPU 以上
  • 2G 内存以上
  • 各节点网络互通
  • 关闭 swap
# 关闭 swap
swapoff -a
sed -i 's/.*swap.*/#&/' /etc/fstab

# 关闭防火墙(测试环境)
systemctl stop firewalld
systemctl disable firewalld

# 关闭 SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config

二、安装容器运行时(Docker)

# 安装依赖
yum install -y yum-utils device-mapper-persistent-data lvm2

# 添加 Docker 源
yum-config-manager --add-repo \
https://download.docker.com/linux/centos/docker-ce.repo

# 安装 Docker
yum install -y docker-ce docker-ce-cli containerd.io

# 启动 Docker
systemctl enable docker
systemctl start docker

三、安装 kubeadm / kubelet / kubectl

# 添加 Kubernetes 源
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-x86_64
enabled=1
gpgcheck=0
EOF

# 安装
yum install -y kubelet kubeadm kubectl

# 启动 kubelet
systemctl enable kubelet
systemctl start kubelet

四、Master 节点初始化(最关键一步)

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

初始化成功后,会看到类似:

kubeadm join 192.168.x.x:6443 --token xxx \
    --discovery-token-ca-cert-hash sha256:xxx

配置 kubectl

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

五、安装网络插件(Flannel,最简单)

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

等待所有 Pod 变成 Running

kubectl get pods -n kube-system

六、Node 节点加入集群

在 Worker 节点执行 Master 初始化输出的命令:

kubeadm join 192.168.x.x:6443 --token xxx \
    --discovery-token-ca-cert-hash sha256:xxx

七、验证集群

kubectl get nodes

状态为 Ready 即部署成功 ✅


八、想更“快”?推荐方案

场景 推荐
本地测试 Minikube
一键部署 kubeadm + 脚本
生产环境 kubespray / Rancher / KubeKey
离线环境 KubeKey(推荐)

KubeKey 示例(极简)

./kk create cluster --with-kubernetes v1.28.0

如果你愿意,我可以:

  • 给你 一键部署脚本
  • 区分 CentOS 7 / 8
  • 高可用 Master
  • 离线部署方案

你现在是 测试 / 生产 / 学习 用?

0