kubernates kubectl create详解

139 阅读2分钟

    从一个文件或标椎输入创建一个资源。接受JSON和YAML格式。

例如:

  # 使用pod.json文件创建一个pod
  kubectl create -f ./pod.json

  # 基于json, 通过标椎输入创建一个pod
  cat pod.json | kubectl create -f -

  # 编辑文件docker-registry.yaml生成json,然后使用编辑后的数据生成资源
  kubectl create -f docker-registry.yaml --edit -o json

用法:

kubectl create -f FILENAME [选项]

现有命令:

  clusterrole         创建ClusterRole。
  clusterrolebinding  为特定ClusterRole创建ClusterRoleBinding
  configmap           从本地文件、目录或文本值创建configmap
  cronjob             创建具有指定名称的cronjob。
  deployment          创建具有指定名称的部署。
  job                 创建具有指定名称的job。
  namespace           创建具有指定名称的命名空间
  poddisruptionbudget 创建指定名称的poddisruptionbudget控制器
  priorityclass       创建具有指定名称的priorityclass。
  quota               使用指定的名称创建配额。
  role                使用单个规则创建角色。
  rolebinding         为特定角色或集群角色创建RoleBinding 
  secret              使用指定的子命令创建密码
  service             使用指定的子命令创建一个服务
  serviceaccount      创建指定名称的服务账户

选项:

--allow-missing-template-keys=true: 如果为true,则当模板中缺少字段或映射键时,忽略模板中的任何错误。仅适用于golang和jsonpath输出格式。
--dry-run='none': 必须是“none”、“server”或“client”。如果是客户端策略,则只打印要发送的对象,而不发送它。如果是服务器策略,则提交服务器端请求而不持久化资源。
--edit=false: 在创建之前编辑API资源
-f, --filename=[]: 用于创建资源文件的文件名、目录或URL
-k, --kustomize='': 处理kustomization目录。此标志不能与-f或-R一起使用。
-o, --output='': 输出格式。其中之一:json | yaml | name | go template | go template file | template | templatefile | jsonpath | jsonpath file。
--raw='': 要发布到服务器的原始URI。使用kubeconfig文件指定的传输。
--record=false: 在资源注释中记录当前kubectl命令。如果设置为false,则不要记录命令。如果设置为true,则记录命令。如果未设置,则默认为仅当现有注释值已存在时才更新现有注释值。
-R, --recursive=false: 递归处理-f,--filename中使用的目录。当您想要管理在同一目录中组织的相关清单时,这很有用。
--save-config=false: 如果为true,则当前对象的配置将保存在其注释中。否则,注释将保持不变。如果将来要对此对象执行kubectl apply,则此标志非常有用。
-l, --selector='': 要筛选的选择器(标签查询),支持“=”、“=”、“!='(例如: key1=value1,key2=value2)
--template='': 当使用-o=go-template, -o=go-template-file时,要使用模板字符串或模板文件路径。模板格式为golang模板
--validate=true: 如果为true, 在发送之前使用schema 校验输入
--windows-line-endings=false: 仅当--edit=true时相关。默认为平台本机结束的行。