默认情况下,Kubernetes在pod内的所有容器启动时开始向pod发送流量,并在容器崩溃时重新启动。虽然这在您开始时可以足够好
,但您可以通过创建自定义健康检查来使部署更加健壮。
默认情况下,Kubernetes只是检查pod内部的容器是否启动并开始发送流量。默认情况下没有Kubernetes提供的就绪或活跃度检查。
准备状态探测器
给出一个Python应用程序,它在无限循环中轮询Kafka主题,并在处理接收到的Kafka消息后将结果上传到s3 bucket。 null 并且活性探测只检查轮询循环是否尚未退出。 严格来说,在准备调查中检查这样的事情是不好的做法吗?
对于liveness,我认为它可能会开始循环使用POD/容器,尽管(在DB关闭的情况下)它可能无法修复任何东西。 准备就绪后,我想如果数据库关闭,可能会导致可用应用程序池为0。如果数据库关闭,应用程序本身很可能不会很有用,但我想部分可能仍然可以工作。 对于这种类型的事情,有推荐的最佳实践吗?
为了简单起见,我认为在kubernetes中最好只检查TCP端口的活跃度和就绪度,因为它不需要了解健康检查endpoint(HTTP路径),而只需要端口号。任何关于仅仅依赖TCP端口进行服务健康检查的缺点的指南都非常赞赏,请假设POD不是其他服务的代理,并且所有业务逻辑都在POD本身中。 https://kubernetes.io/docs/tasks/configure-pod-containe
我有一个简单的问题,但我找不出正确的答案。 我能怎么做吗?或者是一个很好的答案,可以解释活跃度和就绪度检查python是否正在运行。 多谢!
我正在OpenShift Pod中运行Spring Boot2.0.0应用程序。为了执行就绪和活性探测,我依赖于Spring引导执行器健康检查。我的应用程序属性文件具有以下属性: 遵循就绪和活性探测器的相关配置。 我的期望是,我的准备和活跃度探测应该失败的这些随机URL,但他们是成功的。不知道我错过了什么。好心的帮助。
我使用的是标准的skydns RC/SVC YAMLS。 吊舱描述: (etcd) 我还将放入kube2sky容器中,ca.crt与服务器上的ca.crt匹配。