【问题标题】:Remove Kubernetes Readiness Probe移除 Kubernetes 就绪探针
【发布时间】:2021-05-24 18:28:39
【问题描述】:

我的部署有一个 readinessProbe 配置如下:

 readinessProbe:
    port: 8080
    path: /ready
    initialDelaySeconds: 30
    failureThreshold: 60
    periodSeconds: 10
    timeoutSeconds: 15

出于某种原因,我想移除探针。但是,从我的 YML 文件中删除它后,我的部署不成功,因为看起来 pod 从未被认为已准备好。检查 GCP,我发现结果 YML 文件有一个就绪探针,它指向一些我没有设置的“默认值”:

    readinessProbe:
      failureThreshold: 3
      httpGet:
        path: /ready
        port: 80
        scheme: HTTP
      initialDelaySeconds: 5
      periodSeconds: 10
      successThreshold: 1
      timeoutSeconds: 5

有没有办法永久移除 ReadinessProbe?

【问题讨论】:

  • I want to remove the probe as it's no longer necessary 恕我直言,这可能不是真的。如果它是一个网络服务器(看起来像),您至少需要确保它正在侦听配置的端口。
  • 好的,在这种情况下,我们有一个 livenessProbe :) 但是是的,我可以删除断言以避免分支主题
  • 也许你有一些 YML 合并机制,无论是 Kubernetes Helm 还是其他工具?
  • 除此之外,您是否尝试过取消它? readinessProbe: null
  • 您能否向我们提供您正在使用的 helm chart 以及您用于部署/修补它的命令?

标签: kubernetes google-cloud-platform kubernetes-helm


【解决方案1】:

我在尝试删除 readinessProbe 时遇到了同样的问题。我发现成功执行此操作的唯一方法是首先删除部署,然后将部署 yaml 应用到集群。这确实会导致一些停机时间,但会永久移除探针。

`kubectl delete deployment <deployment-name>`
`kubectl apply -f deployment.yaml`

【讨论】:

    【解决方案2】:

    删除探针的一种可能方法是修改对配置文件(yaml 文件)的更改并禁用就绪探针。

    您可以通过在配置文件中添加 enabled: false 来做到这一点。例如,

    readinessProbe:
       enabled: false
       path: /ready 
       initialDelaySeconds: 30 
       failureThreshold: 60 
       periodSeconds: 10 
       timeoutSeconds: 15
    

    如果您无法修改配置文件,则如@G 所述。 Rafael 尝试重新创建部署并将部署配置文件应用到集群。

    【讨论】:

    • 我得到错误:升级失败:错误验证“”:错误验证数据:[ValidationError(Deployment.spec.template.spec.containers[0].livenessProbe): io 中的未知字段“启用” .k8s.api.core.v1.Probe, ValidationError(Deployment.spec.template.spec.containers[0].readinessProbe): io.k8s.api.core.v1.Probe 中的未知字段“启用”]
    • @Ironori 尝试重新创建部署并将部署配置文件应用到集群。
    猜你喜欢
    • 2019-07-22
    • 2021-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-05
    • 2018-01-30
    • 2021-05-24
    相关资源
    最近更新 更多