k8s命令运行状况探针的最佳实践

时间:2020-07-16 03:50:11

标签: kubernetes readinessprobe

我有一个工作包,它可以订阅服务队列。我们需要定义活力探测器以监视工人的健康。 worker pod不会公开任何HTTP或TCP端口。因此,我使用该命令检查工作人员的健康状况。这样。

  livenessProbe:
  exec:
    command:
    - cat
    - log/healthy-2020-07-16-03.log

每隔5秒钟,工作人员吊舱就会将运行状况信息输出到日志文件。日志文件名称格式为Healthy-YYYY-MM-DD-HH.log。 每个日志信息都像这样:

{"message":"Thu Jul 16 2020 03:23:30 GMT+0000 (Coordinated Universal Time) health","level":"notice","Env":"local","Service":"myservice","timestamp":"2020-07-16T03:23:30.008Z"}

所以我需要检查日志时间戳和消息是否正常。

我的问题是:

  1. 我的方法是否遵循k8s健康状况探针的最佳实践?
  2. k8s是否支持更强大的命令?例如:python脚本或jq。我需要解析JSON并验证时间戳和消息吗?
  3. 对于工人吊舱,我们不需要定义就绪探针,因为它不与k8s服务或端点绑定,对吧?

1 个答案:

答案 0 :(得分:3)

我的方法是否遵循k8s健康状况探针的最佳实践?

k8s支持更强大的命令吗?例如:python脚本或jq。我需要解析JSON并验证时间戳和消息吗?

实际上,exec探针将作为命令行在容器内运行。更多详细信息here。因此,您可以运行python脚本或jq之类的东西。但是,必须确保可以在容器内执行在探针中运行的命令。举例来说,您要为探针运行python脚本,请确保您的容器已安装python,并且该脚本也存在于容器内。

对于工人吊舱,我们不需要定义就绪探针,因为它不与k8s服务或端点绑定,对吗?

这取决于您的用例和服务的工作方式。

一篇不错的文章here,介绍了“准备与活力”调查。

相关问题