网络、API 连接和 pod 启动的问题

问题如下:

  • ArgoCD 和 Prometheus/Grafana 服务的网络连通性差,出现了如 ImagePullBackOff、CrashLoopBackOff、i/o timeout 等错误。

  • 你尝试访问相关服务时,出现了 No route to host 或 connection refused 错误。

  • 证书相关错误或 K8S 服务间的连接无法建立,导致应用无法启动和运行。

问题根源:

  • CNI (Calico) 网络配置问题 :Calico 没有正确设置或接口未启用,导致 Pod 网络无法正常工作。特别是 tunl0 或 vxlan 等接口的状态为 UNKNOWN,并且没有正确的路由设置。

  • 内核参数问题 :如 ip_forward 和 rp_filter 设置不正确,影响到网络转发和封装。

  • Kubernetes 网络策略问题:防火墙设置或路由规则可能限制了 Pod 和节点之间的通信。

  • ArgoCD API 连接超时 :由于无法连接到集群的 localhost:8080,导致 ArgoCD 无法拉取目标状态。

解决方法:

(1) 检查网络与接口状态:
  • 使用 ip addr 确认了网络接口(如 tunl0 或 vxlan)是否存在,且接口是否处于 UP 状态。

  • 使用 ip route 确保路由正确,包括 Pod 网段路由(如 10.244.1.0/24)是否通过 Calico 接口。

  • 通过 sysctl 命令检查并修改了内核参数,确保启用了 IP 转发,并关闭了 rp_filter(反向路径过滤)。

(2) 重启 Calico 网络组件:
  • 在节点上重启了 calico-node Pod,确保 CNI 插件重新初始化并恢复正常的网络连接。

  • 使用命令 kubectl -n kube-system delete pod -l k8s-app=calico-node 来清除并重启 Calico 节点。

(3) 检查与修复 Kubernetes 网络策略:
  • 确保了节点与 Pod 之间的连接没有被 iptables 防火墙规则或 Calico 网络策略拦截。

  • 如果在防火墙和路由规则中发现问题,通过修改 iptables 设置来恢复正确的网络连接。

(4) 恢复 ArgoCD / Prometheus 服务:
  • 解决了网络问题后,重启了 ArgoCD 和 Prometheus 相关的 Pods 和 Deployment(通过 kubectl rollout restart 命令),确保它们能够重新连接并正常运行。

  • 修复了连接超时和 i/o timeout 错误,恢复了 UI 访问和应用管理。

(5) 测试与验证:
  • 使用 curl 命令验证了 Kubernetes API Server 是否可达(通过 https://<API_SERVER_IP>:6443/healthz)。

  • 确保了节点之间的网络连接恢复正常,使用 ping 和 wget 测试了 pod 间的连接。

  • 确保了在重启 Calico 后,Pod 网络接口和路由恢复正常。

相关推荐
工作10年+,存储芯片行业4 小时前
Linux NVMe 中断排查与性能优化:CPU 亲和性
linux·运维·服务器·windows·性能优化·ssd·pcie
酣大智4 小时前
H3C MSR3600 交换机配置 SSH
网络·ssh·智能路由器
沐浴露z4 小时前
Agent 响应延迟过高?从工具治理角度提供两条思路
前端·网络
快乐の番薯4 小时前
卷王问卷考试系统自动化功能测试
运维·功能测试·自动化
一号弯5 小时前
装完LINUX,请先新建日常用户
linux·运维·服务器
马六六i5 小时前
市面上正规的IP驱动产业新场景新工具有哪些
大数据·网络·python·tcp/ip
许彰午6 小时前
03-Linux环境准备依赖包内核参数与用户组
linux·运维·服务器·数据库
阳光九叶草LXGZXJ6 小时前
达梦数据库-报错-16-MERGE INTO提示:无效的列名[XX]
linux·运维·数据库·sql·学习
可乐ea7 小时前
多模型编排的三层:框架、模型路由与提供商路由
前端·网络·人工智能·ai智能体·多智能体协作·多模型编排·大模型路由
万联WANFLOW7 小时前
全球广告网络直通美国,TikTok抢占旺季全域流量新高地
网络·业界资讯