使用kubectl管理对象1---Kubernetes对象管理

kubectl命令行工具支持多种创建和管理Kubernetes对象的方式。该文档提供这些方式的概述。 阅读Kubectl book来查看kubectl管理对象的详细内容。

管理技术

提示:一个Kubernetes对象应只被一个技术管理。混合技术管理同一对象会导致未知行为.

管理技术操作对象推荐环境支持的写入者学习曲线
强制命令活跃对象开发项目1+最低
强制对象配置独立的文件产品项目1中等
声明式对象配置文件目录产品项目1+最高

强制命令

当使用强制命令时,用户命令将直接作用于集群中的活跃对象。用户提供参数或标志给kubectl命令来进行操作。

这是在集群上进行一次任务的最简单方法。由于这是直接作用于活跃对象的最直接操作,所以并不提供技术历史。

例子

创建一个部署对象来运行一个nginx容器实例:

kubectl run nginx --image nginx

另一种实现语句:

kubectl create deployment nginx --image nginx

对比

比起对象配置的优点:

  • 命令简单易学易记。
  • 命令只需一步就可以对集群做出改变。

比起对象配置的缺点:

  • 命令不经过变更的审查流程
  • 命令不提供变更的审计跟踪
  • 命令不提供资源记录
  • 命令不提供创建新对象的模板

强制对象配置

在强制对象配置中,kubectl命令指定了操作(创建、替换等)、非必填的标志和至少一个文件名。指定文件必须包含一个YAML或JSON格式的完整对象定义。

阅读API reference 来查看对象定义的细节。

警告:强制replace命令使用新的规格(spec )来替换现有的,抛弃所有配置文件中所没有的对象变更。这种方法不应该用于有更新独立于配置文件之外的资源类型。例如LoadBalancer类型的服务,externalIPs字段独立于集群的配置来更新。

例子

使用配置文件定义来创建对象

kubectl create -f nginx.yaml

删除两个配置文件中定义的对象

kubectl delete -f nginx.yaml -f redis.yaml

通过修改配置文件来更新对象

kubectl replace -f nginx.yaml

对比

比起强制命令的优点:

  • 可以在Git之类的资源控制系统中存储
  • 可以和变更审计之类的过程集成
  • 提供创建对象的模板

比起强制命令的缺点:

  • 需要理解对象模式的基础
  • 需要额外步骤编写YAML文件

比起声明式配置的优点:

  • 简单易于理解
  • Kubernetes 1.5版本之后更加成熟了

比起声明式配置的缺点:

  • 对于文件效果更好,而非目录
  • 更新活跃对象必须在配置文件体现,否则下次代替会丢失变更。

声明式对象配置

使用声明式对象配置时,用户的对象配置文件操作本地保存。但用户并不执行采用文件的操作。增删改操作由kubectl逐个对象地自动发现。这允许对目录进行操作,不同对象可能需要不同的操作。

注:声明式对象配置保留其他用户的变更,即使变更没有合并到对象配置文件。可以使用patch API操作来写看到的不同,而不用使用replace API操作来替代整个对象配置。

例子

处理configs目录中的所有对象配置文件,并创建或patch活跃对象。你可以先diff来看会做哪些变更,然后再应用:

kubectl diff -f configs/
kubectl apply -f configs/

递归处理目录:

kubectl diff -R -f configs/
kubectl apply -R -f configs/

对比

比起强制对象配置的优点:

  • 直接作用于活跃对象的变更会保存,即使这些变更没有合并到配置文件
  • 能更好地支持目录并自动发现每个对象的操作类型(增删改)

比起强制对象配置的缺点:

  • 更难debug,更难理解意料外的结果
  • 使用差异化更新导致复杂的合并和修补操作
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值