给定一个python应用程序,它在无限循环中轮询kafka主题,并在处理收到的kafka消息后将结果上传到s3 bucket。
在定义kubernetes的就绪性和活跃性探测器时,应该考虑什么。
准备就绪探测中包含以下内容是否合理:
s3桶的存在。
Kafka的主题是存在的。
轮询kafka主题的循环已初始化。
而liveness探针只检查poll循环是否没有退出。
严格地说,检查这些东西是一种不好的做法吗?
给定一个python应用程序,它在无限循环中轮询kafka主题,并在处理收到的kafka消息后将结果上传到s3 bucket。
在定义kubernetes的就绪性和活跃性探测器时,应该考虑什么。
准备就绪探测中包含以下内容是否合理:
s3桶的存在。
Kafka的主题是存在的。
轮询kafka主题的循环已初始化。
而liveness探针只检查poll循环是否没有退出。
严格地说,检查这些东西是一种不好的做法吗?
1条答案
按热度按时间huus2vyu1#
我不会在Kubernetes探测器里检查这些东西。让应用程序启动时自己检查它们,如果环境不合适,请立即退出。你的pod会以crashloopbackoff状态出现,它会重新启动几次,但是很明显出了问题。
在应用程序运行时,这些东西可能会失败,但您应该能够注意到这一点。例如,普罗米修斯(prometheus)这样的度量系统可以帮助您注意到大多数s3请求是否失败。如果可以检查kafka侦听器主循环是否已退出,也可以重新启动它。