活动和就绪探针连接被拒绝

Abd*_*ane 9 http ansible-awx kubernetes readinessprobe livenessprobe

当我尝试为 awx_web 容器设置活性和就绪性问题时,我不断收到此错误

Liveness probe failed: Get http://POD_IP:8052/: dial tcp POD_IP:8052: connect: connection refused
Run Code Online (Sandbox Code Playgroud)

我的容器 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
Run Code Online (Sandbox Code Playgroud)

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

/ # nc -vz POD_IP 8052
POD_IP  (POD_IP :8052) open
Run Code Online (Sandbox Code Playgroud)

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

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

type: NodePort
ports:
- name: http
  port: 80
  targetPort: 8052
  nodePort: 30100
Run Code Online (Sandbox Code Playgroud)

Mat*_*att 13

我重新创建了您的问题,看来您的问题是由initialDelaySeconds活性探针的值太小引起的。

awx容器打开8052端口需要5s以上。您需要等待一段时间才能开始。我发现将其设置为 15 秒对我来说就足够了,但您可能需要一些调整。

  • 我部署了 awx 9.3.0,看起来 awx-web 容器需要整整 5 分钟才能打开端口 8052 并开始提供流量。这就是活性探测失败的原因。自己检查一下;删除探针,对容器执行“watch ss -lnt”,并测量自 pod 启动到端口 8052 打开的时间。 (2认同)

Viv*_*vek 13

就我而言,出现此问题是因为我已将后端应用程序主机配置为localhost. 0.0.0.0当我将主机值更改为应用程序属性内部时,问题得到解决。

进行此更改后,使用最新构建的 docker 映像。


Luf*_*ffy -1

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

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