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

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

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

原文: 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'

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

查看所有标签

猜你喜欢:

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

Google软件测试之道

Google软件测试之道

James A. Whittaker、Jason Arbon、Jeff Carollo / 黄利、李中杰、薛明 / 人民邮电出版社 / 2013-10 / 59.00元

每天,google都要测试和发布数百万个源文件、亿万行的代码。数以亿计的构建动作会触发几百万次的自动化测试,并在好几十万个浏览器实例上执行。面对这些看似不可能完成的任务,谷歌是如何测试的呢? 《google软件测试之道》从内部视角告诉你这个世界上知名的互联网公司是如何应对21世纪软件测试的独特挑战的。《google软件测试之道》抓住了google做测试的本质,抓住了google测试这个时代最......一起来看看 《Google软件测试之道》 这本书的介绍吧!

HTML 编码/解码
HTML 编码/解码

HTML 编码/解码

Base64 编码/解码
Base64 编码/解码

Base64 编码/解码

正则表达式在线测试
正则表达式在线测试

正则表达式在线测试