首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >kubectl应用还是kubectl创建?

kubectl应用还是kubectl创建?
EN

Stack Overflow用户
提问于 2017-11-19 02:05:32
回答 6查看 133.8K关注 0票数 397

我对文档的理解是:

如果我要执行创建+替换

  • kubectl,则应用=在cluster
  • kubectl中创建新的()

资源替换=更新实时()中的资源应用=

我的问题是

  1. 为什么在operations?
  2. How中有三个用于执行相同任务的操作是这些的用例,它们在幕后有什么不同吗?
EN

回答 6

Stack Overflow用户

发布于 2019-01-18 14:27:01

在CI脚本中运行时,您在使用命令式命令时会遇到问题,因为如果资源已经存在,create将引发错误。

您可以使用--dry-run=true-o yaml选项对命令性命令的输出应用(声明性模式):

代码语言:javascript
复制
kubectl create whatever --dry-run=true -o yaml | kubectl apply -f -

如果资源已经存在,则上面的命令不会引发错误(并将在需要时更新资源)。

这在某些不能使用声明性模式的情况下非常有用(例如,在创建docker-registry secret时)。

票数 73
EN

Stack Overflow用户

发布于 2020-07-19 02:03:02

对于初学者来说,这是最好的理解差异的方法。

参考:https://www.digitalocean.com/community/tutorials/imperative-vs-declarative-kubernetes-management-a-digitalocean-comic

编辑

有错误是在图片中提到的例子。为了更好的理解,请参考评论。

你也可以参考下面的例子。

命令式:

  • 拿一个平底锅。
  • 打开炉子。
  • 在平底锅中加入水、糖、咖啡粉、牛奶
  • ,直到咖啡

准备好

  • 杯装咖啡。

声明性:

  • 告诉服务生你需要一杯咖啡。他给你上咖啡。

从K8s的角度来看:

命令式:您必须自己管理不同的资源,如pods、服务、副本集等。

声明式: K8会处理所有的资源,你需要做的就是指定你的实际需求。

票数 61
EN

Stack Overflow用户

发布于 2019-09-24 16:50:07

以下是命令式命令

kubectl run = kubectl create deployment

优势:

  • 简单、易学、易于remember.
  • Require只需一步即可更改群集。

缺点:

  • 不与change review processes.
  • Do集成,不提供与更改关联的审核跟踪。
  • 不提供除活动记录以外的记录源。
  • 不提供用于创建新对象的模板。

这些是命令式对象配置

kubectl create -f your-object-config.yaml

kubectl delete -f your-object-config.yaml

kubectl replace -f your-object-config.yaml

与命令式命令相比的优点:

  • 可以存储在诸如Git之类的源代码控制系统中。
  • 可以与诸如在推送之前查看更改和审核用于创建新对象的模板等过程集成。

与命令式命令相比的缺点:

  • 需要对object schema.
  • Requires的基本了解,这是编写YAML文件的附加步骤。

与声明性对象配置相比的优点:

在Kubernetes understand.

  • More 1.5之后,
  • 更简单、更容易成熟。

与声明性对象配置相比的缺点:

在文件而不是directories.

  • Updates上工作效果最好的是实时对象必须反映在配置文件中,否则它们将在下一次replacement.

期间丢失

这些是声明性对象配置

kubectl diff -f configs/

kubectl apply -f configs/

与命令式对象配置相比的优势:

直接对活动对象所做的

  • 更改将被保留,即使这些更改未合并回configuration files.
  • Better,以便对目录进行操作并自动检测每个对象的操作类型(创建、修补、删除)。

与命令式对象配置相比的缺点:

当unexpected.

  • Partial更新使用差异创建复杂的合并和修补操作时,
  • 更难调试和理解结果。
票数 19
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47369351

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档