【问题标题】:Liveness and readiness probe connection refusedLiveness 和 Readiness 探针连接被拒绝
【发布时间】:2020-09-15 15:13:27
【问题描述】:

当我尝试为我的 awx_web 容器设置 liveness & readiness prob 时,我不断收到此错误

Liveness probe failed: Get http://POD_IP:8052/: dial tcp POD_IP:8052: connect: connection refused

我的容器 awx_web 部署中的 Liveness & Readiness 部分

          ports:
          - name: http
            containerPort: 8052 # the port of the container awx_web
            protocol: TCP
          livenessProbe:
            httpGet:
              path: /
              port: 8052
            initialDelaySeconds: 5
            periodSeconds: 5
          readinessProbe:
            httpGet:
              path: /
              port: 8052
            initialDelaySeconds: 5
            periodSeconds: 5

如果我测试端口 8052 是否从与包含容器 awx_web 的 pod 位于同一名称空间的另一个 pod 中打开,或者如果我使用与容器 awx_web 部署在同一 pod 中的容器进行测试,我会得到这个(端口已打开)

/ # nc -vz POD_IP 8052
POD_IP  (POD_IP :8052) open

如果我从部署包含容器 awx_web 的 pod 的工作节点使用 netcat (nc),我会得到相同的结果(端口 8052 已打开)。

对于信息,我使用 NodePort 服务将流量重定向到该容器 (awx_web)

type: NodePort
ports:
- name: http
  port: 80
  targetPort: 8052
  nodePort: 30100

【问题讨论】:

  • 如果您从另一个 pod 执行 curl http://POD_IP:8052/ ..它有效吗?
  • 来自另一个 pod、同一个 pod 中的容器或工作节点,是的,它可以工作
  • 检查 kubelet 和 cni 插件 pod 日志
  • 对于 kubelet 日志,它给出了同样的错误

标签: http kubernetes ansible-awx readinessprobe livenesprobe


【解决方案1】:

我重新创建了您的问题,您的问题似乎是由活性探测的 initialDelaySeconds 值太小引起的。

awx 容器打开 8052 端口需要 5s 以上。 您需要稍等片刻才能启动。我发现将其设置为 15 秒对我来说就足够了,但您可能需要进行一些调整。

【讨论】:

  • 我已经将 initialDelaySeconds 增加到 30s 然后增加到 60s 但仍然是同样的问题
  • 设置了 liveness probe 后,你能否在 pod 启动后立即执行它并运行 watch -n1 "ss -lnt" 并检查端口 8052 何时打开?
  • 容器有State: RunningReady: False,当我发出你的命令时,列表中缺少8052端口
  • 它是否总是丢失或可能在一段时间后出现?另外请检查日志kubectl logs -n <namespace> <pod_name>,可能有一些错误。@Adamsin
  • 我部署了 awx 9.3.0,看起来 awx-web 容器需要 5 分钟才能打开端口 8052 并开始提供流量。这就是活性探测失败的原因。自己检查;移除探针,执行到容器watch ss -lnt,并测量从 pod 开始到端口 8052 开放以来的时间。
【解决方案2】:

您的应用程序很可能在启动后无法启动或崩溃。这可能是由于内存和cpu资源不足。或者 awx 依赖项之一未正确设置,如 postgreslq 和 rabbit。

您是否检查过您的应用程序在没有探测的情况下是否可以正常工作?我建议先这样做。稍微检查一下 pod 统计信息,以确保它不会重新启动。

【讨论】:

  • 我确实在没有探针的情况下运行了 awx,它运行良好
猜你喜欢
  • 2018-02-11
  • 2019-05-18
  • 2020-12-13
  • 1970-01-01
  • 1970-01-01
  • 2021-12-17
  • 2020-06-19
  • 2023-01-30
  • 2019-10-12
相关资源
最近更新 更多