You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

AWS上单节点OKD 4.8集群重启后无响应故障排查求助

故障排查思路

第一步:基础网络连通性校验

  • 先确认域名解析是否正常:在本地执行nslookup api.api1.hostname.info,对比返回的IP是否和你AWS单节点的公网/内网IP(取决于你平时访问的网络环境)一致,同时去AWS Route53控制台检查对应A记录是否存在、值是否匹配,有没有被自动修改或者过期。
  • 检查AWS安全组、网络ACL配置:确认6443、443、80等OKD必要端口的入站规则是否允许你当前客户端IP访问,有没有因为重启后实例关联的安全组被误改。
  • 直接用IP测试端口连通性:执行telnet <节点IP> 6443或者nc -zv <节点IP> 6443,如果IP能通、域名不通,就是DNS解析问题;如果IP也不通,继续往下查节点内部的服务状态。

第二步:节点内部服务状态排查

首先通过AWS EC2的SSH或者会话管理器登录到节点操作系统

  • 检查6443端口是否被监听:执行ss -tulnp | grep 6443,正常情况下应该是kube-apiserver进程在监听该端口,如果没有输出,说明API服务根本没起来。
  • 检查OKD核心服务状态:执行crictl ps -a | grep kube-apiserver、crictl ps -a | grep etcd,查看这两个核心服务的容器是否在运行,有没有反复重启的情况。

    注意OKD 4.x的核心服务都是用cri-o运行的,不要用docker命令查询

  • 查看核心服务日志:如果apiserver或者etcd容器异常,用crictl logs <容器ID>查看具体报错,常见问题包括etcd数据损坏、节点IP变更后证书不匹配、kubeconfig配置错误。
  • 检查节点IP是否变更:AWS EC2如果没有绑定弹性公网IP,重启后公网IP会变化,同时内网IP如果不是静态的也可能变更,OKD的证书是绑定部署时的IP和域名的,如果IP变了会直接导致核心服务启动失败。

第三步:单节点集群特有的问题排查

  • 检查节点磁盘使用率:执行df -h,如果/var/lib/etcd、/var/lib/containers对应的分区使用率到100%,会导致etcd写入失败、apiserver无法启动,之前的Pod无法创建的问题也可能和磁盘满有关。
  • 检查证书有效期:执行openssl s_client -connect localhost:6443 | openssl x509 -noout -dates,确认apiserver证书没有过期,如果部署时的证书配置有问题也可能出现重启后证书失效的情况。
  • 检查kubelet服务状态:执行systemctl status kubelet,确认kubelet是否在正常运行,如果kubelet挂了,所有核心容器都不会被调度启动,查看kubelet日志journalctl -u kubelet -f找具体报错原因。

第四步:恢复验证

如果排查到问题修复后,确认6443端口正常监听后,再在本地执行oc whoami测试连接,正常返回用户信息后再检查控制台、其他 workload 状态。

内容的提问来源于stack exchange,提问作者Billy Billy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 00:27:03