【问题标题】:Kubernetes readiness probe failedKubernetes 就绪探测失败
【发布时间】:2021-07-16 18:39:52
【问题描述】:

我们正在尝试在 Kubernetes 集群中部署 PingFed。我们有文件 deployment.ymlservice.yml,但 pod 在尝试访问服务器配置文件并出现就绪探测错误后抛出 CrashBackLoop 错误。我们已经尝试了将服务类型更改为修改部署和服务 YAML 文件的所有方法,但似乎没有任何效果。

这是 deployment.yml 文件

在命名空间中运行的所有 pod、服务、部署

【问题讨论】:

  • Service.yaml apiVersion:v1 种类:服务元数据:名称:pingfederate 标签:角色:pingfederate 层:控制台版本:10.1.5 规范:端口:-名称:控制台端口:9999 协议:TCP targetPort :9999 选择器:角色:pingfederate 层:控制台版本:10.1.5 类型:LoadBalancer
  • 请勿发布代码图片。请编辑您的问题并将代码包含为文本(格式化为代码块)。
  • 欢迎来到社区!首先,如前所述,请用实际的文本/代码替换您的屏幕截图。然后,您可以尝试将initialDelaySeconds 添加到您的就绪探测中,如下面的@San 建议的那样。如果它不起作用,请完全删除运行状况检查以使 pod 运行,然后使用 curl 测试此基于此容器的应用程序是否实际服务于端口 9999/pingfederate/app
  • 谢谢大家的建议。我在这个平台上相当新,将在此基础上进行改进。 @moonkotte 如果可行,让我试试。
  • @AtmeshAcharya 成功了吗?

标签: kubernetes kubernetes-pod pingfederate readinessprobe


【解决方案1】:

我在就绪探测中没有看到 initialDelaySeconds。所以,我想这可能是准备探测失败的原因。我会将其设置为应用程序启动所需的时间。

initialDelaySeconds:容器启动后,在启动活跃度或就绪度探测之前的秒数。默认为 0 秒。最小值为 0。

readinessProbe:
      httpGet:
        path:
        port: 8080
      initialDelaySeconds: 5
      periodSeconds: 10



【讨论】:

    【解决方案2】:

    我会检查并确保几件事:

    1. 检查 9999 端口是否确实暴露在容器上,如果可以,检查 dockerfile,我已经看到它在部署中打开了。
    2. 如果是,我注意到您的探测方案设置为 https,应该改为 http 吗?

    【讨论】:

    • 是的,它暴露在容器上。两个都试过了,都没有解决问题
    猜你喜欢
    • 2019-12-05
    • 2018-07-10
    • 2021-02-06
    • 2023-03-11
    • 1970-01-01
    • 2021-01-01
    • 1970-01-01
    • 2020-11-25
    • 2020-05-11
    相关资源
    最近更新 更多