下面给你一个从零在 CentOS 上搭建 Kubernetes(k8s)集群的实战型步骤,以 kubeadm + containerd 为例(目前最主流、官方推荐)。
适用版本示例:
CentOS 7 / CentOS 8 Stream
Kubernetes 1.28+
网络插件:Calico(也可用 Flannel)
至少 2 台机器:
| 角色 | IP | 主机名 |
|---|---|---|
| master | 192.168.1.10 | k8s-master |
| node | 192.168.1.11 | k8s-node1 |
生产建议:3 master + N node
systemctl stop firewalld
systemctl disable firewalld
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
hostnamectl set-hostname k8s-master # master
hostnamectl set-hostname k8s-node1 # node
cat >> /etc/hosts <<EOF
192.168.1.10 k8s-master
192.168.1.11 k8s-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 yum-utils device-mapper-persistent-data lvm2
yum install -y containerd
mkdir -p /etc/containerd
containerd config default > /etc/containerd/config.toml
修改(关键):
SystemdCgroup = true
systemctl enable containerd
systemctl start containerd
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[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
yum install -y kubelet kubeadm kubectl
systemctl enable kubelet
kubeadm init \
--apiserver-advertise-address=192.168.1.10 \
--pod-network-cidr=10.244.0.0/16
Calico 用
192.168.0.0/16也可,后面要对应
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://docs.projectcalico.org/manifests/calico.yaml
查看状态:
kubectl get pods -n kube-system
在 node 节点执行 master 初始化后输出的命令,类似:
kubeadm join 192.168.1.10:6443 \
--token xxxx \
--discovery-token-ca-cert-hash sha256:xxxx
token 过期可重新生成:
kubeadm token create --print-join-command
kubectl get nodes
状态应为 Ready
.kube/config不推荐(Docker 已废弃 k8s 支持)
如果你愿意,我可以:
✅ 给你 一键脚本
✅ 教你 高可用集群
✅ 帮你 排错当前环境
你现在是在 虚拟机 / 云服务器 / 裸机?