下面给你一个在 CentOS 上从零使用 Kubernetes(k8s)的实用路线,适合新手到可运行集群。我会按版本选择 → 环境准备 → 安装 → 初始化集群 → 使用来讲。
在 CentOS 上使用 k8s,常见三种方式:
| 方案 | 适合场景 | 难度 |
|---|---|---|
| kubeadm(官方推荐) | 学习 / 生产 | ⭐⭐⭐ |
| minikube | 本地学习 | ⭐ |
| 二进制手动安装 | 深入理解 | ⭐⭐⭐⭐⭐ |
✅ 推荐:kubeadm(CentOS 7 / 8 / Stream 都可用)
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
swapoff -a
sed -i '/swap/d' /etc/fstab
hostnamectl set-hostname master
# worker 节点
hostnamectl set-hostname node1
cat >> /etc/hosts <<EOF
192.168.1.10 master
192.168.1.11 node1
EOF
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
yum install -y containerd
systemctl enable containerd
systemctl start containerd
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.kubernetes.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.kubernetes.io/core:/stable:/v1.29/rpm/repodata/repomd.xml.key
EOF
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
kubeadm init \
--pod-network-cidr=10.244.0.0/16
成功后会看到:
kubeadm join 192.168.1.10:6443 --token xxx --discovery-token-ca-cert-hash xxx
⚠️ 保存这段命令(worker 加入用)
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
chown $(id -u):$(id -g) $HOME/.kube/config
kubectl apply -f \
https://raw.githubusercontent.com/flannel-io/flannel/master/Documentation/kube-flannel.yml
在 worker 节点执行 master 输出的:
kubeadm join 192.168.1.10:6443 \
--token xxx \
--discovery-token-ca-cert-hash sha256:xxx
kubectl get nodes
kubectl get pods -A
状态为 Ready 即成功 ✅
kubectl create deployment nginx --image=nginx
kubectl expose deployment nginx --port=80 --type=NodePort
kubectl get svc
kubeadm version
kubelet --version
如果你愿意,可以告诉我:
我可以直接给你定制命令清单。