你正在查看的文档所针对的是 Kubernetes 版本: v1.35

Kubernetes v1.35 版本的文档已不再维护。你现在看到的版本来自于一份静态的快照。如需查阅最新文档,请点击 最新版本。

kubectl create secret generic

基于本地文件、目录或文字值创建 Secret

简介

基于文件、目录或指定的文字值创建 Secret。

单个 Secret 可以包含一个或多个键值对。

当基于文件创建 Secret 时,键将默认为文件的基本名称,值将默认为文件内容。 如果基本名称是无效的键,或者你希望选择自己的键,你可以指定一个替代键。

当基于目录创建 Secret 时,目录中每个基本名称为有效键的文件都将被打包到 Secret 中。 除常规文件外的所有目录条目(例如子目录、符号链接、设备、管道等)都将被忽略。

kubectl create secret generic NAME [--type=string] [--from-file=[key=]source] [--from-literal=key1=value1] [--dry-run=server|client|none]

示例

# 新建一个名为 my-secret 的 Secret,其键为文件夹 bar 中的每个文件
kubectl create secret generic my-secret --from-file=path/to/bar

# 使用指定的键而不是磁盘上的文件名来新建一个名为 my-secret 的 Secret
kubectl create secret generic my-secret --from-file=ssh-privatekey=path/to/id_rsa --from-file=ssh-publickey=path/to/id_rsa.pub
  
# 使用 key1=supersecret 和 key2=topsecret 新建一个名为 my-secret 的 Secret
kubectl create secret generic my-secret --from-literal=key1=supersecret --from-literal=key2=topsecret
  
# 组合使用文件和文字值新建一个名为 my-secret 的 Secret
kubectl create secret generic my-secret --from-file=ssh-privatekey=path/to/id_rsa --from-literal=passphrase=topsecret
  
# 使用 env 文件新建一个名为 my-secret 的 Secret
kubectl create secret generic my-secret --from-env-file=path/to/foo.env --from-env-file=path/to/bar.env

选项

--allow-missing-template-keys     默认值:true

如果为 true,在模板中字段或映射键缺失时忽略模板中的错误。 仅适用于 golang 和 jsonpath 输出格式。

--append-hash

将 Secret 的哈希值追加到它的名称上。

--dry-run string[="unchanged"]     默认值:"none"

必须是 "none"、"server" 或 "client"。如果是 client 策略,仅打印将要发送的对象,而不实际发送。 如果是 server 策略,提交服务器端请求而不持久化资源。

--field-manager string     默认值:"kubectl-create"

用于跟踪字段属主关系的管理器的名称。

--from-env-file strings

指定文件路径以读取 key=val 对的行来创建一个 Secret。

--from-file strings

键可以通过其文件路径被指定,这种情况将为它们分配一个默认名称; 键也可以选择通过某个名称和文件路径被指定,这种情况将使用给定的名称。 指定一个目录将遍历目录中所有已命名的且是有效 Secret 键的文件。

--from-literal strings

指定键和文字值以插入到 Secret 中(例如 mykey=somevalue)。

-h, --help

generic 操作的帮助命令。

-o, --output string

输出格式。可选值为: json、yaml、kyaml、name、go-template、go-template-file、template、templatefile、jsonpath、jsonpath-as-json、jsonpath-file。

--save-config

如果为 true,当前对象的配置将被保存在其注解中。否则,注解将保持不变。 此标志在你希望后续对该对象执行 kubectl apply 时很有用。

--show-managed-fields

如果为 true,在以 JSON 或 YAML 格式打印对象时保留 managedFields。

--template string

当 -o=go-template、-o=go-template-file 时使用的模板字符串或模板文件路径。 模板格式为 golang 模板 [http://golang.org/pkg/text/template/#pkg-overview]。

--type string

要创建的 Secret 的类别。

--validate string[="strict"]     默认值:"strict"

必须是以下选项之一:strict(或 true)、warn、ignore(或 false)。 "true" 或 "strict" 将使用模式定义来验证输入,如果无效,则请求失败。 如果在 API 服务器上启用了 ServerSideFieldValidation,则执行服务器端验证, 但如果未启用,它将回退到可靠性较低的客户端验证。 如果在 API 服务器上启用了服务器端字段验证,"warn" 将警告未知或重复的字段而不阻止请求, 否则操作与 "ignore" 的表现相同。 "false" 或 "ignore" 将不会执行任何模式定义检查,而是静默删除所有未知或重复的字段。

继承于父命令的选项

--as string

操作所用的伪装用户名。用户可以是常规用户或命名空间中的服务账号。

--as-group strings

操作所用的伪装用户组,此标志可以被重复设置以指定多个组。

--as-uid string

操作所用的伪装 UID。

--as-user-extra strings

用户额外信息,用于伪装操作,此标志可以重复使用,为同一个键指定多个值。

--cache-dir string     默认值:"$HOME/.kube/cache"

默认缓存目录。

--certificate-authority string

证书机构的证书文件的路径。

--client-certificate string

TLS 客户端证书文件的路径。

--client-key string

TLS 客户端密钥文件的路径。

--cluster string

要使用的 kubeconfig 中集群的名称。

--context string

要使用的 kubeconfig 上下文的名称。

--disable-compression

如果为 true,则对服务器所有请求的响应不再压缩。

--insecure-skip-tls-verify

如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求要使用的 kubeconfig 文件的路径。

--kuberc string

用于偏好设置的 kuberc 文件的路径。可以通过导出 KUBECTL_KUBERC=false 特性门控或关闭 KUBERC=off 特性门控来禁用此功能。

--match-server-version

要求服务器版本与客户端版本匹配。

-n, --namespace string

如果存在,则是此 CLI 请求的命名空间范围。

--password string

对 API 服务器进行基本身份认证所用的密码。

--profile string     默认值:"none"

要记录的性能分析信息。可选值为(none|cpu|heap|goroutine|threadcreate|block|mutex|trace)。

--profile-output string     默认值:"profile.pprof"

性能分析信息要写入的目标文件的名称。

--request-timeout string     默认值:"0"

在放弃某个服务器请求之前等待的时长。非零值应包含相应的时间单位(例如 1s、2m、3h)。 值为零表示请求不会超时。

-s, --server string

Kubernetes API 服务器的地址和端口。

--storage-driver-buffer-duration duration     默认值:1m0s

对存储驱动的写入操作将被缓存的时长;缓存的操作会作为一个事务提交给非内存后端。

--storage-driver-db string     默认值:"cadvisor"

数据库名称。

--storage-driver-host string     默认值:"localhost:8086"

数据库 host:port

--storage-driver-password string     默认值:"root"

数据库密码。

--storage-driver-secure

使用与数据库的安全连接。

--storage-driver-table string     默认值:"stats"

表名。

--storage-driver-user string     默认值:"root"

数据库用户名。

--tls-server-name string

服务器证书验证所用的服务器名称。如果未提供,则使用与服务器通信所用的主机名。

--token string

向 API 服务器进行身份认证的持有者令牌。

--user string

要使用的 kubeconfig 用户的名称。

--username string

向 API 服务器进行基本身份认证时所用的用户名。

--version version[=true]

--version, --version=raw 打印版本信息并退出;--version=vX.Y.Z... 设置报告的版本。

--warnings-as-errors

将从服务器收到的警告视为错误,并以非零退出码退出。

另请参见


最后修改 March 30, 2026 at 9:30 AM PST: [zh] Update kubectl_create/ files (9af30ced01)