kubectl 的推荐用法约定
kubectl对于脚本中的稳定输出:
-o name、-o json、-o yaml、-o go template 或 -o jsonpath。jobs.v1.batch/myjob。这将确保 kubectl 不会使用其默认版本,该版本会随着时间的推移而更改。kubectl run 或者 kubectl expose)时,指定 --generator 参数以固定到特定行为。kubectl run若希望 kubectl run 满足基础设施即代码的要求:
:v1234、v1.2.3、r03062016-1-4,而不是 :latest(有关详细信息,请参阅配置的最佳实践)。--record 参数以便为所创建的对象添加注解,在使用轻度参数化的镜像时,记录下所使用的命令行。kubectl run 参数来表示的功能特性,使用基于源码控制的配置文件,以记录要使用的功能特性。kubectl run --generator=deployment/v1beta1。您可以使用带有 --generator 参数的 kubectl run 命令创建如下资源:
| 资源 | api 组 | kubectl 命令 |
|---|---|---|
| Pod | v1 | kubectl run --generator=run-pod/v1 |
| Replication controller (过期)) | v1 | kubectl run --generator=run/v1 |
| Deployment (过期) | extensions/v1beta1 | kubectl run --generator=deployment/v1beta1 |
| Deployment (过期) | apps/v1beta1 | kubectl run --generator=deployment/apps.v1beta1 |
| Job (过期) | batch/v1 | kubectl run --generator=job/v1 |
| CronJob (过期) | batch/v1beta1 | kubectl run --generator=cronjob/v1beta1 |
| CronJob (过期) | batch/v2alpha1 | kubectl run --generator=cronjob/v2alpha1 |
注意: v1.12 中不建议使用run-pod/v1以外的kubectl run --generator。
如果不指定 generator 参数,其他参数将提示您使用特定的生成器。下表列出了强制您使用特定生成器的参数,具体取决于集群的版本:
| 生成的资源 | 集群版本 v1.4 及以后版本 | 集群版本 v1.3 | 集群版本 v1.2 | 集群版本 v1.1 及更早 |
|---|---|---|---|---|
| Pod | --restart=Never |
--restart=Never |
--generator=run-pod/v1 |
--restart=OnFailure 或 --restart=Never |
| Replication Controller | --generator=run/v1 |
--generator=run/v1 |
--generator=run/v1 |
--restart=Always |
| Deployment | --restart=Always |
--restart=Always |
--restart=Always |
N/A |
| Job | --restart=OnFailure |
--restart=OnFailure |
--restart=OnFailure 或 --restart=Never |
N/A |
| Cron Job | --schedule=<cron> |
N/A | N/A | N/A |
注意:只有在未指定任何参数时,这些参数才使用默认生成器。 这意味着,当您将
--generator与其他参数组合时,随后指定的生成器不会更改。 例如,在集群版本 v1.4 中,如果最初指定了--restart=always,则会创建 Deployment;如果后来指定了--restart=always和--generator=run/v1,则会创建 Replication Controller。 这使您能够将生成器固定到特定的行为,即使在以后更改默认生成器时也是如此。
这些参数按以下顺序设置生成器:首先是 --schedule 参数,然后是 --restart 策略参数,最后是 --generator 参数。
要检查最终所创建的资源,请使用 --dry run 参数;该参数可以提供将要提交到集群的对象。
kubectl applykubectl apply 命令创建或更新资源。有关使用 kubectl apply 更新资源的详细信息,请参阅 Kubectl 文档。此页是否对您有帮助?
感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问 Stack Overflow. 在 GitHub 仓库上登记新的问题 报告问题 或者 提出改进建议.