kubectl 的用法约定

kubectl 的推荐用法约定。

在可重用脚本中使用 kubectl

对于脚本中的稳定输出:

  • 请求一个面向机器的输出格式,例如 -o name-o json-o yaml-o go template-o jsonpath
  • 完全限定版本。例如 jobs.v1.batch/myjob。这将确保 kubectl 不会使用其默认版本,该版本会随着时间的推移而更改。
  • 不要依赖上下文、首选项或其他隐式状态。

最佳实践

kubectl run

若希望 kubectl run 满足基础设施即代码的要求:

  • 使用特定版本的标签标记镜像,不要将该标签移动到新版本。例如,使用 :v1234v1.2.3r03062016-1-4,而不是 :latest(有关详细信息,请参阅配置的最佳实践)。
  • 使用基于版本控制的脚本来运行包含大量参数的镜像。
  • 对于无法通过 kubectl run 参数来表示的功能特性,使用基于源码控制的配置文件,以记录要使用的功能特性。

你可以使用 --dry-run=client 参数来预览而不真正提交即将下发到集群的对象实例:

说明:

所有的 kubectl run 生成器已弃用。 查阅 Kubernetes v1.17 文档中的生成器列表以及它们的用法。

生成器

你可以使用 kubectl 命令生成以下资源, kubectl create --dry-run=client -o yaml

  1. clusterrole 创建 ClusterRole
  2. clusterrolebinding 为特定的 ClusterRole 创建 ClusterRoleBinding
  3. configmap 使用本地文件、目录或文本值创建 Configmap
  4. cronjob 使用指定的名称创建 Cronjob
  5. deployment 使用指定的名称创建 Deployment
  6. job 使用指定的名称创建 Job
  7. namespace 使用指定的名称创建名称空间。
  8. poddisruptionbudget 使用指定名称创建 Pod 干扰预算。
  9. priorityclass 使用指定的名称创建 Priorityclass
  10. quota 使用指定的名称创建配额。
  11. role 使用单一规则创建角色。
  12. rolebinding 为特定角色或 ClusterRole 创建 RoleBinding
  13. secret 使用指定的子命令创建 Secret
  14. service 使用指定的子命令创建服务。
  15. serviceaccount 使用指定的名称创建服务帐户。

kubectl apply

  • 您可以使用 kubectl apply 命令创建或更新资源。有关使用 kubectl apply 更新资源的详细信息,请参阅 Kubectl 文档