我对文档的理解是:
-
在集群中创建新的 k8s 资源kubectl create
-
更新实时集群中的资源kubectl replace
-
如果我想做创建+替换 ( Reference )kubectl apply
我的问题是
- 为什么在集群中需要三个操作来执行相同的任务?
- 这些操作的用例是什么?
- 它们之间有何不同?
最佳答案
这是两种不同的方法:
命令式管理
kubectl create
就是我们所说的 Imperative Management 。通过这种方法,您可以告诉 Kubernetes API 您想要创建、替换或删除什么,而不是您希望 K8s 集群世界是什么样子。
声明式管理
kubectl apply
是 Declarative Management 的一部分方法,其中您可能已应用到事件对象(即通过scale
)的更改将被“维护”,即使您应用
其他更改对象。
You can read more about imperative and declarative management in the Kubernetes Object Management documentation.
在外行看来,他们做不同的事情。如果资源存在,kubectl create
将会出错,而kubectl apply
不会出错。
关于kubernetes - kubectl apply 与 kubectl create?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47369351/