最新下载
热门教程
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
centos怎样配置k8s安装环境
时间:2026-07-17 08:54:01 编辑:袖梨 来源:一聚教程网
在 CentOS 上配置 k8s 安装环境

一 环境要求与规划
- 操作系统与硬件:建议使用 CentOS 7.x/8.x,2 核 CPU、≥2GB 内存、≥30GB 磁盘(生产推荐更高规格)。节点间网络互通,可访问外网以下载镜像。
- 主机规划示例:
- 角色:Master / Node1 / Node2
- IP:172.16.3.181 / 172.16.3.182 / 172.16.3.183
- 主机名:k8smaster / k8snode1 / k8snode2
- 基础要求:禁用 Swap、关闭 firewalld 与 SELinux、开启 时间同步、配置 主机名与 /etc/hosts、开启内核转发与桥接流量到 iptables。
二 所有节点通用配置
- 关闭防火墙与 SELinux
systemctl stop firewalld && systemctl disable firewalldsetenforce 0sed -i 's/^SELINUX=enforcing/SELINUX=disabled/' /etc/selinux/config - 禁用 Swap(临时与永久)
swapoff -ased -i '/swap/d' /etc/fstab - 设置主机名与 hosts
hostnamectl set-hostname k8smaster # 在对应节点执行cat >> /etc/hosts <<EOF172.16.3.181 k8smaster172.16.3.182 k8snode1172.16.3.183 k8snode2EOF - 内核参数与模块
modprobe br_netfiltercat > /etc/sysctl.d/k8s.conf <<EOFnet.bridge.bridge-nf-call-ip6tables = 1net.bridge.bridge-nf-call-iptables= 1net.ipv4.ip_forward = 1EOFsysctl -p /etc/sysctl.d/k8s.conf - 时间同步
yum install -y ntpdate -yntpdate time.windows.com# 或 chrony 同步 - 说明:以上为 kubeadm 部署前的通用前置条件,能显著提升初始化成功率。
三 安装容器运行时与 Kubernetes 组件
- 安装 Docker(所有节点)
yum install -y yum-utils device-mapper-persistent-data lvm2yum-config-manager --add-repo https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repoyum install -y docker-ce docker-ce-cli containerd.iosystemctl enable --now docker# 镜像加速(可选)mkdir -p /etc/dockertee /etc/docker/daemon.json <<'EOF'{"registry-mirrors": ["https://docker.m.daocloud.io"]}EOFsystemctl daemon-reload && systemctl restart docker - 安装 kubeadm、kubelet、kubectl(所有节点)
cat > /etc/yum.repos.d/kubernetes.repo <<EOF[kubernetes]name=Kubernetesbaseurl=https://mirrors.aliyun.com/kubernetes/yum/repos/kubernetes-el7-$basearch/enabled=1gpgcheck=0EOF# 选择一个稳定版本,例如 v1.28.2yum install -y kubelet-1.28.2-0 kubeadm-1.28.2-0 kubectl-1.28.2-0systemctl enable --now kubelet - 提示:如使用 containerd 作为运行时,可改用 containerd 官方流程并配置 SystemdCgroup=true,本文以 Docker 为例。
四 初始化 Master 与加入 Node
- 初始化控制平面(仅在 Master 执行,按需替换参数)
kubeadm init --apiserver-advertise-address=172.16.3.181 --image-repository registry.aliyuncs.com/google_containers --kubernetes-version v1.28.2 --service-cidr=10.96.0.0/12 --pod-network-cidr=10.244.0.0/16 - 配置 kubectl
mkdir -p $HOME/.kubecp -i /etc/kubernetes/admin.conf $HOME/.kube/configchown $(id -u):$(id -g) $HOME/.kube/config - 加入 Worker 节点(在 Node 执行,使用 kubeadm init 输出的 join 命令)
kubeadm join 172.16.3.181:6443 --token <TOKEN> --discovery-token-ca-cert-hash sha256:<HASH> - 若 token 过期,可在 Master 重新生成:
kubeadm token create --print-join-command - 说明:上述命令中的 service-cidr 与 pod-network-cidr 需与所选 CNI 插件规划保持一致。
五 安装 CNI 网络插件与验证
- 安装 CNI(二选一,确保与 pod-network-cidr 一致)
- Flannel
kubectl apply -f https://raw.githubusercontent.com/coreos/flannel/master/Documentation/kube-flannel.yml - Calico
kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
- Flannel
- 验证
kubectl get nodes# 状态应为 Readykubectl get pods -A # 核心组件与 CNI Pod Running - 常见问题速查
- 节点 NotReady:多因 CNI 未部署 或 内核参数/防火墙 未正确配置。
- 镜像拉取失败:使用 国内镜像仓库 或提前导入镜像;检查网络连通性。
- kubelet 未就绪:确认 kubelet 开机自启 且 cgroup 驱动一致(Docker 建议 systemd)。