为了简单起见,我认为最好只检查TCP端口以了解kubernetes的 liveness 和就绪性,因为它不需要健康检查端点(HTTP路径)的知识,而只需要端口号即可。非常感谢任何关于仅依靠TCP端口进行服务运行状况检查的缺点的指南,请假定Pod不能替代某些其他服务,并且所有业务逻辑都在Pod本身中。
https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/
最佳答案
根据我的经验,当您在同一个容器中的应用程序前面有一个反向代理Sidecar时,例如HTTP。 nginx。在这种情况下,即使应用程序尚未准备就绪,nginx也会始终接受TCP。因此,您需要HTTP。
除此以外:
/health
内部有任何其他逻辑(例如检查数据库连接)如果以上所有内容均正确,请使用TCP。
提示您甚至不需要知道TCP的端口号,可以使用命名端口:https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#use-a-named-port
关于http - 在TCP探针和HTTP探针之间进行选择以提高kubernetes的 liveness 和就绪性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64168059/