我对它们的理解是: kubectl create = 创建一个新的k8s资源 kubectl replace = 更新实时的一个资源 kubectl apply = 当我想创建+替换时(参考) 我的问题是: 为什么需要三个操作做同一个任务? 每个场景是什么? 底层是逻辑是什么?
这是两种不同的方法。
命令式(强制性)管理
kubectl create是我们所说的强制性管理。在这种方法中,你要告诉Kubernetes API你想创建、替换或删除什么,而不是K8s自己决定的。
声明式管理
kubectl apply是声明式管理方法的一部分,你可能已经
apply
到一个存在的对象上了(即scale
),你对该对象应用的改变也都会被"保留"。通俗地说,它们做的是不同的事情。如果资源存在,
kubectl create
会出错,而kubectl apply
则不会出错。太牛了,强制性和声明式有了更深刻的了解。
你的答案