温馨提示×

centos怎么安装k8s

小樊
42
2026-07-09 12:21:48
栏目: 智能运维

CentOS 上安装 Kubernetes(k8s)常见做法是使用 kubeadm。下面给你一套通用、稳定、适合生产/学习的安装流程(以 CentOS 7 / 8 为例,推荐 1.28+ 版本)。


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

1️⃣ 系统要求

  • CentOS 7 或 8
  • 2 CPU 及以上
  • 内存 ≥ 2GB
  • 各节点网络互通
  • 禁用 swap
swapoff -a
sed -i '/swap/d' /etc/fstab

2️⃣ 关闭防火墙 & SELinux

systemctl stop firewalld
systemctl disable firewalld

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

3️⃣ 配置内核参数(k8s 必须)

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

modprobe br_netfilter

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

sysctl --system

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

Kubernetes 已弃用 Docker,推荐 containerd

1️⃣ 安装 containerd

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

yum install -y containerd.io

2️⃣ 生成并修改配置

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

修改:

SystemdCgroup = true

3️⃣ 启动 containerd

systemctl enable containerd
systemctl start containerd

三、安装 kubeadm / kubelet / kubectl

1️⃣ 添加 Kubernetes 源

cat <<EOF | tee /etc/yum.repos.d/kubernetes.repo
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.28/rpm/repodata/repomd.xml.key
EOF

可替换 v1.28 为你需要的版本


2️⃣ 安装

yum install -y kubelet kubeadm kubectl

systemctl enable kubelet

四、初始化 Master 节点

kubeadm init \
  --pod-network-cidr=10.244.0.0/16 \
  --cri-socket=unix:///run/containerd/containerd.sock

成功后你会看到类似输出:

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

⚠️ 保存好 join 命令


五、配置 kubectl(Master)

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

测试:

kubectl get nodes

六、安装网络插件(CNI)

Flannel 为例:

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

检查:

kubectl get pods -n kube-system

七、添加 Worker 节点

在 worker 节点执行 master 输出的:

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

八、常见问题

❌ 1. kubelet 起不来

journalctl -u kubelet -f

常见原因:

  • swap 没关
  • cgroup 配置错误

❌ 2. 节点 NotReady

检查:

kubectl get pods -n kube-system

九、快速总结

步骤 内容
系统准备 关 swap / 防火墙
容器运行时 containerd
安装 k8s kubeadm + kubelet
初始化 kubeadm init
网络 flannel / calico
加入节点 kubeadm join

如果你愿意,我也可以帮你:

  • ✅ 写 一键安装脚本
  • ✅ 指定 CentOS 7 / 8
  • ✅ 安装 指定 k8s 版本
  • ✅ 搭建 高可用 k8s 集群

你现在是 单节点测试 还是 多节点生产

0