kubectl 使用约定
kubectl
的推荐用法约定。
在可重用脚本中使用 kubectl
为了在脚本中获得稳定的输出
- 请求一种面向机器的输出格式,例如
-o name
、-o json
、-o yaml
、-o go-template
或-o jsonpath
。 - 完整限定版本。例如,
jobs.v1.batch/myjob
。这将确保 kubectl 不会使用可能随时间变化的默认版本。 - 不要依赖上下文、偏好或其他隐式状态。
子资源
- 您可以为
kubectl
子命令(例如get
、patch
、edit
、apply
和replace
)使用--subresource
参数,以获取和更新支持它们的特定资源的子资源。在 Kubernetes v1.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 Book。
最后修改于 2025 年 2 月 19 日太平洋标准时间上午 11:19:更新 kubetl 子资源文档 (ab6b9ae2ed)