kubernetes(七)------kubectl create 和 kubectl apply区别

1. 描述:

kubectl create -f xx.yaml

kubectl apply -f xx.yaml

如果yaml文件中的kind值为deployment,那么上面这两个命令都可以创建一个deployment,生成相应数量的pod

那二者有什么区别呢?

2. 区别:

kubectl create:

(1)kubectl create命令,是先删除所有现有的东西,重新根据yaml文件生成新的。所以要求yaml文件中的配置必须是完整的

(2)kubectl create命令,用同一个yaml 文件执行替换replace命令,将会不成功,fail掉。

kubectl apply:

  kubectl apply命令,根据配置文件里面列出来的内容,升级现有的。所以yaml文件的内容可以只写需要升级的属性

 

`kubectl apply` 和 `kubectl create` 都是 Kubernetes 中用于操作资源(如 Deployments、Pods、Services 等)的命令,但它们之间有一些关键的区别: 1. **创建新资源**: - `kubectl create`: 当你首次创建一个新的资源时,使用 `create` 命令。它会根据给定的配置文件或 YAML/JSON 定义来创建资源。比如,`kubectl create deployment my-app` 将基于你提供的 Deployment 规范创建一个新的 Deployment 对象。 2. **更新资源**: - `kubectl apply`: 对于已经存在并且有一个配置文件的资源,`apply` 会尝试将新的配置合并到当前资源上,如果新配置导致资源变更,它会智能地更新资源,而不是替换整个资源。这意味着 `apply` 通常用于更新已有资源,尤其是当有多个变更时,它能更好地处理并保持状态一致性。 3. **资源版本控制**: - `kubectl create` 不支持回滚或直接查看资源的变更历史,而 `kubectl apply` 可以通过 `kubectl get apply` 命令查看资源的变更历史。 - 如果应用过程中遇到冲突,`kubectl apply` 会尝试解决冲突,但如果无法自动解决,它会失败而非默默覆盖旧的资源。 4. **错误处理**: - `kubectl apply` 更可能给出更友好的错误提示,因为它试图理解和适应已存在的资源结构。 - `kubectl create` 如果资源不存在则创建,如果资源存在则直接替换,反馈可能没有那么详细。 **相关问题--:** 1. 何时更适合使用 `kubectl apply` 而不是 `kubectl create`? 2. 如何检查资源的变更历史? 3. 在资源冲突的情况下,`kubectl apply` 如何处理?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值