Kubernetes 活性探针:pod 可以监控自己的标准输出吗?

eng*_*erX 4 kubernetes kubernetes-pod

我的想法是实现一个活性探针作为命令,并使用类似的东西

$ grep something ERROR
Run Code Online (Sandbox Code Playgroud)

来自 Pod 内部,因此如果在 Pod 的输出中存在包含 ERROR 的行,则活性探测失败。

这可能吗?如果没有,是否可以在同一个容器中添加另一个容器来监视第一个容器?

Mar*_*sch 6

您可以查询Kubernetes API 服务器

该请求如下所示:

GET /api/v1/namespaces/{namespace}/pods/{name}/log

要使用通常挂载在 Pod 中的令牌,您可以这样调用它:

curl https://kubernetes/api/v1/namespaces/default/pods/$HOSTNAME/log -k \
     -H "Authorization: Bearer $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)"
Run Code Online (Sandbox Code Playgroud)

  • OP 请注意,kubernetes 服务主机地址在环境中也可用,如下所示(我使用sinceSeconds参数扩展了它,如@engineerX建议的): `curl https://${KUBERNETES_SERVICE_HOST}/api/v1/namespaces /default/pods/${HOSTNAME}/log?sinceSeconds=<N_秒> -k -H “授权:承载 $(cat /var/run/secrets/kubernetes.io/serviceaccount/token)”` (2认同)