kubectl 使用约定

kubectl 的建议使用约定。

在可重用脚本中使用 kubectl

为了在脚本中获得稳定的输出

  • 请求一种机器可读的输出格式,例如 -o name-o json-o yaml-o go-template-o jsonpath
  • 完全限定版本。例如,jobs.v1.batch/myjob。这将确保 kubectl 不会使用默认版本,因为默认版本可能会随时间而改变。
  • 不要依赖上下文、偏好设置或其他隐式状态。

子资源

  • 您可以将 --subresource beta 标志用于 getpatcheditreplace 等 kubectl 命令,以获取和更新支持子资源的所有资源的子资源。目前,仅支持 statusscale 子资源。
    • 对于 kubectl edit,不支持 scale 子资源。如果您将 --subresourcekubectl edit 一起使用,并将 scale 指定为子资源,则该命令将出错。
  • 针对子资源的 API 约定与完整资源相同。在将 status 子资源更新为新值时,请记住,控制器可能会将子资源协调为不同的值。

最佳实践

kubectl run

为了使 kubectl run 满足基础设施即代码的要求

  • 使用特定于版本的标签标记镜像,并且不要将该标签移动到新版本。例如,使用 :v1234v1.2.3r03062016-1-4,而不是 :latest(有关更多信息,请参阅配置最佳实践)。
  • 在脚本中检查高度参数化的镜像。
  • 对于需要但无法通过 kubectl run 标志表示的特性,请切换到签入源代码管理的配置文件。

您可以使用 --dry-run=client 标志来预览将发送到集群的对象,而无需真正提交它。

kubectl apply

  • 您可以使用 kubectl apply 来创建或更新资源。有关使用 kubectl apply 更新资源的更多信息,请参阅Kubectl 手册
上次修改时间:2023 年 3 月 7 日上午 10:22(太平洋标准时间):reference/kubectl: 更新将特性移至 beta 版的文档 (b8651be9c2)