kubectl 使用约定
kubectl
的推荐使用约定。
在可重用脚本中使用 kubectl
为了在脚本中获得稳定的输出
- 请求其中一种面向机器的输出形式,例如
-o name
、-o json
、-o yaml
、-o go-template
或-o jsonpath
。 - 完全限定版本。例如,
jobs.v1.batch/myjob
。这将确保 kubectl 不使用其默认版本,该版本可能会随着时间的推移而改变。 - 不要依赖上下文、首选项或其他隐式状态。
子资源
- 您可以使用
--subresource
beta 标志用于 kubectl 命令(如get
、patch
、edit
和replace
)来获取和更新支持子资源的所有资源的子资源。目前,仅支持status
和scale
子资源。- 对于
kubectl edit
,不支持scale
子资源。如果您在kubectl edit
中使用--subresource
并将scale
指定为子资源,则命令将出错。
- 对于
- 针对子资源的 API 合同与完整资源相同。在将
status
子资源更新为新值时,请记住,子资源可能会被控制器潜在地协调为不同的值。
最佳实践
kubectl run
为了让 kubectl run
满足基础设施即代码
- 使用版本特定的标签标记镜像,并且不要将该标签移动到新版本。例如,使用
:v1234
、v1.2.3
、r03062016-1-4
,而不是:latest
(有关更多信息,请参见 配置最佳实践)。 - 在脚本中检查一个高度参数化的镜像。
- 对于需要的功能,但无法通过
kubectl run
标志表达的功能,切换到已检入源代码控制的配置文件。
您可以使用 --dry-run=client
标志来预览将发送到集群的对象,而不会真正提交它。
kubectl apply
- 您可以使用
kubectl apply
来创建或更新资源。有关使用 kubectl apply 更新资源的更多信息,请参见 Kubectl 书籍。
上次修改时间:2023 年 3 月 7 日,太平洋时间上午 10:22:reference/kubectl: 更新将 feaature 移动到 beta 的文档 (b8651be9c2)