kubectl 的用法约定
对于脚本中的稳定输出:
- 完全限定版本。例如
jobs.v1.batch/myjob
。这将确保 kubectl 不会使用其默认版本,该版本会随着时间的推移而更改。 - 在使用基于生成器的命令(例如
kubectl run
或者kubectl expose
)时,指定--generator
参数以固定到特定行为。 - 不要依赖上下文、首选项或其他隐式状态。
最佳实践
- 使用特定版本的标签标记镜像,不要将该标签移动到新版本。例如,使用
:v1234
、、r03062016-1-4
,而不是:latest
(有关详细信息,请参阅)。 - 固定到特定的生成器版本,例如
kubectl run --generator=run-pod/v1
。 - 使用基于版本控制的脚本来运行包含大量参数的镜像。
- 对于无法通过
kubectl run
参数来表示的功能特性,使用基于源码控制的配置文件,以记录要使用的功能特性。
生成器
您可以使用带有 --generator
参数的 kubectl run
命令创建如下资源:
如果您显式设置了 --generator
参数,kubectl 将使用您指定的生成器。如果使用 kubectl run
命令但是未指定生成器,kubectl 会根据您设置的其他参数自动选择要使用的生成器。下表列出了如果您自己未指定参数自动使用与之相匹配的生成器:
参数 | 相匹配的资源 |
---|---|
—schedule=<schedule> | CronJob |
—restart=Always | Deployment |
—restart=OnFailure | Job |
—restart=Never | Pod |
--schedule
--restart
您可以使用 参数预览要发送到集群的对象,而无需真正提交。
kubectl apply
- 您可以使用
kubectl apply
命令创建或更新资源。有关使用 kubectl apply 更新资源的详细信息,请参阅 。