尝试过可以用kubectl edit deployment xxx 可以成功
但是用
kubectl patch deployment xxx -n xxx -p \
  '{"spec":{"template":{"spec":{"containers":[{"image":"new_image"}],"imagePullSecrets":[{"name":"new-secret"}]}}}}'
报错
Error from server: map: map[image:new_image] does not contain declared merge key: name
请教一下如何可以不使用 kubectl edit 的方式来更新 deployment 的image和imagePullSecrets
感谢
|  |      1wd      2020-10-22 07:27:20 +08:00 via iPhone 错误不是说的很明白了么 你需要给 name 它才知道你是 patch 旧的 还是加新的 container 啊 | 
|  |      2binux      2020-10-22 07:34:35 +08:00 via Android 用 JSON op 方式修改 | 
|      3foMM OP @wd #1 不好意思,请问需要给一个什么样的 name 才能 override 之前的值呢? @binux #2 感谢。我尝试了一下 kubectl patch deployment xxx -n xxx --type json -p '[{"op":"replace","path":"spec/template/spec/containers/image","value":"new_image"},{"op":"replace","path":"spec/template/spec/imagePullSecrets/name","value":"new_secrete"}]' Response 是:The request is invalid | 
|  |      4binux      2020-10-22 09:06:02 +08:00  1 /spec/template/spec/containers/0/image | 
|  |      50bit      2020-10-22 09:15:38 +08:00  1 没直接用过 patch 修改,瞎猜的: containers 里是一个数组[ ],可能是需要指定 name 来说明你要修改的是哪一个 container ?毕竟还有可能有 sidecar 之类的配置。 另外,感觉还是直接维护 Helm Chart 更好, 之后只要改 values.yaml,然后 helm upgrade 就行了。 |