在 Spinnaker 中运行 Canary 部署时出错

问题描述

我正在尝试为 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。

您需要根据您的应用行为(通常通过反复试验)调整探测器的配置。我建议可以帮助您解决此问题的两个资源是: