1

我正在 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

输出:

警告 Unhealthy 31s (x4 over 46s) kubelet Liveness probe failed: Get "https://10.244.4.182/": dial tcp 10.244.4.182:443: connect: connection denied

Kubernetes 版本:v1.19.9

感谢您的帮助!

4

1 回答 1

0

由于您明确声明 livenessProbe 使用 HTTP,因此可能是您的应用程序将流量重定向到 HTTPS。确保您的应用程序返回200 OKon basepath /,而不是重定向(任何3xx代码)。

您可以修复它,或使用TCP 探测

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
于 2021-05-28T08:02:02.323 回答