首页主机资讯centos部署k8s遇到问题怎么办

centos部署k8s遇到问题怎么办

时间2025-12-18 18:08:04发布访客分类主机资讯浏览1092
导读:CentOS 部署 Kubernetes 的排查与修复指南 一 快速定位路径 查看节点与系统组件状态:执行kubectl get nodes、kubectl get pods -A;若 kubectl 报本地连接被拒绝,多为未正确配置 k...

CentOS 部署 Kubernetes 的排查与修复指南

一 快速定位路径

  • 查看节点与系统组件状态:执行kubectl get nodeskubectl get pods -A;若 kubectl 报本地连接被拒绝,多为未正确配置 kubeconfigkubelet 未就绪。随后用kubectl describe node kubectl get events定位异常事件。
  • 查看关键服务日志:journalctl -u kubelet -f(节点上最重要的排错入口),必要时查看 kube-proxy、kube-apiserver、kube-controller-manager、kube-scheduler 的日志。
  • 检查网络连通与端口:节点间可 ping/traceroute;确认 CNI 插件(如 Calico/Flannel)已部署且 Pod 网络 CIDR 与 kube-controller-manager 的 –service-cluster-ip-range 不冲突。
  • 资源与版本:用 kubectl top nodes/pods -A 检查资源;确认 kubelet/kubeadm/kubectl容器运行时版本匹配,组件与插件版本兼容。
  • 系统层面:查看 dmesg/var/log/messages/var/log/syslog 的内核与系统报错。

二 常见故障与修复要点

  • 镜像拉取失败(国内环境常见):初始化时使用 –image-repository=registry.aliyuncs.com/google_containers;或手动拉取并重新打标,例如:
    docker pull coredns:1.8.0
    docker tag coredns:1.8.0 registry.aliyuncs.com/google_containers/coredns:1.8.0
    docker rmi -f coredns:1.8.0
  • 节点 NotReady 或 Pod 一直 ContainerCreating:确认 CNI 已部署(如 Calico:kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml),检查 Pod CIDR 与网络插件配置一致。
  • kubelet 起不来或反复重启:查看 journalctl -u kubelet;常见原因包括 Swap 未关闭Cgroup 驱动不一致(Docker 建议设置 “exec-opts”: [“native.cgroupdriver=systemd”])、或 内核参数未生效。
  • 节点加入失败:核对 kubeadm join 使用的 token/ca-cert-hash 是否过期,节点与 API Server 网络是否可达,必要的 端口是否放行。
  • 组件版本冲突或旧组件残留:如 yum 安装 docker-ce 冲突,先彻底卸载旧版(yum remove containerd.io docker-ce docker-ce-cli),再安装;保持 kubelet/kubeadm/kubectl 版本一致。

三 最小可用配置清单(CentOS 7/8)

  • 基础系统设置:
    • 关闭 Swap:swapoff -a & & sed -ri ‘s/.swap./#& /’ /etc/fstab
    • 内核参数:
      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
    • 主机名与解析:设置唯一 hostname,并在 /etc/hosts 或 DNS 中完成解析。
  • 容器运行时(Docker 示例):
    • 安装与开机自启:yum install -y docker-ce docker-ce-cli containerd.io & & systemctl enable --now docker
    • 配置 cgroup 驱动:
      cat > /etc/docker/daemon.json < < EOF
      {
      “exec-opts”: [“native.cgroupdriver=systemd”],
      “registry-mirrors”: [“https://hub-mirror.c.163.com”]
      }
      EOF
      systemctl restart docker
  • Kubernetes 组件:
    • 安装:yum install -y kubelet kubeadm kubectl & & systemctl enable --now kubelet
  • 初始化控制平面(示例):
    • kubeadm init --image-repository=registry.aliyuncs.com/google_containers --pod-network-cidr=10.244.0.0/16
  • 安装 CNI(示例):
    • kubectl apply -f https://docs.projectcalico.org/manifests/calico.yaml
  • 工作节点加入:
    • 使用 kubeadm join … 命令(由 init 输出),确保 token 未过期、网络可达。

四 一键回滚与重试

  • 重置节点到干净状态:kubeadm reset -f,清理 /etc/cni/net.d/var/lib/kubelet 等残留目录,重启 kubelet 后再尝试初始化或加入。
  • 重新初始化前,再次确认:Swap 关闭内核参数生效防火墙/SELinux 策略不会阻断 6443/10250/2379-2380 等关键端口、以及 镜像仓库可达

五 获取帮助与提交有效信息

  • 提交问题时请附带:操作系统与内核版本(如 uname -a)、容器运行时与版本(如 docker versioncrictl version)、kubeadm/kubelet/kubectl 版本(如 kubeadm version)、完整的错误日志(如 journalctl -u kubelet -n 200)、以及 kubectl describe pod kubectl get events 的输出。

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


若转载请注明出处: centos部署k8s遇到问题怎么办
本文地址: https://pptw.com/jishu/775316.html
Kubernetes如何在CentOS上进行网络配置 怎样检查centos上k8s部署状态

游客 回复需填写必要信息