一、背景。
今天在做云原生开发,发现Dashboard的pod状态为CrashLoopBackOff ,记录一下问题。
解决 kubernetes(k8s)创建Dashboard失败,Dashboard的pod状态为CrashLoopBackOff
二、解决方法。
1.首先执行: kubectl get pod -A
kubectl get pod -A
2. 查询错误日志: kubectl logs -f -n kubernetes-dashboard kubernetes-dashboard-658485d5c7-t7fw7
kubectl logs -f -n kubernetes-dashboard kubernetes-dashboard-658485d5c7-t7fw7
3.发现上图报错问题:dial tcp ip: i/o timeout
4.执行:iptables -L -n --line-numbers | grep dashboard,发现是ipatables规则问题.
iptables -L -n --line-numbers | grep dashboard
5.根据上图可以很明显看到,dashboard的数据包直接被REJECT(拒绝)了,找到原因就好办了,设置成允许(ACCEPT)就行。
6.把现有的防火墙规则保存下:iptables-save > iptables.rules
iptables-save > iptables.rules
7.执行以下命令以确保默认策略为ACCEPT。
iptables -P INPUT ACCEPT
iptables -P FORWARD ACCEPT
iptables -P OUTPUT ACCEPT
8:执行命令: iptables -F
iptables -F
9.把创建的dashboard pod删掉并重启下docker,再次创建dashboard,创建成功。
kubectl delete deployment kubernetes-dashboard --namespace=kubernetes-dashboard
kubectl delete deployment dashboard-metrics-scraper --namespace=kubernetes-dashboard
10.问题解决。
三、总结。
极客精神 业务强才是真的强