下面给你一条**从零开始学 CentOS 部署 Kubernetes(k8s)**的实用路线,既适合新手,也适合真正上生产前练手。
# 关闭防火墙
systemctl stop firewalld
systemctl disable firewalld
# 关闭 SELinux
setenforce 0
sed -i 's/SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config
# 关闭 swap
swapoff -a
sed -i '/swap/s/^/#/' /etc/fstab
# 设置主机名
hostnamectl set-hostname master
hostnamectl set-hostname node1
# hosts 解析
cat >> /etc/hosts <<EOF
192.168.1.10 master
192.168.1.11 node1
EOF
yum install -y containerd
systemctl enable --now containerd
配置(简化):
containerd config default > /etc/containerd/config.toml
systemctl restart containerd
cat > /etc/yum.repos.d/kubernetes.repo <<EOF
[kubernetes]
name=Kubernetes
baseurl=https://pkgs.k8s.io/core:/stable:/v1.29/rpm/
enabled=1
gpgcheck=1
gpgkey=https://pkgs.k8s.io/core:/stable:/v1.29/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
初始化成功后:
mkdir -p $HOME/.kube
cp -i /etc/kubernetes/admin.conf $HOME/.kube/config
推荐 Flannel(最简单):
kubectl apply -f https://github.com/flannel-io/flannel/releases/latest/download/kube-flannel.yml
在 node 上执行 master 初始化后给出的命令:
kubeadm join 192.168.1.10:6443 \
--token xxxx \
--discovery-token-ca-cert-hash sha256:xxxx
查看节点:
kubectl get nodes
kubectl run nginx --image=nginx
kubectl get pods -A
❌ 不关 swap → kubelet 起不来
❌ SELinux 没关 → 网络异常
❌ 防火墙没关 → node 加不进来
❌ 用 docker 而不是 containerd → 新版本不支持
如果你愿意,我可以:
你现在是纯新手还是有 Linux 基础?