微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Kubernetes Liveness 和就绪探测导致错误日志“http: TLS 握手错误来自 10.234.0.1:49330: EOF”

如何解决Kubernetes Liveness 和就绪探测导致错误日志“http: TLS 握手错误来自 10.234.0.1:49330: EOF”

我正在为我的 kuberenetes 部署配置就绪和活跃探测。

这是我添加它的方式:

  ports:
    - name: http
      containerPort:  {{ .Values.service.internalPort }}
      protocol: TCP
  livenessProbe:
    tcpsocket:
      port: http
  readinessProbe:
    tcpsocket:
      port: http

但这会导致 pod 中的错误日志:

2021/03/24 03:23:06 http: TLS handshake error from 10.244.0.1:48476: EOF

如果我删除探针并创建部署,则不会出现此日志。

我有一个入口设置,以便将该容器的所有 http 请求作为 https。因为我的容器只需要 https 请求。

我认为显示错误日志是因为 tcp 探测器没有在此处发送 https 请求。

是否有其他方法可以在没有这些错误日志的情况下设置探测器?

解决方法

如果您希望向服务发送 HTTPS 请求,则必须更改 scheme

livenessProbe:
  httpGet:
    path: /
    port: 443
    scheme: HTTPS
readinessProbe:
  httpGet:
    path: /
    port: 443
    scheme: HTTPS

您可以在以下位置查看更多信息:https://kubernetes.io/docs/tasks/configure-pod-container/configure-liveness-readiness-startup-probes/#http-probes

scheme:用于连接到主机的方案(HTTP 或 HTTPS)。默认为 HTTP。

如果设置了 HTTPS,kubelet 将发送到 HTTPS 请求,否则默认为 HTTP。

如果请求失败,您将看到类似这样的日志:400 bad request

10.165.18.52 - - [24/March/2021:17:06:40 +0000] "GET / HTTP/1.1" 400 271 "-" "kube-probe/1.16"

对于成功的请求,它将是 200 个请求

10.165.18.52 - - [24/March/2021:18:10:06 +0000] "GET / HTTP/1.1" 200 "-" "kube-probe/1.16"

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。