kubectl 的用法约定
kubectl
的推荐用法约定。
在可重用脚本中使用 kubectl
对于脚本中的稳定输出:
- 请求一个面向机器的输出格式,例如
-o name
、-o json
、-o yaml
、-o go template
或-o jsonpath
。 - 完全限定版本。例如
jobs.v1.batch/myjob
。这将确保 kubectl 不会使用其默认版本,该版本会随着时间的推移而更改。 - 不要依赖上下文、首选项或其他隐式状态。
子资源
- 你可以将
--subresource
参数用于 kubectl 命令,例如get
、patch
、edit
、apply
和replace
来获取和更新所有支持子资源的资源的子资源。Kubernetes 1.34 版本中, 仅支持status
,scale
和resize
子资源。- 对于
kubectl edit
,不支持scale
子资源。如果将--subresource
与kubectl edit
一起使用, 并指定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 文档。
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.
最后修改 April 24, 2025 at 11:48 AM PST: [zh-cn]sync endpoint-slice endpoint node-metrics (b375acc8c9)