【问题标题】:Patching a kubernetes deployment for livenessProbe为 livenessProbe 修补 Kubernetes 部署
【发布时间】:2021-12-22 01:04:39
【问题描述】:

因此,在工作中,我们对 Helm 和 Kubernetes 有一点影响。

长期我们有修复,但短期我们有一些补丁,我目前正在使用 kubectl edit deployment -n {namespace} {podBaseName} 手动应用,然后在 vim 中编辑...

有点牛仔的感觉。

我找到了https://kubernetes.io/docs/tasks/manage-kubernetes-objects/update-api-object-kubectl-patch/,这表明我可以发出kubectl patch deployment -n {namespace} {podBaseName} --patch 'some: patch: definition'

我希望添加到 livenessProbe,但我不能 100% 确定语法以确保我只添加我想要的属性,即 initialDelaySeconds: 60

如果我想添加startupProbereadinessProbe,是否也可以使用补丁来upsert

【问题讨论】:

  • 内疚地发现我无法指定命名空间并使用 --selector=tier=worker,app=appname' 更新具有特定类型的所有 pod。 kubectl set env 可以做到这一点
  • 我是否理解正确,根本没有设置initialDelaySeconds?所以你想添加而不是修改?
  • 在某些情况下它会被设置,而在其他情况下应该插入整个livenessProbe。我昨天真的做到了这一点。现在我的问题似乎是将它应用于多个容器和 pod。并确保它仅针对 pod 中的特定容器类型。

标签: kubernetes patch


【解决方案1】:

所以这就是我所知道的。

它确实解决了一些问题(大多数情况下不通过 vim,因为 kubectl edit deployment 导致,可能会出现用户错误等)。

我们的 Helm 仍然坏了,我没有确切的 ETA 来修复。

所以当前的kubectl fix/hack 仅限于(或似乎)仅限于单个容器 pod 类型。

kubectl patch deployment \
    -n ${KUBE_NAMESPACE} \
    ${KUBE_POD_PREFIX} \
    --patch '{"spec":{"containers":[{"livenessProbe":{"exec":{"command":["your", "health", "check", "command"]},"failureThreshold":5,"initialDelaySeconds":60,"periodSeconds:5,"successThreshold":1,"timeoutSeconds":1},"name":"sqs-worker"}]}}}}'

这是在 Pod 中修补 sqs-worker 类型的容器,该容器只有该容器。我们也有 web 容器,它有一个 nginx 入口以及一个应用程序的实例。

KUBE_NAMESPACE 是我们分离内部环境的方式。这可能是一个分支名称或proddevkubectl get namespaces 应该是您选择价值的指南。

KUBE_POD_PREFIX 是 pod 名称,没有附加的奇数后缀。这可能与 helm 或我们的 helm 相关。我只知道我可能有service-a-specific-task-worker-sdhhdg3jh pod,我提供service-a-specific-task-worker。我在这里使用kubectl get pods -n ${KUBE_NAMESPACE} 作为我的真实来源。

【讨论】:

  • 理想情况下是将所有内容放在jsonyaml 文件中,并将其用作kubectl patch deployment patch-demo --patch "$(cat patch-file.json)",就像here 中所描述的那样,以保持一致性。
  • 该链接是同一页面的一部分,并显示相同的方法,但使用--patch 和 OS/Shell cat 实用程序。我做了一些查看,这就是为什么我选择将内容保留为字符串的原因。虽然我知道--patch-file,但我认为它可以避免这一步。
猜你喜欢
  • 2019-05-22
  • 2018-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-06
  • 2022-01-18
  • 1970-01-01
  • 2021-10-23
相关资源
最近更新 更多