使用配置文件对 Kubernetes 对象的命令式管理

栏目: 服务器 · 发布时间: 6年前

内容简介:原文:通过使用

原文: https://kubernetes.io/docs/concepts/overview/object-management-kubectl/imperative-config/

通过使用 kubectl 命令以及 YAML 或 JSON 格式编写的对象配置文件可以创建、更新和删除 Kubernetes 对象。本文介绍了如何使用配置文件定义和管理对象。

权衡利弊

kubectl 工具支持三种对象管理的方式:

  • 命令式指令
  • 命令式对象配置
  • 声明式对象配置

Kubernetes 对象管理 中讨论了每一种对象管理方式的优缺点。

如何创建对象

你可以使用 kubectl create -f 通过一个配置文件创建一个对象。详细内容请参考 Kubernetes API 参考

  • kubectl create -f <filename|url>

如何更新对象

警告:使用 replace 命令更新对象将删除配置文件中规约未指定的所有部分。它不应该用于集群部分管理规约的对象,例如, LoadBalancer 类型的 Services,其 externalIPs 字段是独立于配置文件管理的。必须将独立管理的字段复制到配置文件中,以防止 replace 删除它们。

你可以使用 kubectl replace -f 通过配置文件更新实时对象。

  • kubectl replace -f <filename|url>

如何删除对象

你可以使用 kubectl delete -f 删除一个由配置文件描述的对象。

  • kubectl delete -f <filename|url>

如何查看对象

你可以使用 kubectl get -f 查看一个由配置文件描述的对象的有关信息。

  • kubectl get -f <filename|url> -o yaml

-o yaml 标签表明需要打印完整的对象配置。使用 kubectl get -h 可以查看选项列表。

限制

当每个对象的配置被完全定义并记录在配置文件中, createreplacedelete 命令工作正常。然而,当实时对象被更新,并且更新没有合并到它的配置文件中,更新将会在下一次执行 replace 时丢失。如果像 HorizontalPodAutoscaler 这样的控制器直接更新实时对象,则可能发生这种情况。看下面的例子:

1.你可以从配置文件创建对象。

2.另一个源通过更改某个字段来更新对象。

3.你可以从配置文件中替换该对象。步骤 2 中其他源所做的更改将丢失。

如果你需要支持同一对象的多个写入,则可以使用 kubectl apply 来管理对象。

在不保存配置的情况下通过 URL 创建和编辑对象

假设你有一个对象配置文件的 URL。你可以使用 kubectl create --edit 在创建对象之前对配置文件进行修改。这对于指向可以被读者修改的配置文件的教程和任务尤为有用。

kubectl create -f <url> --edit

从命令式指令迁移到命令式配置

从命令式指令迁移到命令式配置的迁移涉及到几个手动步骤。

1.将实时对象导出到本地对象配置文件中:

kubectl get <kind>/<name> -o yaml --export > <kind>_<name>.yaml

2.手动地从对象配置文件中移除状态字段。

3.对于后续的对象管理,只使用 replace

kubectl replace -f <kind>_<name>.yaml

定义控制器选择器和 PodTemplate 标签

警告:强烈建议不要更新控制器上的选择器。

建议的方法是定义一个单独的、不可变的 PodTemplate 标签,它仅由控制器选择器使用并且没有其他语意。

示例标签:

selector:
  matchLabels:
    controller-selector: 'extensions/v1beta1/deployment/nginx'
template:
  metadata:
    labels:
      controller-selector: 'extensions/v1beta1/deployment/nginx'

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Maven实战

Maven实战

许晓斌 / 机械工业出版社 / 2010年12月 / 65.00元

你是否早已厌倦了日复一日的手工构建工作?你是否对各个项目风格迥异的构建系统感到恐惧?Maven——这一Java社区事实标准的项目管理工具,能帮你从琐碎的手工劳动中解脱出来,帮你规范整个组织的构建系统。不仅如此,它还有依赖管理、自动生成项目站点等超酷的特性,已经有无数的开源项目使用它来构建项目并促进团队交流,每天都有数以万计的开发者在访问中央仓库以获取他们需要的依赖。 本书内容全面而系统,Ma......一起来看看 《Maven实战》 这本书的介绍吧!

HTML 压缩/解压工具
HTML 压缩/解压工具

在线压缩/解压 HTML 代码

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

随机密码生成器
随机密码生成器

多种字符组合密码