kubernetes - kubectl apply 与 kubectl create?

标签 kubernetes kubectl

我对文档的理解是:

  • kubectl create
    
    在集群中创建新的 k8s 资源
  • kubectl replace
    
    更新实时集群中的资源
  • kubectl apply
    
    如果我想做创建+替换 ( Reference )

我的问题是

  1. 为什么在集群中需要三个操作来执行相同的任务?
  2. 这些操作的用例是什么?
  3. 它们之间有何不同?

最佳答案

这是两种不同的方法:

命令式管理

kubectl create 就是我们所说的 Imperative Management 。通过这种方法,您可以告诉 Kubernetes API 您想要创建、替换或删除什么,而不是您希望 K8s 集群世界是什么样子。

声明式管理

kubectl applyDeclarative 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/

相关文章:

docker - 如何从minikube访问Rabbitmq的管理UI?

kubernetes - kubectl get componentstatus 显示不健康

kubernetes - 将 kubernetes yaml 转换为 kubectl cli 命令

kubernetes - 在 Kubernetes 中部署有状态应用程序

kubernetes - 无法引导(云类型 : localhost) - Error when installing Kuberneters cluster locally with LXD/Conjure-up

kubernetes - 按节点过滤的列表 `kubectl top pods`

kubernetes - 使用Kubectl工具时如何添加自定义HTTP header

kubernetes - 运行 Kubernetes Minikube 服务时出现 "cannot open browser"错误

kubernetes - kubectl apply 命令不起作用,给出连接被拒绝的错误

kubernetes - 在 kubectl create 我收到验证错误,但我的 yaml 文件有效