Kubernetes 活性探测 httpGet 架构无法正常工作
Kubernetes liveness probe httpGet schema not working correctly
我正在 kubernetes 上部署一些 web 应用程序,我想为此应用程序设置 liveness probe。
当我使用 liveness probe 配置我的部署时,kubelet 开始运行状况检查。我被定义为带有方案“HTTP”参数的 httpGet,但 kubelet 随机使用 https 架构。
这是我的 liveness probe 配置:
livenessProbe:
failureThreshold: 4
httpGet:
path: /
port: 80
scheme: HTTP
initialDelaySeconds: 40
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 2
这是 kubelet 的结果:
kubectl 描述 pod greenlight-7877dc58b7-6s78l
输出:
Warning Unhealthy 31s (x4 over 46s) kubelet Liveness
probe failed: Get "https://10.244.4.182/": dial tcp 10.244.4.182:443:
connect: connection refused
Kubernetes 版本:v1.19.9
感谢您的帮助!
由于您明确声明 livenessProbe 使用 HTTP,因此很可能是您的应用程序将流量重定向到 HTTPS。确保您的应用程序 returns 是基本路径 /
上的 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
我正在 kubernetes 上部署一些 web 应用程序,我想为此应用程序设置 liveness probe。 当我使用 liveness probe 配置我的部署时,kubelet 开始运行状况检查。我被定义为带有方案“HTTP”参数的 httpGet,但 kubelet 随机使用 https 架构。
这是我的 liveness probe 配置:
livenessProbe:
failureThreshold: 4
httpGet:
path: /
port: 80
scheme: HTTP
initialDelaySeconds: 40
periodSeconds: 5
successThreshold: 1
timeoutSeconds: 2
这是 kubelet 的结果:
kubectl 描述 pod greenlight-7877dc58b7-6s78l
输出:
Warning Unhealthy 31s (x4 over 46s) kubelet Liveness probe failed: Get "https://10.244.4.182/": dial tcp 10.244.4.182:443: connect: connection refused
Kubernetes 版本:v1.19.9
感谢您的帮助!
由于您明确声明 livenessProbe 使用 HTTP,因此很可能是您的应用程序将流量重定向到 HTTPS。确保您的应用程序 returns 是基本路径 /
上的 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