我想为k8s部署更新映像,我在k8s中找到了两个RESTAPI来更新部署:PATCH
和PUT
。
我发现,PATCH
用于更新,PUT
用于替换官方文档,但是在使用以下两个命令进行测试之后:
kubectl patch -p ...
kubectl replace -f ...
这两种方法似乎没有什么区别。
它们都可以回滚,并且新容器的名称也可以更改。
我想知道这两个命令的请求正文是否仅不同? (补丁只需要更改的部分,而补丁则需要整个部分)
答案 0 :(得分:2)
replace
是完整的替代品。您必须具有所有字段。
patch
是不完整的。
答案 1 :(得分:2)
根据文档:
List<Integer> oficinas = (List<Integer>)data.get("idOficinas")
用于更改Deployment对象的实时配置。您不会更改最初用于创建Deployment对象的配置文件。
kubectl patch
如果要替换现有资源,则必须提供完整的资源规范。