Kubernetes “Kubectl补丁返回”;“未修补”;

Kubernetes “Kubectl补丁返回”;“未修补”;,kubernetes,yaml,containers,kubectl,Kubernetes,Yaml,Containers,Kubectl,我正在运行kubectl 1.7版 我试图通过kubectl patch将init容器添加到部署中,但无论我如何尝试,它都会返回“notpatched” kubectl补丁部署我的部署--patch“$(cat./init patch.yaml)” 部署“我的部署”未修补 spec: 模板: 规格: 初始化容器: -名称:我的挂载init 图像:“我的图像” 命令: -“嘘” -“-c” -“mkdir/mnt/data&&chmod-ra+rwx/mnt/data” 体积数量: -名称:“我的

我正在运行kubectl 1.7版

我试图通过
kubectl patch
将init容器添加到部署中,但无论我如何尝试,它都会返回“notpatched”

kubectl补丁部署我的部署--patch“$(cat./init patch.yaml)”
部署“我的部署”未修补

spec:
模板:
规格:
初始化容器:
-名称:我的挂载init
图像:“我的图像”
命令:
-“嘘”
-“-c”
-“mkdir/mnt/data&&chmod-ra+rwx/mnt/data”
体积数量:
-名称:“我的卷”
装载路径:“/mnt/data”
securityContext:
runAsUser:0
资源:
限制:
cpu:“0.2”
内存:“256Mi”
请求:
cpu:“0.1”
内存:“128Mi”

这是为了允许自定义linux用户有读写卷的权限,而不需要是根用户


希望有一个更好的答案来解释为什么它没有被修补。

Kubectl不是幂等的。如果要修补的元素已包含修补程序,则kubectl修补程序将失败


可以从Natim的评论中阅读解决方案,但我花了一段时间才意识到这确实是我的问题。

您可以运行带有标志的补丁命令:
--v=7
如果手动调整部署.yaml,然后运行,您会遇到任何错误吗?我在kubectl版本1.10.5中遇到了这个问题。新版本改变了这种行为。对1.15.3的更新使修补程序返回错误代码0,即使修补程序以前已经应用过。在这种情况下,标准输出打印:“已修补(无更改)”