Kubernetes部署/ Pod/ 容器状态

7
我目前正在开发一个监控服务,用于监视Kubernetes的部署及其Pod。我想在部署未运行预期副本数量和Pod容器意外重启时通知用户。这可能不是需要监控的正确内容,我非常希望能得到一些关于应该监控什么的反馈。
无论如何,主要问题是各个Pod的状态之间的差异。当我说状态时,指的是运行kubectl get pods时的状态列。相关的状态如下:
- ContainerCreating
- ImagePullBackOff
- Pending 
- CrashLoopBackOff 
- Error 
- Running 

什么导致pod/容器进入这些状态?
前四种状态是否可以在没有用户干预的情况下恢复?
CrashLoopBackOff的阈值是多少?
Running是唯一一个具有True的Ready Condition的状态吗?

任何反馈将不胜感激!

此外,使用kubectl在自动化脚本中进行监控是否是不好的做法?例如,每分钟记录kubectl get pods的结果到Elasticsearch中?
2个回答

1
你可以在k8s 文档 中查看pod生命周期的详细信息。 监控kubernetes集群和应用程序的推荐方式是使用prometheus

谢谢您的回复。我已经查阅了您提到的k8s文档,虽然它在我的某些问题方面提供了极好的信息,但对其他问题并没有深入探讨。 - Sam
至于Prometheus,我对它不是很了解,但我已经有了一个警报和日志记录的解决方案。除非有其他出色的功能使其成为Kubernetes监控的完美选择,否则我想避免使用Prometheus。 - Sam

1

我将尝试告诉您这些术语背后隐藏的含义

  • ContainerCreating

显示当我们等待镜像被下载并且容器将由Docker或其他系统创建时。

  • ImagePullBackOff

显示当我们无法从注册表中下载图像时。例如登录到Docker Hub的凭据错误。

  • Pending

容器启动(如果启动需要时间)或已启动但redinessProbe失败。

  • CrashLoopBackOff

当容器重启发生太频繁时,显示此状态。例如,我们有一个进程尝试读取不存在的文件并崩溃。然后Kube将重新创建容器并重复此过程。

  • Error

这很清楚。我们在运行容器时遇到了一些错误。

  • Running

一切正常,容器正在运行,并且livenessProbe正常。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接