在k8s中修补和替换部署之间有什么区别?

时间:2018-07-05 08:36:02

标签: kubernetes

我想为k8s部署更新映像,我在k8s中找到了两个RESTAPI来更新部署:PATCHPUT。 我发现,PATCH用于更新,PUT用于替换官方文档,但是在使用以下两个命令进行测试之后:

kubectl patch -p ...
kubectl replace -f ...

这两种方法似乎没有什么区别。

它们都可以回滚,并且新容器的名称也可以更改。

我想知道这两个命令的请求正文是否仅不同? (补丁只需要更改的部分,而补丁则需要整个部分)

2 个答案:

答案 0 :(得分:2)

replace是完整的替代品。您必须具有所有字段。 patch是不完整的。

答案 1 :(得分:2)

根据文档:

List<Integer> oficinas = (List<Integer>)data.get("idOficinas")

用于更改Deployment对象的实时配置。您不会更改最初用于创建Deployment对象的配置文件。

kubectl patch

如果要替换现有资源,则必须提供完整的资源规范。