kubectl create和kubectl apply的区别

kubectl create和kubectl apply都是用于管理Kubernetes对象的命令,但它们的工作方式不同。create是祈使式命令,会删除并重新创建资源,而apply则是声明式,会对比差异并进行更新。create在资源已存在时会失败,apply在无改动时会提示未变更。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

文章转发自 https://wghdr.top,更多文章请跳转。

kubectl create和kubectl apply都可以生成k8s对象。那么两者有什么区别呢。根据官方文档可以得出如下区别:
file

kubectl create:

  • 是祈使式命令,明确告诉k8s要创建的资源或者对象
  • 首先删除集群中现有的资源,然后重新根据yaml文件生成新的资源对象
  • yaml文件必须是完整的配置
  • yaml文件中的所有字段都会被create
  • 在没有改动yaml文件时,使用同一个yaml文件执行命令kubectl replace,将不会成功(fail掉),因为缺少相关改动信息。

kubectl apply

  • 是声明式命令,apply不告诉k8s具体要干什么,而是kubectl根据yaml文件自动探测要做哪些操作,如果不存在则create,如果存在则对比差异,进行更新。
  • 根据yaml文件中包含的字段,直接升级集群中的现有资源对象
  • yaml文件可以不完整,只写需要修改的字段
  • 只有要改动的字段才会被apply
  • 在只改动了yaml文件中的某些声明时,而不是全部改动,你可以使用kubectl apply

create创建已存在资源会报错:Error from server (AlreadyExists)。
file
apply未修改的资源时会提示unchanged。
file

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

柠是柠檬的檬

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值