1、查看pod详细描述
kubectl describe pod…
Pod失败的几种情况:
1)没有可用的节点调度
2)开启了资源配额管理,目标节点资源不足
3)镜像下载失败

2、查看容器日志
kubectl logs pod-name -c container-name

3、查看k8s服务日志
如果使用了systemd系统管理kubernetes服务,那么systemd的journal系统会接管服务程序的输出日志。可用journalctl -u +服务名 查看。
如果没有使用systemd系统管理kubernetes服务,则可以通过日志相关启动参数指定日志存放位置。

1)无法创建Pod、Pod启动就停止、Pod副本无法增加。
确定pod在节点上的位置,登录节点查看pod完整日志。
2)Pod扩容和RC相关问题。
很可能在kube-controller-manager和kube-scheduler日志中找出问题关键点。
3)etcd和kube-proxy经常被我们忽视。以proxy为例,即使它意外停止,pod状态也是正常的,但会导致服务异常。遇到此类问题,首先排查proxy日志,同时排查防火墙,需特别留意防火墙中的可疑规则。

常见问题:
1、pod处于pending状态
查看pod相关日志,一般为下载失败。
1)服务器有外网,配置docker daemon,启动参数加上匿名下载。
2)事先下载导入

2、Pod创建成功,restarts数量增加
通常是因为容器的启动命令不能保持在前台运行,容器启动命令执行后,认为该容器是成功结束,根据pod的默认策略always,RC将反复启动这个容器。
解决方法是将容器的启动命令设置为后台运行。

3、通过服务名无法访问服务
与服务涉及的:DNS解析、proxy组件的负载分发、后端pod列表状态等相关
步骤:
1)查看service的后端endpoint是否正常
2)查看service名称是否正常解析为clusterip
3)查看kube-proxy转发规则是正确(对于ipvs模式,可使用ipvsadm查看)

Logo

开源、云原生的融合云平台

更多推荐