kubectl run
简介
创建 Pod 并在其中运行特定镜像。
kubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server|client] [--overrides=inline-json] [--command] -- [COMMAND] [args...]
示例
# 启动一个 nginx Pod
kubectl run nginx --image=nginx
# 启动一个 hazelcast Pod 并让容器暴露端口 5701
kubectl run hazelcast --image=hazelcast/hazelcast --port=5701
# 启动一个 hazelcast Pod 并在容器中设置环境变量 "DNS_DOMAIN=cluster" 和 "POD_NAMESPACE=default"
kubectl run hazelcast --image=hazelcast/hazelcast --env="DNS_DOMAIN=cluster" --env="POD_NAMESPACE=default"
# 启动一个 hazelcast Pod 并设置标签 "app=hazelcast" 和 "env=prod"
kubectl run hazelcast --image=hazelcast/hazelcast --labels="app=hazelcast,env=prod"
# 试运行;打印相应的 API 对象而不创建它们
kubectl run nginx --image=nginx --dry-run=client
# 启动一个 nginx Pod,但使用从 JSON 解析的部分设置值覆盖 Pod 的 spec
kubectl run nginx --image=nginx --overrides='{ "apiVersion": "v1", "spec": { ... } }'
# 启动一个 busybox Pod 并将其保持在前台,如果退出则不重启
kubectl run -i -t busybox --image=busybox --restart=Never
# 使用默认命令启动一个 nginx Pod,并为该默认命令使用自定义参数(arg1 .. argN)
kubectl run nginx --image=nginx -- <arg1> <arg2> ... <argN>
# 使用不同的命令和自定义参数启动 nginx Pod
kubectl run nginx --image=nginx --command -- <cmd> <arg1> ... <argN>
选项
--allow-missing-template-keys 默认值:true | |
如果为 true,在模板中字段或映射键缺失时忽略模板中的错误。 仅适用于 golang 和 jsonpath 输出格式。 |
|
--annotations strings | |
要应用到 Pod 的多个注解。 |
|
--attach | |
如果为 true,则等待 Pod 开始运行,然后像调用 “kubectl attach ...” 一样挂接到 Pod。 默认值为 false,除非设置了 “-i/--stdin”,则默认值为 true。 使用 “--restart=Never” 时,返回容器进程的退出码。 |
|
--cascade string[="background"] 默认值:"background" | |
必须是 "background"、"orphan" 或 "foreground"。 选择依赖项(例如,由 ReplicationController 创建的 Pod)的删除级联策略, 默认为 background。 |
|
--command | |
如果为 true 并且存在额外的参数,则将它们用作容器中的 “command” 字段,而不是默认的 “args” 字段。 |
|
--dry-run string[="unchanged"] 默认值:"none" | |
必须是 "none"、"server" 或 "client"。如果是 client 策略,仅打印将要发送的对象,而不实际发送。 如果是 server 策略,提交服务器端请求而不持久化资源。 |
|
--env strings | |
要在容器中设置的环境变量。 |
|
--expose --port | |
如果为 true,则创建与 Pod 关联的 ClusterIP 服务。需要指定 --port 参数。 |
|
--field-manager string 默认值:"kubectl-run" | |
用于跟踪字段属主关系的管理器的名称。 |
|
-f, --filename strings | |
用来替换资源。 |
|
--force | |
如果为真,则立即从 API 中移除资源并略过体面删除处理。 请注意,立即删除某些资源可能会导致不一致或数据丢失,并且需要确认操作。 |
|
--grace-period int 默认值:-1 | |
指定给资源的体面终止时间(以秒为单位)。 如果为负数则忽略,为 1 表示立即关闭。 仅当 --force 为真(强制删除)时才可以设置为 0。 |
|
-h, --help | |
run 操作的帮助命令。 |
|
--image string | |
要运行的容器的镜像。 |
|
--image-pull-policy string | |
容器的镜像拉取策略。如果留空,则此值不会由客户端指定,而是默认由服务器指定。 |
|
-k, --kustomize string | |
处理 kustomization 目录,此标志不能与 -f 或 -R 一起使用。 |
|
-l, --labels string | |
要应用到 Pod 的、用逗号分隔的标签。这将覆盖之前的值。 |
|
--leave-stdin-open | |
如果 Pod 以交互模式启动或在启动时带有标准输入,则在第一次挂接完成后保持标准输入打开。 默认情况下,标准输入会在第一次挂接完成后被关闭。 |
|
-o, --output string | |
输出格式。可选值为: json、yaml、name、go-template、go-template-file、template、templatefile、jsonpath、jsonpath-as-json、jsonpath-file。 |
|
--override-type string 默认值:"merge" | |
用于覆盖生成对象的方法:json、merge 或 strategic。 |
|
--overrides string | |
用于覆盖已生成对象的内联 JSON。如果此字段非空,则用于覆盖已生成的对象。 要求对象提供一个有效的 apiVersion 字段。 |
|
--pod-running-timeout duration 默认值:1m0s | |
等待至少一个 Pod 运行的时长(例如 5s、2m 或 3h,大于零)。 |
|
--port string | |
指定容器暴露的端口。 |
|
--privileged | |
如果为 true,则以特权模式运行容器。 |
|
-q, --quiet | |
如果为 true,则抑制提示信息。 |
|
-R, --recursive | |
以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。 |
|
--restart string 默认值:"Always" | |
指定 Pod 的重启策略。有效值为 Always、OnFailure、Never。 |
|
--rm | |
如果为 true,则在 Pod 退出后删除它。仅在挂接到容器时有效,例如使用 “--attach” 或 “-i/--stdin”。 |
|
--save-config | |
如果为 true,则当前对象的配置将被保存在其注解中。否则,注解将保持不变。 当你希望后续对此对象执行 `kubectl apply` 操作时,此标志很有用。 |
|
--show-managed-fields | |
如果为 true,在以 JSON 或 YAML 格式打印对象时保留 managedFields。 |
|
-i, --stdin | |
即使没有挂接任何内容,也保持 Pod 中容器的标准输入处于打开状态。 |
|
--template string | |
当 -o=go-template、-o=go-template-file 时使用的模板字符串或模板文件路径。 模板格式为 golang 模板 [http://golang.org/pkg/text/template/#pkg-overview]。 |
|
--timeout duration | |
放弃删除之前等待的时长;标志值为 0 表示根据对象的大小确定超时。 |
|
-t, --tty | |
为 Pod 中的容器分配 TTY。 |
|
--wait 默认值:true | |
如果为 true,则等待资源消失后再返回。此参数会等待终结器被清空。 |
Parent Options Inherited
--as string | |
操作所用的伪装用户名。用户可以是常规用户或命名空间中的服务账号。 |
|
--as-group strings | |
操作所用的伪装用户组,此标志可以被重复设置以指定多个组。 |
|
--as-uid string | |
操作所用的伪装 UID。 |
|
--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)。 |
|
--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 | |
将从服务器收到的警告视为错误,并以非零退出码退出。 |
另请参见
- kubectl - kubectl 控制 Kubernetes 集群管理器
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.