【问题标题】:Kubernetes : deployment failed to rollout even after pod ready status is trueKubernetes:即使 pod 就绪状态为 true,部署也无法推出
【发布时间】:2019-06-10 06:57:14
【问题描述】:

我正在尝试通过以下步骤使用 circleCI 工作流程部署我的一个应用程序:

  • 设置环境
  • 构建
  • 单元测试
  • 集成测试
  • 部署

每当我的集成测试需要大约 7-8 分钟时,我就会在 circleCI 控制台上收到超时错误。

deployment.extensions/demo-app created
Waiting for deployment "demo-app" rollout to finish: 0 out of 1 new replicas have been updated...
Waiting for deployment "demo-app" rollout to finish: 0 of 1 updated replicas are available...
Too long with no output (exceeded 10m0s)

rollout status 命令似乎有问题,或者它无法检测到我的测试已经完成并且 pod 处于就绪状态。

我也检查了kubectl describe pod 命令的输出,它显示 pod 状态已准备就绪。

我已经尝试在 circleCI 配置中增加 no_output_timeout 但没有奏效。

我还尝试根据集成测试所用的时间更改就绪探针参数的值,但它仍然以超时结束。 就绪探针的当前值:

readinessProbe:
    exec:
        command:
            - cat
            - /test/result
    initialDelaySeconds: 10
    periodSeconds: 10
    failureThreshold: 60

当我在减少集成测试次数后重新运行 circleCI 构建时,它工作正常。

请让我知道这可能的原因,因为我对部署和 kubernetes 完全是新手。

我正在使用Kubernetes v1.5.2

【问题讨论】:

  • 你能检查你的 pod 是否有很多重启吗?运行 kubectl get pods 应该会显示一个包含重启次数的字段
  • @Blokje5 感谢您的输入,但 pod 没有重启,重启次数为 0。

标签: docker kubernetes kubernetes-helm kubectl circleci


【解决方案1】:

您可以尝试为您的部署定义分配更多资源,例如,在某些情况下,更多 CPU 或 RAM 可以提高工作负载启动和准备就绪的速度,但可能工作负载在正常操作期间不需要它但在这种情况下,您需要检查您的加载过程。

【讨论】:

    猜你喜欢
    • 2020-07-14
    • 2019-07-01
    • 2020-01-25
    • 2020-03-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-04-10
    • 2020-02-14
    相关资源
    最近更新 更多