问题描述
我正在尝试为 AWS eks 启用金丝雀部署,但我的 kayenta pod 没有启动。当我描述 pod 时,我看到了这个错误。有人可以帮忙吗?
Warning Unhealthy 12m (x2 over 12m) kubelet Readiness probe Failed: wget: can't connect to remote host (127.0.0.1): Connection refused
Warning Unhealthy 2m56s (x59 over 12m) kubelet Readiness probe Failed: wget: server returned error: HTTP/1.1 503
这是pod的状态:
NAME READY STATUS RESTARTS AGE
spin-clouddriver-d796bdc59-tpznw 1/1 Running 0 3h40m
spin-deck-77cc75b57d-w7rfp 1/1 Running 0 3h40m
spin-echo-db954bb9-phfd5 1/1 Running 0 3h40m
spin-front50-7c5684cf9-t7vl8 1/1 Running 0 3h40m
spin-gate-78d6779854-7xqz4 1/1 Running 0 3h40m
spin-kayenta-6d7b5fdfc6-p5tcp 0/1 Running 0 21m
spin-kayenta-869c46bfcf-8t5fh 0/1 Running 0 28m
spin-orca-7ddd66758d-mpnkg 1/1 Running 0 3h40m
spin-redis-5975cfcdc8-rnm9g 1/1 Running 0 45h
spin-rosco-b7dbb577-z4szz 1/1 Running 0 3h40m
解决方法
我将尝试从 Kubernetes 的角度解决您的问题。
您遇到的错误:
Warning Unhealthy 12m (x2 over 12m) kubelet Readiness probe failed: wget: can't connect to remote host (127.0.0.1): Connection refused
Warning Unhealthy 2m56s (x59 over 12m) kubelet Readiness probe failed: wget: server returned error: HTTP/1.1 503
表示您的 ReadinessProbe
配置存在问题。从部署中删除 ReadinessProbe
可以“修复”错误,但将来可能会导致更多问题。为避免这种情况,我建议使用 proper configuration:
探针有许多字段,您可以使用它们更精确地 控制活性和就绪检查的行为:
-
initialDelaySeconds
:启动活动或就绪探测之前容器启动后的秒数。默认为 0 秒。最小值为 0。 -
periodSeconds
:执行探测的频率(以秒为单位)。默认为 10 秒。最小值为 1。 -
timeoutSeconds
:探测超时的秒数。默认为 1 秒。最小值为 1。 -
successThreshold
:探测失败后被视为成功的最少连续成功次数。默认为 1。必须为 1 为生。最小值为 1。 -
failureThreshold
:当探测失败时,Kubernetes 会尝试 failureThreshold 次,然后放弃。生不如死 探针意味着重新启动容器。在准备就绪的情况下探测 Pod 将被标记为未就绪。默认为 3。最小值为 1。
您需要根据您的应用行为(通常通过反复试验)调整探测器的配置。我建议可以帮助您解决此问题的两个资源是: