一聚教程网:一个值得你收藏的教程网站

最新下载

热门教程

centos怎样配置k8s安装环境

时间:2026-07-17 08:54:01 编辑:袖梨 来源:一聚教程网

在 CentOS 上配置 k8s 安装环境

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
  • 验证
    kubectl get nodes# 状态应为 Readykubectl get pods -A # 核心组件与 CNI Pod Running
  • 常见问题速查
    • 节点 NotReady:多因 CNI 未部署 或 内核参数/防火墙 未正确配置。
    • 镜像拉取失败:使用 国内镜像仓库 或提前导入镜像;检查网络连通性。
    • kubelet 未就绪:确认 kubelet 开机自启 且 cgroup 驱动一致(Docker 建议 systemd)。

热门栏目