如何解决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 举报,一经查实,本站将立刻删除。