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更好用一点。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐