所以在工作中,我们和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
如果我想添加startupProbe或readinessProbe,是否也可以使用补丁进行upsert
发布于 2021-11-10 09:19:32
所以这就是我所能得到的。
它确实解决了一些问题(主要是不像kubectl edit deployment那样通过vim,可能会出现用户错误等)。
我们的头盔还是坏了,我也没有确切的预计到达时间。
因此,当前的kubectl修复/攻击仅限于(或似乎是)限于单个容器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类型的容器,该pod只包含该容器。我们还有web容器,它有一个nginx入口以及一个应用程序的实例。
KUBE_NAMESPACE是我们分隔内部环境的方式。这可能是分支机构名称或prod或dev。kubectl 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}作为我的真理来源。
https://stackoverflow.com/questions/69896210
复制相似问题