Kubernetes健康检查查找字符串

3

我有一个容器,它有一个ping端点(返回pong),我想探测ping端点并查看是否会返回pong。如果只是检查200状态码,我可以在我的pod中添加一个存活检查,如下所示:

livenessProbe:
  initialDelaySeconds: 2
  periodSeconds: 5
  httpGet:
    path: /ping
    port: 9876 

我怎样修改这段代码来检查我是否收到了一个 pong 响应?

1
Http探针检查状态和头响应,但不检查响应正文。https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#define-a-liveness-http-request - Suresh Vishnoi
1
@SureshVishnoi 它不会检查响应头,可以参考文档和我的回答。但是你可以设置请求头。 - Jonas
2个回答

8

由于HTTP探针只检查响应的状态代码,因此您需要使用exec探针在容器上运行命令。像这样的东西,需要在容器上安装curl

livenessProbe:
  initialDelaySeconds: 2
  periodSeconds: 5
  exec:
    command:
    - sh
    - -c
    - curl -s http://localhost:9876/ping | grep pong

1

httpGet的活性探针和就绪探针只关心HTTP响应代码

大于或等于200且小于400的任何代码都表示成功。任何其他代码表示失败。

最好将您的pong消息更改为在响应中设置适当的HTTP状态代码。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接