kubectl apply vs kubectl create?

啊啊 发表于: 2021-11-24   最后更新时间: 2021-11-24 22:40:08   989 游览

我对它们的理解是:

  • kubectl create = 创建一个新的k8s资源
  • kubectl replace = 更新实时的一个资源
  • kubectl apply = 当我想创建+替换时(参考)

我的问题是:

  1. 为什么需要三个操作做同一个任务?
  2. 每个场景是什么?
  3. 底层是逻辑是什么?
发表于 2021-11-24

这是两种不同的方法。

命令式(强制性)管理

kubectl create是我们所说的强制性管理。在这种方法中,你要告诉Kubernetes API你想创建、替换或删除什么,而不是K8s自己决定的。

声明式管理

kubectl apply是声明式管理方法的一部分,你可能已经apply到一个存在的对象上了(即scale),你对该对象应用的改变也都会被"保留"。

通俗地说,它们做的是不同的事情。如果资源存在,kubectl create会出错,而kubectl apply则不会出错。

啊啊 -> 半兽人 3年前

太牛了,强制性和声明式有了更深刻的了解。

你的答案

查看kubernetes相关的其他问题或提一个您自己的问题