v1.29.2版本的k8s中
资源对象api-resource一共有75种,比如pod, serverice等等
创建资源对象的时候,一般是写资源对象文件,里面主要字段是kind\apiVersion\metadata\spec\status
在我们使用资源对象文件创建资源实例的时候
经常用到
kubectl apply -f resourcefilename.yaml
kubeclt replace -f resourcefilename.yaml
这两中方式的一种。
区别是,apply会更新pod的配置,但不会删除pod再重建pod
replace会直接删除pod,然后按照修改好的资源对象文件重新创建pod
类似于,重启pod和
删除pod重新创建pod
的区别
apply侧重于声明式的更新
replace侧重于干脆删了重建
一个更平滑
一个更彻底
有些配置,是温柔的apply触及不到的,所以需要replace来一次彻底的更新。
从英文释义上来讲,
app apply applicate application 都是应用的意思,也有更新的意思
replace 其中place是地方,既是动词也是名词,re是再来一遍,那么就是重新放置,重新搞。
说这个有什么用呢?
一般来讲,由于k8s集群是分布式的,单个类型pod如果更新,不会造成大的影响的话。是否可以认为,replace使用起来可能比apply更好用一点。