如何解决Kubernetes 活跃度探测 httpGet 架构无法正常工作
我正在 kubernetes 上部署一些 Web 应用程序,我想为此应用程序设置活动探测。 当我使用 liveness probe 配置我的部署时,kubelet 会开始健康检查。我使用方案“HTTP”参数定义了 httpGet,但 kubelet 随机使用了 https 模式。
这是我的活性探针配置:
livenessProbe:
failureThreshold: 4
httpGet:
path: /
port: 80
scheme: HTTP
initialDelaySeconds: 40
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 2
这是 kubelet 的结果:
kubectl 描述 pod greenlight-7877dc58b7-6s78l
输出:
警告不健康的 31 秒(x4 超过 46 秒)kubelet Liveness 探测失败:获取“https://10.244.4.182/”:拨打 tcp 10.244.4.182:443: 连接:连接被拒绝
Kubernetes 版本:v1.19.9
感谢帮助!
解决方法
由于您明确声明 livenessProbe 使用 HTTP,因此可能是您的应用程序将流量重定向到 HTTPS。确保您的应用程序在基本路径 200 OK
上返回 /
,而不是重定向(任何 3xx
代码)。
您可以修复该问题,也可以使用 TCP probe
apiVersion: v1
kind: Pod
metadata:
name: goproxy
labels:
app: goproxy
spec:
containers:
- name: goproxy
image: k8s.gcr.io/goproxy:0.1
ports:
- containerPort: 8080
readinessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 5
periodSeconds: 10
livenessProbe:
tcpSocket:
port: 8080
initialDelaySeconds: 15
periodSeconds: 20
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。