服务器宕机导致K8S集群异常,部分nginx服务的pod启动失败
K8S版本:v1.12.5
问题1 nginx pod 启动失败,故障现象如下
nginx Pod 启动以后马上报错:
yaml
[root@jd-training-cpu-01 ~]# kubectl logs -n paisystem easydl-fe-nginx-79b94ff444-5swq9 -f
2024/04/11 12:42:05 [emerg] 6#6: host not found in upstream "easydl-gateway.paisystem:8099" in /etc/nginx/vhost/quickai.conf:2
nginx: [emerg] host not found in upstream "easydl-gateway.paisystem" in /etc/nginx/vhost/quickai.conf:2
提示 nginx 配置文件有问题,其实是这个 域名 easydl-gateway.paisystem ping不通了,后来发现是这个pod 和另外几个没起来的pod 正好部署在刚刚宕机的那个服务器上并且这个几个Pod还是需要在启动nginx的时候访问upstream里面的地址是否能通,不通就启动失败。
解决方法
因为宕机的那个节点iptables出问题了,导致部署到部署在那个节点上的服务出现问题,解决方法 清空iptables规则并重启docker服务,然后等docker正常以后再重启那几个pod问题解决
yaml
# 清空iptables规则
iptables -F
# 重启docker服务(docker服务重启会重新添加K8S集群用到的iptables规则)
systemctl restart docker
# 等docker服务正常以后,再次重启有问题的几个Pod服务即可正常