首页主机资讯k8s安装过程中centos报错怎么解决

k8s安装过程中centos报错怎么解决

时间2025-12-04 13:59:04发布访客分类主机资讯浏览1042
导读:CentOS 上安装 Kubernetes 报错的快速排查与修复 一、先定位错误 查看 kubelet 日志,优先定位组件层问题:sudo journalctl -f -u kubelet。 若是 kubeadm 初始化失败,保留完整输出...

CentOS 上安装 Kubernetes 报错的快速排查与修复

一、先定位错误

  • 查看 kubelet 日志,优先定位组件层问题:sudo journalctl -f -u kubelet
  • 若是 kubeadm 初始化失败,保留完整输出;必要时用 kubeadm init --config=kubeadm.yaml --ignore-preflight-errors=SystemVerification 仅跳过系统校验以拿到更详细日志(排障后请去掉该参数再正式安装)。
  • 确认节点与系统状态:kubectl get nodes(能执行时)、kubectl get pods -Atop/vmstat/df -h 检查资源与磁盘。
  • 若组件未起来,检查对应服务状态:systemctl status kubeletsystemctl status containerd/docker

二、基础环境与内核参数

  • 关闭 Swap:swapoff -a & & sed -i '/swap/s/^/#/' /etc/fstab(K8s 要求禁用 Swap)。
  • SELinux 与防火墙:测试阶段可临时 setenforce 0systemctl stop firewalld;生产环境建议按需放行端口或接口而非全关。
  • 内核参数与转发:
    cat >
         /etc/sysctl.d/k8s.conf <
        <
        EOF
    net.bridge.bridge-nf-call-ip6tables = 1
    net.bridge.bridge-nf-call-iptables  = 1
    net.ipv4.ip_forward                 = 1
    EOF
    sysctl -p
    
  • 主机名与时间同步:hostnamectl set-hostname masternodeXyum install -y ntpdate & & ntpdate time.windows.com
  • 资源基线:建议每节点至少 CPU≥2 核、内存≥2GB、磁盘≥20GB

三、容器运行时与镜像拉取

  • 安装并启动容器运行时(以 containerd 为例):yum install -y containerd.io & & systemctl enable --now containerd
  • 若使用 Docker,需把 cgroup 驱动设为 systemd 并配置国内镜像加速:
    cat >
         /etc/docker/daemon.json <
        <
    EOF
    {
    
      "exec-opts": ["native.cgroupdriver=systemd"],
      "registry-mirrors": ["https://mirrors.aliyun.com/dockerhub"]
    }
        
    EOF
    systemctl daemon-reload &
        &
         systemctl restart docker
    
  • 镜像拉取失败(国内常见):使用国内仓库并重打标签后初始化,例如:
    kubeadm init --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16
    # 若个别镜像仍失败,可手动 docker pull/tag,例如 coredns:1.8.0
    
  • 常见 CRI 报错如 “CRI v1 runtime API is not implemented … containerd.sock”,多为 containerd 未启动或未按预期工作:systemctl status containerd & & sudo systemctl start containerd & & sudo systemctl enable containerd

四、网络与防火墙关键点

  • 放行关键端口(firewalld 示例,按你的 zone 调整):
    firewall-cmd --permanent --zone=trusted --add-interface=docker0
    firewall-cmd --permanent --zone=trusted --add-port=6443/tcp
    firewall-cmd --permanent --zone=trusted --add-port=10250/tcp
    firewall-cmd --permanent --zone=trusted --add-port=10251/tcp
    firewall-cmd --permanent --zone=trusted --add-port=10252/tcp
    firewall-cmd --reload
    
  • 安装 CNI 网络插件(Pod 间通信必需):
    • 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
  • 初始化时指定 Pod CIDR(与所选插件一致),如:--pod-network-cidr=10.244.0.0/16(Flannel 常用),或按 Calico 文档配置。

五、常见报错对照与修复

报错关键词 典型原因 快速修复
CRI v1 runtime API is not implemented … containerd.sock containerd 未运行或未就绪 systemctl start containerd & & systemctl enable containerd
containerd: failed to start 配置/权限/内核未就绪 检查 /etc/containerd/config.toml 与内核模块(br_netfilter/overlay),重启服务
kubelet 不断重启/不健康 cgroup 驱动不一致(Docker 与 kubelet 不同) Docker 配置 "exec-opts": ["native.cgroupdriver=systemd"] 并重启
镜像拉取失败(gcr.io/google_containers/…) 国内网络不通 --image-repository=registry.aliyuncs.com/google_containers 或手动拉取并重打标签
Node NotReady CNI 未安装/网络未通 安装 Flannel/Calico,确认节点间互通与路由
Port 6443/10250 被占用 已有进程占用或防火墙拦截 `ss -lntp
MountVolume.SetUp failed 内核/驱动/权限问题 升级内核、检查挂载与权限、确认 SELinux/AppArmor 策略
kubeadm init 预检失败 Swap 未关/内核参数缺失/防火墙阻断 关闭 Swap、设置内核参数、放行端口后重试
  • 若初始化多次失败,先清理再重来:kubeadm reset -f,确认环境干净后重新 kubeadm init
  • 仍无法解决时,保留并贴出完整错误日志(如 journalctl -xeu kubeletkubeadm init 输出),便于进一步定位。

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: k8s安装过程中centos报错怎么解决
本文地址: https://pptw.com/jishu/763511.html
centos crontab如何依赖其他任务 centos crontab如何节假日执行任务

游客 回复需填写必要信息