首页 > 解决方案 > 这些 Kubernetes 健康检查来自哪里?

问题描述

因此,我将部署暴露在 GCE 入口处。在部署时,在工作路径上实现了一个简单的 readinessProbe,如下所示:

    readinessProbe:
      failureThreshold: 3
      httpGet:
        path: /claim/maif/login/?next=/claim/maif
        port: 8888
        scheme: HTTP
      initialDelaySeconds: 20
      periodSeconds: 60
      successThreshold: 1
      timeoutSeconds: 1

一切正常,第一次健康检查在 20 秒后出现,并回答 200 :

{address space usage: 521670656 bytes/497MB} {rss usage: 107593728 bytes/102MB} [pid: 92|app: 0|req: 1/1] 10.108.37.1 () {26 vars in 377 bytes} [Tue Nov  6 15:13:41 2018] GET /claim/maif/login/?next=/claim/maif => generated 4043 bytes in 619 msecs (HTTP/1.1 200) 7 headers in 381 bytes (1 switches on core 0)

但是,就在那之后,我收到了来自其他健康检查的大量其他请求,在 / :

{address space usage: 523993088 bytes/499MB} {rss usage: 109850624 bytes/104MB} [pid: 92|app: 0|req: 2/2] 10.132.0.14 () {24 vars in 277 bytes} [Tue Nov  6 15:13:56 2018] GET / => generated 6743 bytes in 53 msecs (HTTP/1.1 200) 4 headers in 124 bytes (1 switches on core 0)
{address space usage: 515702784 bytes/491MB} {rss usage: 100917248 bytes/96MB} [pid: 93|app: 0|req: 1/3] 10.132.0.20 () {24 vars in 277 bytes} [Tue Nov  6 15:13:56 2018] GET / => generated 1339 bytes in 301 msecs (HTTP/1.1 200) 4 headers in 124 bytes (1 switches on core 0)
{address space usage: 518287360 bytes/494MB} {rss usage: 103759872 bytes/98MB} [pid: 93|app: 0|req: 2/4] 10.132.0.14 () {24 vars in 277 bytes} [Tue Nov  6 15:13:58 2018] GET / => generated 6743 bytes in 52 msecs (HTTP/1.1 200) 4 headers in 124 bytes (1 switches on core 0)
{address space usage: 518287360 bytes/494MB} {rss usage: 103837696 bytes/99MB} [pid: 93|app: 0|req: 3/5] 10.132.0.21 () {24 vars in 277 bytes} [Tue Nov  6 15:13:58 2018] GET / => generated 6743 bytes in 50 msecs (HTTP/1.1 200) 4 headers in 124 bytes (1 switches on core 0)
{address space usage: 523993088 bytes/499MB} {rss usage: 109875200 bytes/104MB} [pid: 92|app: 0|req: 3/6] 10.132.0.4 () {24 vars in 275 bytes} [Tue Nov  6 15:13:58 2018] GET / => generated 6743 bytes in 50 msecs (HTTP/1.1 200) 4 headers in 124 bytes (1 switches on core 0)

据我了解,文件说

Ingress 控制器首先寻找一个兼容的就绪探针,如果找到,它会将其作为 GCE 负载均衡器的 HTTP(S) 健康检查。如果没有就绪探测,或者就绪探测需要特殊的 HTTP 标头,则 Ingress 控制器将 GCE 负载均衡器的 HTTP 健康检查指向“/”。这是一个 Ingress 示例,它采用来自端点的就绪探测作为其健康检查。

但我不明白这种行为。如何将运行状况检查限制为我在部署中定义的检查?

谢谢,

标签: kuberneteskubernetes-ingressgoogle-kubernetes-enginekubernetes-health-check

解决方案


您需要在您的 deployment.yaml 中为 readinessProbe 中使用的端口号定义端口,例如

        ports:
      - containerPort: 8888
        name: health-check-port

推荐阅读