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 apply
kubectl apply
命令创建或更新资源。有关使用 kubectl apply 更新资源的详细信息,请参阅 Kubectl 文档。此页是否对您有帮助?
感谢反馈。如果您有一个关于如何使用 Kubernetes 的特定的、需要答案的问题,可以访问 Stack Overflow. 在 GitHub 仓库上登记新的问题 报告问题 或者 提出改进建议.