这是本节的多页打印视图。 点击此处打印.

返回本页常规视图.

命令行工具 (kubectl)

Kubernetes 提供 kubectl 是使用 Kubernetes API 与 Kubernetes 集群的控制面进行通信的命令行工具。

这个工具叫做 kubectl

针对配置信息,kubectl$HOME/.kube 目录中查找一个名为 config 的配置文件。 你可以通过设置 KUBECONFIG 环境变量或设置 --kubeconfig

参数来指定其它 kubeconfig 文件。

本文概述了 kubectl 语法和命令操作描述,并提供了常见的示例。 有关每个命令的详细信息,包括所有受支持的参数和子命令, 请参阅 kubectl 参考文档。

有关安装说明,请参见安装 kubectl; 如需快速指南,请参见备忘单。 如果你更习惯使用 docker 命令行工具, Docker 用户的 kubectl 介绍了一些 Kubernetes 的等价命令。

语法

使用以下语法从终端窗口运行 kubectl 命令:

kubectl [command] [TYPE] [NAME] [flags]

其中 commandTYPENAMEflags 分别是:

  • command:指定要对一个或多个资源执行的操作,例如 creategetdescribedelete

  • TYPE:指定资源类型。资源类型不区分大小写, 可以指定单数、复数或缩写形式。例如,以下命令输出相同的结果:

    kubectl get pod pod1
    kubectl get pods pod1
    kubectl get po pod1
    
  • NAME:指定资源的名称。名称区分大小写。 如果省略名称,则显示所有资源的详细信息。例如:kubectl get pods

    在对多个资源执行操作时,你可以按类型和名称指定每个资源,或指定一个或多个文件:

  • 要按类型和名称指定资源:

  • 要对所有类型相同的资源进行分组,请执行以下操作:TYPE1 name1 name2 name<#>
    例子:kubectl get pod example-pod1 example-pod2

  • 分别指定多个资源类型:TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>
    例子:kubectl get pod/example-pod1 replicationcontroller/example-rc1

  • 用一个或多个文件指定资源:-f file1 -f file2 -f file<#>

  • 使用 YAML 而不是 JSON, 因为 YAML 对用户更友好, 特别是对于配置文件。
    例子:kubectl get -f ./pod.yaml

  • flags: 指定可选的参数。例如,可以使用 -s--server 参数指定 Kubernetes API 服务器的地址和端口。

如果你需要帮助,在终端窗口中运行 kubectl help

集群内身份验证和命名空间覆盖

默认情况下,kubectl 命令首先确定它是否在 Pod 中运行,从而被视为在集群中运行。 它首先检查 KUBERNETES_SERVICE_HOSTKUBERNETES_SERVICE_PORT 环境变量以及 /var/run/secrets/kubernetes.io/serviceaccount/token 中是否存在服务帐户令牌文件。 如果三个条件都被满足,则假定在集群内进行身份验证。

为保持向后兼容性,如果在集群内身份验证期间设置了 POD_NAMESPACE 环境变量,它将覆盖服务帐户令牌中的默认命名空间。 任何依赖默认命名空间的清单或工具都会受到影响。

POD_NAMESPACE 环境变量

如果设置了 POD_NAMESPACE 环境变量,对命名空间资源的 CLI 操作对象将使用该变量值作为默认值。 例如,如果该变量设置为 seattlekubectl get pods 将返回 seattle 命名空间中的 Pod。 这是因为 Pod 是一个命名空间资源,且命令中没有提供命名空间。 请查看 kubectl api-resources 的输出,以确定某个资源是否是命名空间资源。

直接使用 --namespace <value> 会覆盖此行为。

kubectl 如何处理 ServiceAccount 令牌

假设:

  • 有 Kubernetes 服务帐户令牌文件挂载在 /var/run/secrets/kubernetes.io/serviceaccount/token 上,并且
  • 设置了 KUBERNETES_SERVICE_HOST 环境变量,并且
  • 设置了 KUBERNETES_SERVICE_PORT 环境变量,并且
  • 你没有在 kubectl 命令行上明确指定命名空间。

然后 kubectl 假定它正在你的集群中运行。 kubectl 工具查找该 ServiceAccount 的命名空间 (该命名空间与 Pod 的命名空间相同)并针对该命名空间进行操作。 这与集群外运行的情况不同; 当 kubectl 在集群外运行并且你没有指定命名空间时, kubectl 命令会针对你在客户端配置中为当前上下文设置的命名空间进行操作。 要为你的 kubectl 更改默认的命名空间,你可以使用以下命令:

kubectl config set-context --current --namespace=<namespace-name>

操作

下表包含所有 kubectl 操作的简短描述和普通语法:

操作语法描述
alphakubectl alpha SUBCOMMAND [flags]列出与 Alpha 级别特性对应的可用命令,这些特性在 Kubernetes 集群中默认情况下是不启用的。
annotatekubectl annotate (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]添加或更新一个或多个资源的注解。
api-resourceskubectl api-resources [flags]列出可用的 API 资源。
api-versionskubectl api-versions [flags]列出可用的 API 版本。
applykubectl apply -f FILENAME [flags]从文件或 stdin 对资源应用配置更改。
attachkubectl attach POD -c CONTAINER [-i] [-t] [flags]挂接到正在运行的容器,查看输出流或与容器(stdin)交互。
authkubectl auth [flags] [options]检查授权。
autoscalekubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU] [flags]自动扩缩由副本控制器管理的一组 pod。
certificatekubectl certificate SUBCOMMAND [options]修改证书资源。
cluster-infokubectl cluster-info [flags]显示有关集群中主服务器和服务的端口信息。
completionkubectl completion SHELL [options]为指定的 Shell(Bash 或 Zsh)输出 Shell 补齐代码。
configkubectl config SUBCOMMAND [flags]修改 kubeconfig 文件。有关详细信息,请参阅各个子命令。
convertkubectl convert -f FILENAME [options]在不同的 API 版本之间转换配置文件。配置文件可以是 YAML 或 JSON 格式。注意 - 需要安装 kubectl-convert 插件。
cordonkubectl cordon NODE [options]将节点标记为不可调度。
cpkubectl cp <file-spec-src> <file-spec-dest> [options]从容器复制文件、目录或将文件、目录复制到容器。
createkubectl create -f FILENAME [flags]从文件或 stdin 创建一个或多个资源。
deletekubectl delete (-f FILENAME | TYPE [NAME | /NAME | -l label | --all]) [flags]基于文件、标准输入或通过指定标签选择器、名称、资源选择器或资源本身,删除资源。
describekubectl describe (-f FILENAME | TYPE [NAME_PREFIX | /NAME | -l label]) [flags]显示一个或多个资源的详细状态。
diffkubectl diff -f FILENAME [flags]在当前起作用的配置和文件或标准输之间作对比(BETA
drainkubectl drain NODE [options]腾空节点以准备维护。
editkubectl edit (-f FILENAME | TYPE NAME | TYPE/NAME) [flags]使用默认编辑器编辑和更新服务器上一个或多个资源的定义。
eventskubectl events列举事件。
execkubectl exec POD [-c CONTAINER] [-i] [-t] [flags] [-- COMMAND [args...]]对 Pod 中的容器执行命令。
explainkubectl explain TYPE [--recursive=false] [flags]获取多种资源的文档。例如 Pod、Node、Service 等。
exposekubectl expose (-f FILENAME | TYPE NAME | TYPE/NAME) [--port=port] [--protocol=TCP|UDP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type] [flags]将副本控制器、Service 或 Pod 作为新的 Kubernetes 服务暴露。
getkubectl get (-f FILENAME | TYPE [NAME | /NAME | -l label]) [--watch] [--sort-by=FIELD] [[-o | --output]=OUTPUT_FORMAT] [flags]列出一个或多个资源。
kustomizekubectl kustomize[flags] [options]`列出从 kustomization.yaml 文件中的指令生成的一组 API 资源。参数必须是包含文件的目录的路径,或者是 git 存储库 URL,其路径后缀相对于存储库根目录指定了相同的路径。
labelkubectl label (-f FILENAME | TYPE NAME | TYPE/NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--overwrite] [--all] [--resource-version=version] [flags]添加或更新一个或多个资源的标签。
logskubectl logs POD [-c CONTAINER] [--follow] [flags]打印 Pod 中容器的日志。
optionskubectl options全局命令行选项列表,这些选项适用于所有命令。
patchkubectl patch (-f FILENAME | TYPE NAME | TYPE/NAME) --patch PATCH [flags]使用策略合并流程更新资源的一个或多个字段。
pluginkubectl plugin [flags] [options]提供用于与插件交互的实用程序。
port-forwardkubectl port-forward POD [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N] [flags]将一个或多个本地端口转发到一个 Pod。
proxykubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix] [flags]运行访问 Kubernetes API 服务器的代理。
replacekubectl replace -f FILENAME基于文件或标准输入替换资源。
rolloutkubectl rollout SUBCOMMAND [options]管理资源的上线。有效的资源类型包括:Deployment、 DaemonSet 和 StatefulSet。
runkubectl run NAME --image=image [--env="key=value"] [--port=port] [--dry-run=server | client | none] [--overrides=inline-json] [flags]在集群上运行指定的镜像。
scalekubectl scale (-f FILENAME | TYPE NAME | TYPE/NAME) --replicas=COUNT [--resource-version=version] [--current-replicas=count] [flags]更新指定副本控制器的大小。
setkubectl set SUBCOMMAND [options]配置应用资源。
taintkubectl taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N [options]更新一个或多个节点上的污点。
topkubectl top (POD | NODE) [flags] [options]显示 Pod 或节点的资源(CPU/内存/存储)使用情况。
uncordonkubectl uncordon NODE [options]将节点标记为可调度。
versionkubectl version [--client] [flags]显示运行在客户端和服务器上的 Kubernetes 版本。
waitkubectl wait ([-f FILENAME] | resource.group/resource.name | resource.group [(-l label | --all)]) [--for=delete|--for condition=available] [options]实验特性:等待一种或多种资源的特定状况。

了解更多有关命令操作的信息, 请参阅 kubectl 参考文档。

资源类型

下表列出所有受支持的资源类型及其缩写别名。

(以下输出可以通过 kubectl api-resources 获取,内容以 Kubernetes 1.25.0 版本为准。)

资源名缩写名API 版本按命名空间资源类型
bindingsv1trueBinding
componentstatusescsv1falseComponentStatus
configmapscmv1trueConfigMap
endpointsepv1trueEndpoints
eventsevv1trueEvent
limitrangeslimitsv1trueLimitRange
namespacesnsv1falseNamespace
nodesnov1falseNode
persistentvolumeclaimspvcv1truePersistentVolumeClaim
persistentvolumespvv1falsePersistentVolume
podspov1truePod
podtemplatesv1truePodTemplate
replicationcontrollersrcv1trueReplicationController
resourcequotasquotav1trueResourceQuota
secretsv1trueSecret
serviceaccountssav1trueServiceAccount
servicessvcv1trueService
mutatingwebhookconfigurationsadmissionregistration.k8s.io/v1falseMutatingWebhookConfiguration
validatingwebhookconfigurationsadmissionregistration.k8s.io/v1falseValidatingWebhookConfiguration
customresourcedefinitionscrd,crdsapiextensions.k8s.io/v1falseCustomResourceDefinition
apiservicesapiregistration.k8s.io/v1falseAPIService
controllerrevisionsapps/v1trueControllerRevision
daemonsetsdsapps/v1trueDaemonSet
deploymentsdeployapps/v1trueDeployment
replicasetsrsapps/v1trueReplicaSet
statefulsetsstsapps/v1trueStatefulSet
tokenreviewsauthentication.k8s.io/v1falseTokenReview
localsubjectaccessreviewsauthorization.k8s.io/v1trueLocalSubjectAccessReview
selfsubjectaccessreviewsauthorization.k8s.io/v1falseSelfSubjectAccessReview
selfsubjectrulesreviewsauthorization.k8s.io/v1falseSelfSubjectRulesReview
subjectaccessreviewsauthorization.k8s.io/v1falseSubjectAccessReview
horizontalpodautoscalershpaautoscaling/v2trueHorizontalPodAutoscaler
cronjobscjbatch/v1trueCronJob
jobsbatch/v1trueJob
certificatesigningrequestscsrcertificates.k8s.io/v1falseCertificateSigningRequest
leasescoordination.k8s.io/v1trueLease
endpointslicesdiscovery.k8s.io/v1trueEndpointSlice
eventsevevents.k8s.io/v1trueEvent
flowschemasflowcontrol.apiserver.k8s.io/v1beta2falseFlowSchema
prioritylevelconfigurationsflowcontrol.apiserver.k8s.io/v1beta2falsePriorityLevelConfiguration
ingressclassesnetworking.k8s.io/v1falseIngressClass
ingressesingnetworking.k8s.io/v1trueIngress
networkpoliciesnetpolnetworking.k8s.io/v1trueNetworkPolicy
runtimeclassesnode.k8s.io/v1falseRuntimeClass
poddisruptionbudgetspdbpolicy/v1truePodDisruptionBudget
podsecuritypoliciespsppolicy/v1beta1falsePodSecurityPolicy
clusterrolebindingsrbac.authorization.k8s.io/v1falseClusterRoleBinding
clusterrolesrbac.authorization.k8s.io/v1falseClusterRole
rolebindingsrbac.authorization.k8s.io/v1trueRoleBinding
rolesrbac.authorization.k8s.io/v1trueRole
priorityclassespcscheduling.k8s.io/v1falsePriorityClass
csidriversstorage.k8s.io/v1falseCSIDriver
csinodesstorage.k8s.io/v1falseCSINode
csistoragecapacitiesstorage.k8s.io/v1trueCSIStorageCapacity
storageclassesscstorage.k8s.io/v1falseStorageClass
volumeattachmentsstorage.k8s.io/v1falseVolumeAttachment

输出选项

有关如何格式化或排序某些命令的输出的信息,请参阅以下章节。有关哪些命令支持不同输出选项的详细信息, 请参阅 kubectl 参考文档。

格式化输出

所有 kubectl 命令的默认输出格式都是人类可读的纯文本格式。要以特定格式在终端窗口输出详细信息, 可以将 -o--output 参数添加到受支持的 kubectl 命令中。

语法

kubectl [command] [TYPE] [NAME] -o <output_format>

取决于具体的 kubectl 操作,支持的输出格式如下:

输出格式描述
-o custom-columns=<spec>使用逗号分隔的自定义列列表打印表。
-o custom-columns-file=<filename>使用 <filename> 文件中的自定义列模板打印表。
-o json输出 JSON 格式的 API 对象
-o jsonpath=<template>打印 jsonpath 表达式定义的字段
-o jsonpath-file=<filename>打印 <filename> 文件中 jsonpath 表达式定义的字段。
-o name仅打印资源名称而不打印任何其他内容。
-o wide以纯文本格式输出,包含所有附加信息。对于 Pod 包含节点名。
-o yaml输出 YAML 格式的 API 对象。
示例

在此示例中,以下命令将单个 Pod 的详细信息输出为 YAML 格式的对象:

kubectl get pod web-pod-13je7 -o yaml

请记住:有关每个命令支持哪种输出格式的详细信息, 请参阅 kubectl 参考文档。

自定义列

要定义自定义列并仅将所需的详细信息输出到表中,可以使用 custom-columns 选项。 你可以选择内联定义自定义列或使用模板文件:-o custom-columns=<spec>-o custom-columns-file=<filename>

示例

内联:

kubectl get pods <pod-name> -o custom-columns=NAME:.metadata.name,RSRC:.metadata.resourceVersion

模板文件:

kubectl get pods <pod-name> -o custom-columns-file=template.txt

其中,template.txt 文件包含:

NAME          RSRC
metadata.name metadata.resourceVersion

运行这两个命令之一的结果类似于:

NAME           RSRC
submit-queue   610995

Server-side 列

kubectl 支持从服务器接收关于对象的特定列信息。 这意味着对于任何给定的资源,服务器将返回与该资源相关的列和行,以便客户端打印。 通过让服务器封装打印的细节,这允许在针对同一集群使用的客户端之间提供一致的人类可读输出。

此功能默认启用。要禁用它,请将该 --server-print=false 参数添加到 kubectl get 命令中。

例子

要打印有关 Pod 状态的信息,请使用如下命令:

kubectl get pods <pod-name> --server-print=false

输出类似于:

NAME       AGE
pod-name   1m

排序列表对象

要将对象排序后输出到终端窗口,可以将 --sort-by 参数添加到支持的 kubectl 命令。 通过使用 --sort-by 参数指定任何数字或字符串字段来对对象进行排序。 要指定字段,请使用 jsonpath 表达式。

语法

kubectl [command] [TYPE] [NAME] --sort-by=<jsonpath_exp>
示例

要打印按名称排序的 Pod 列表,请运行:

kubectl get pods --sort-by=.metadata.name

示例:常用操作

使用以下示例集来帮助你熟悉运行常用 kubectl 操作:

kubectl apply - 以文件或标准输入为准应用或更新资源。

# 使用 example-service.yaml 中的定义创建 Service。
kubectl apply -f example-service.yaml

# 使用 example-controller.yaml 中的定义创建 replication controller。
kubectl apply -f example-controller.yaml

# 使用 <directory> 路径下的任意 .yaml、.yml 或 .json 文件 创建对象。
kubectl apply -f <directory>

kubectl get - 列出一个或多个资源。

# 以纯文本输出格式列出所有 Pod。
kubectl get pods

# 以纯文本输出格式列出所有 Pod,并包含附加信息(如节点名)。
kubectl get pods -o wide

# 以纯文本输出格式列出具有指定名称的副本控制器。提示:你可以使用别名 'rc' 缩短和替换 'replicationcontroller' 资源类型。
kubectl get replicationcontroller <rc-name>

# 以纯文本输出格式列出所有副本控制器和 Service。
kubectl get rc,services

# 以纯文本输出格式列出所有守护程序集,包括未初始化的守护程序集。
kubectl get ds --include-uninitialized

# 列出在节点 server01 上运行的所有 Pod
kubectl get pods --field-selector=spec.nodeName=server01

kubectl describe - 显示一个或多个资源的详细状态,默认情况下包括未初始化的资源。

# 显示名为 <pod-name> 的 Pod 的详细信息。
kubectl describe nodes <node-name>

# 显示名为 <pod-name> 的 Pod 的详细信息。
kubectl describe pods/<pod-name>

# 显示由名为 <rc-name> 的副本控制器管理的所有 Pod 的详细信息。
# 记住:副本控制器创建的任何 Pod 都以副本控制器的名称为前缀。
kubectl describe pods <rc-name>

# 描述所有的 Pod
kubectl describe pods

kubectl delete - 基于文件、标准输入或通过指定标签选择器、名称、资源选择器或资源来删除资源。

# 使用 pod.yaml 文件中指定的类型和名称删除 Pod。
kubectl delete -f pod.yaml

# 删除所有带有 '<label-key>=<label-value>' 标签的 Pod 和 Service。
kubectl delete pods,services -l <label-key>=<label-value>

# 删除所有 Pod,包括未初始化的 Pod。
kubectl delete pods --all

kubectl exec - 对 Pod 中的容器执行命令。

# 从 Pod <pod-name> 中获取运行 'date' 的输出。默认情况下,输出来自第一个容器。
kubectl exec <pod-name> -- date

# 运行输出 'date' 获取在 Pod <pod-name> 中容器 <container-name> 的输出。
kubectl exec <pod-name> -c <container-name> -- date

# 获取一个交互 TTY 并在 Pod  <pod-name> 中运行 /bin/bash。默认情况下,输出来自第一个容器。
kubectl exec -ti <pod-name> -- /bin/bash

kubectl logs - 打印 Pod 中容器的日志。

# 返回 Pod <pod-name> 的日志快照。
kubectl logs <pod-name>

# 从 Pod <pod-name> 开始流式传输日志。这类似于 'tail -f' Linux 命令。
kubectl logs -f <pod-name>

kubectl diff - 查看集群建议更新的差异。

# “pod.json” 中包含的差异资源。
kubectl diff -f pod.json

# 从标准输入读取的差异文件。
cat service.yaml | kubectl diff -f -

示例:创建和使用插件

使用以下示例来帮助你熟悉编写和使用 kubectl 插件:

# 用任何语言创建一个简单的插件,并为生成的可执行文件命名
# 以前缀 "kubectl-" 开始
cat ./kubectl-hello
#!/bin/sh

# 这个插件打印单词 "hello world"
echo "hello world"

这个插件写好了,把它变成可执行的:

sudo chmod a+x ./kubectl-hello

# 并将其移动到路径中的某个位置
sudo mv ./kubectl-hello /usr/local/bin
sudo chown root:root /usr/local/bin

# 你现在已经创建并"安装了"一个 kubectl 插件。
# 你可以开始使用这个插件,从 kubectl 调用它,就像它是一个常规命令一样
kubectl hello
hello world
# 你可以"卸载"一个插件,只需从你的 $PATH 中删除它
sudo rm /usr/local/bin/kubectl-hello

为了查看可用的所有 kubectl 插件,你可以使用 kubectl plugin list 子命令:

kubectl plugin list

输出类似于:

The following kubectl-compatible plugins are available:

/usr/local/bin/kubectl-hello
/usr/local/bin/kubectl-foo
/usr/local/bin/kubectl-bar

kubectl plugin list 指令也可以向你告警哪些插件被运行,或是被其它插件覆盖了,例如:

sudo chmod -x /usr/local/bin/kubectl-foo # 删除执行权限
kubectl plugin list
The following kubectl-compatible plugins are available:

/usr/local/bin/kubectl-hello
/usr/local/bin/kubectl-foo
  - warning: /usr/local/bin/kubectl-foo identified as a plugin, but it is not executable
/usr/local/bin/kubectl-bar

error: one plugin warning was found

你可以将插件视为在现有 kubectl 命令之上构建更复杂功能的一种方法:

cat ./kubectl-whoami

接下来的几个示例假设你已经将 kubectl-whoami 设置为以下内容:

#!/bin/bash

#这个插件利用 `kubectl config` 命令基于当前所选上下文输出当前用户的信息
kubectl config view --template='{{ range .contexts }}{{ if eq .name "'$(kubectl config current-context)'" }}Current user: {{ printf "%s\n" .context.user }}{{ end }}{{ end }}'

运行以上命令将为你提供一个输出,其中包含 KUBECONFIG 文件中当前上下文的用户:

#!/bin/bash
# 使文件成为可执行的
sudo chmod +x ./kubectl-whoami

# 然后移动到你的路径中
sudo mv ./kubectl-whoami /usr/local/bin

kubectl whoami
Current user: plugins-user

接下来

1 - kubectl 介绍

kubectl 是 Kubernetes CLI 版本的瑞士军刀,可以胜任多种多样的任务。

本文主要介绍如何使用 kubectl 在 Kubernetes 中声明式管理应用,本文还涵盖了一些其他的 kubectl 功能。

命令分类

大多数 kubectl 命令通常可以分为以下几类:

类型用途描述
声明式资源管理部署和运维(如 GitOps)使用资源管理声明式管理 Kubernetes 工作负载
命令式资源管理仅限开发环境使用命令行参数和标志来管理 Kubernetes 工作负载
打印工作负载状态调试打印有关工作负载的信息
与容器交互调试执行、挂接、复制、日志
集群管理集群运维排空和封锁节点

声明式应用管理

管理资源的首选方法是配合 kubectl Apply 命令一起使用名为资源的声明式文件。 此命令读取本地(或远程)文件结构,并修改集群状态以反映声明的意图。

打印工作负载状态

用户需要查看工作负载状态。

  • 打印关于资源的摘要状态和信息
  • 打印关于资源的完整状态和信息
  • 打印资源的特定字段
  • 查询与标签匹配的资源

调试工作负载

kubectl 支持通过提供以下命令进行调试:

  • 打印 Container 日志
  • 打印集群事件
  • 执行或挂接到 Container
  • 将集群中 Container 中的文件复制到用户的文件系统

集群管理

有时用户可能需要对集群的节点执行操作。 kubectl 支持使用命令将工作负载从节点中排空,以便节点可以被停用或调试。

Porcelain

用户可能会发现使用资源管理进行 开发 过于繁琐, 他们更喜欢使用类似于 Shell 的工作流以 命令式 与集群交互。 kubectl 提供了用于生成和修改资源的 Porcelain 命令。

  • 生成和创建 Deployment、StatefulSet、Service、ConfigMap 等这类资源
  • 设置资源的字段
  • 在文本编辑器中(实时)编辑资源

2 - kubectl 参考

2.1 - kubectl

简介

kubectl 用于控制 Kubernetes 集群管理器。

参阅更多细节: https://kubernetes.io/zh-cn/docs/reference/kubectl/

kubectl [flags]

选项

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

-h, --help

kubectl 操作的帮助命令。

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 cordon - 标记节点为不可调度的
  • kubectl cp - 将文件和目录拷入/拷出容器
  • kubectl create - 通过文件或标准输入来创建资源
  • kubectl debug - 创建用于排查工作负载和节点故障的调试会话
  • kubectl delete - 通过文件名、标准输入、资源和名字删除资源, 或者通过资源和标签选择算符来删除资源

2.2 - kubectl annotate

简介

更新一个或多个资源上的注解。

所有 Kubernetes 对象都支持以注解(Annotation)的形式为对象存储额外的数据。 注解是一些键/值对,可以比标签的数据量更大,可以包含诸如结构化 JSON 这类任意字符串值。 各种工具和系统扩展可以使用注解来存储自己的数据。

尝试设置已存在的注解的操作将会失败,除非设置了 --overwrite 选项。 如果 --resource-version 被指定且与服务器上当前资源版本不匹配,命令将会失败。

使用 "kubectl api-resources" 获取可支持的资源完整列表。

kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]

示例

# 使用注解 'description' 和值 'my frontend' 更新 Pod 'foo'
# 如果同一注解被设置多次,则只使用最后一个值
kubectl annotate pods foo description='my frontend'

# 更新在 "pod.json" 中指定 type 和 name 的 Pod
kubectl annotate -f pod.json description='my frontend'

# 更新 Pod 'foo',设置注解 'description' 和值 'my frontend running nginx',覆盖其当前值
kubectl annotate --overwrite pods foo description='my frontend running nginx'

# 更新命名空间中的所有 Pod
kubectl annotate pods --all description='my frontend running nginx'

# 仅在资源版本仍为 1 时更新 Pod 'foo'
kubectl annotate pods foo description='my frontend running nginx' --resource-version=1

# 通过删除名为 'description' 的注解(如果存在)来更新 Pod 'foo'
# 不需要 --overwrite 标志
kubectl annotate pods foo description-

选项

--all

在指定资源类型的命名空间中,选择所有资源。

-A, --all-namespaces

如果为 true,则在所有命名空间中执行指定的操作。

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

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

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

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

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

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

--field-selector string

过滤所用的选择算符(字段查询),支持 '='、'==' 和 '!='。 (例如 --field-selector key1=value1,key2=value2)。服务器针对每种类型仅支持有限数量的字段查询。

-f, --filename strings

文件名、目录或文件 URL,用于标识要更新注解的资源。

-h, --help

annotate 的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

--list

如果为 true,则显示给定资源的注解。

--local

如果为 true,则注解不会与 api-server 通信,而是在本地运行。

-o, --output string

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

--overwrite

如果为 true,则允许注解被覆盖,否则拒绝覆盖现有注解的更新。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--resource-version string

如果非空,则只有在所给值是对象的当前资源版本时,注解更新才会成功。仅在指定单个资源时有效。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--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]。

--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 要使用的上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.3 - kubectl api-resources

简介

打印服务器支持的 API 资源。

kubectl api-resources [flags]

示例

  # 打印服务器支持的 API 资源
  kubectl api-resources
  
  # 打印支持的 API 资源,但包含更多信息
  kubectl api-resources -o wide
  
  # 按列排序打印支持的 API 资源
  kubectl api-resources --sort-by=name
  
  # 打印支持的命名空间资源
  kubectl api-resources --namespaced=true
  
  # 打印支持的非命名空间资源
  kubectl api-resources --namespaced=false
  
  # 打印特定 APIGroup 支持的 API 资源
  kubectl api-resources --api-group=rbac.authorization.k8s.io

选项

--api-group string

限制为指定 API 组中的资源。

--cached

如果可用,将使用缓存的资源列表。

--categories strings

指定资源的类别。

-h, --help

关于 api-resources 的帮助信息。

--namespaced     默认值:true

如果为false,则返回非命名空间作用域的资源,否则默认返回命名空间作用域的资源。

--no-headers

当使用默认或自定义列输出格式时,不要打印标题(默认打印标题)。

-o, --output string

输出格式,可选值为:wide、name。

--sort-by string

如果非空,则使用指定字段对资源列表进行排序,此字段可以是 "name" 或 "kind"。

--verbs strings

筛选支持指定动词的资源。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.4 - kubectl api-versions

简介

以 "group/version" 的形式打印服务器支持的 API 版本。

kubectl api-versions

示例

# Print the supported API versions
kubectl api-versions

选项

-h, --help

关于 api-versions 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.5 - kubectl apply

简介

基于文件名或标准输入将配置应用于资源。必须指定资源名称。如果资源尚不存在,则资源会被创建。 若要使用 apply 命令,最初创建资源时应始终使用 applycreate --save-config

支持 JSON 和 YAML 格式。

Alpha 免责声明:--prune 功能尚不完整。除非你了解当前的状态,否则请勿使用此功能。 参见 https://issues.k8s.io/34274

kubectl apply (-f FILENAME | -k DIRECTORY)

示例

# 将 pod.json 中的配置应用到 Pod
kubectl apply -f ./pod.json
  
# 应用来自包含 kustomization.yaml 的目录(即 dir/kustomization.yaml)中的资源
kubectl apply -k dir/
  
# 将传递到 stdin 的 JSON 应用到 Pod
cat pod.json | kubectl apply -f -
  
# 应用所有以 ".json" 结尾的文件中的配置
kubectl apply -f '*.json'
  
# 注意:--prune 仍处于 Alpha 阶段
# 应用 manifest.yaml 中与标签 app=nginx 匹配的配置,并删除不在文件中的、与标签 app=nginx 匹配的所有其他资源
kubectl apply --prune -f manifest.yaml -l app=nginx
  
# 应用 manifest.yaml 文件中的配置,并删除文件中未提及的所有其他 ConfigMap。
kubectl apply --prune -f manifest.yaml --all --prune-allowlist=core/v1/ConfigMap

选项

--all

选择指定资源类型的命名空间中的所有资源。

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

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

--cascade string[="background"]     默认值:"background"

必须是 "background"、"orphan" 或 "foreground"。 选择依赖项(例如,由 ReplicationController 创建的 Pod)的删除级联策略, 默认为 background。

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

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

--field-manager string     默认值:"kubectl-client-side-apply"

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

-f, --filename strings

包含了待应用的配置信息的文件。

--force

如果为真,则立即从 API 中移除资源并略过体面删除处理。 请注意,立即删除某些资源可能会导致不一致或数据丢失,并且需要确认操作。

--force-conflicts

如果为真,服务器端应用将在遇到冲突时实施强制更改。

--grace-period int     默认值:-1

指定给资源的体面终止时间(以秒为单位)。 如果为负数则忽略,为 1 表示立即关闭。 仅当 --force 为真(强制删除)时才可以设置为 0。

-h, --help

help for apply

-k, --kustomize string

处理 kustomization 目录,此标志不能与 -f 或 -R 一起使用。

--openapi-patch     默认值:true

如果为真,则当 openapi 存在且资源可在 openapi 规范中找到时,使用 openapi 计算 diff。 否则,回退到使用内置类型。

-o, --output string

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

--overwrite     默认值:true

使用修改后的配置中的值自动解决修改后的配置与实时配置之间的冲突。

--prune

自动删除未出现在配置中但由 "apply" 或 "create --save-config" 创建的资源对象。 应与 -l 或 --all 一起使用。

--prune-allowlist strings

由 "group/version/kind" 组成的列表,可覆盖默认允许列表,用于 --prune 操作。

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--server-side

如果为真,则 apply 将在服务器侧而不是客户端中运行。

--show-managed-fields

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

--template string

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

--timeout duration

放弃删除之前等待的时间长度,为 0 表示根据对象的大小确定超时。

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

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

--wait

如果为真,则等待资源消失后再返回。此参数会等待终结器被清空。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.5.1 - kubectl apply edit-last-applied

简介

使用默认编辑器编辑资源的最新的 last-applied-configuration 注解。

  • edit-last-applied 命令允许你直接编辑可以通过命令行工具检索的任何 API 资源。 它将打开由 KUBE_EDITOR 或 EDITOR 环境变量定义的编辑器,或者在 Linux 上默认使用 "vi" 或在 Windows 上默认使用 "notepad"。 你可以编辑多个对象,不过所做的更改只能是逐个被应用的。此命令接受文件名以及命令行参数,但你指向的文件必须是资源的先前保存的版本。
  • 默认格式为 YAML。若要以 JSON 格式编辑,请指定 -o json
  • 标志 --windows-line-endings 可用于强制使用 Windows 风格的行尾,否则将使用操作系统的默认设置。
  • 如果在更新过程中发生错误,则会在磁盘上创建一个包含未被应用的变更的临时文件。 更新资源时最常见的错误是另一个编辑者更改了服务器上的资源,发生这种情况时,你必须将更改应用于资源的较新版本, 或更新临时保存的副本以包含最新的资源版本。
kubectl apply edit-last-applied (RESOURCE/NAME | -f FILENAME)

示例

# 在 YAML 中按类型/名称编辑 last-applied-configuration 注解
kubectl apply edit-last-applied deployment/nginx
  
# 通过 JSON 文件编辑 last-applied-configuration 注解
kubectl apply edit-last-applied -f deploy.yaml -o json

选项

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

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

--field-manager string     默认值:"kubectl-client-side-apply"

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

-f, --filename strings

用于编辑资源的文件名、目录或文件 URL 的列表。

-h, --help

关于 edit-last-applied 的帮助信息。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--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]。

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

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

--windows-line-endings

仅在 --edit=true 时起作用。默认为你所用平台本地的行结尾格式。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 apply - 基于文件名或标准输入将配置应用于资源

2.5.2 - kubectl apply set-last-applied

简介

设置 last-applied-configuration 注解使之与某文件内容相匹配。 这会导致 last-applied-configuration 被更新,就像运行了 kubectl apply -f <file> 一样, 但是不会更新对象的任何其他部分。

kubectl apply set-last-applied -f FILENAME

示例

# 设置资源的 last-applied-configuration,使之与某文件内容相同
kubectl apply set-last-applied -f deploy.yaml
  
# 针对目录中的每一个配置文件执行 set-last-applied 操作
kubectl apply set-last-applied -f path/
  
# 设置资源的 last-applied-configuration 注解,使之与某文件内容匹配;如果该注解尚不存在,则会被创建。
kubectl apply set-last-applied -f deploy.yaml --create-annotation=true

选项

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

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

--create-annotation

如果当前的对象没有 'last-applied-configuration' 注解,将该注解会被创建。

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

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

-f, --filename strings

包含 last-applied-configuration 注解的文件的文件名、目录或 URL 的列表。

-h, --help

关于 set-last-applied 的帮助信息。

-o, --output string

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

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 apply - 基于文件名或标准输入将配置应用于资源

2.5.3 - kubectl apply view-last-applied

简介

根据所给类别/名称或文件来查看最新的 last-applied-configuration 注解。

默认输出将以 YAML 格式打印到标准输出。你可以使用 -o 选项来更改输出格式。

kubectl apply view-last-applied (TYPE [NAME | -l label] | TYPE/NAME | -f FILENAME)

示例

# 根据所给类别/名称以 YAML 格式查看 last-applied-configuration 注解
kubectl apply view-last-applied deployment/nginx
  
# 根据所给文件以 JSON 格式查看 last-applied-configuration 注解
kubectl apply view-last-applied -f deploy.yaml -o json

选项

--all

选择指定资源类型的命名空间中的所有资源。

-f, --filename strings

包含 last-applied-configuration 注解的文件的文件名、目录或 URL 的列表。

-h, --help

view-last-applied 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string     默认值:"yaml"

输出格式。必须是 yaml 或 json 之一。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 apply - 基于文件名或标准输入将配置应用于资源

2.6 - kubectl attach

简介

挂接到现有容器内已运行的进程。

kubectl attach (POD | TYPE/NAME) -c CONTAINER

示例

  # 从运行的 Pod mypod 获取输出;使用 'kubectl.kubernetes.io/default-container' 注解来选择要挂接的容器,
  # 否则将选择 Pod 中的第一个容器
  kubectl attach mypod
  
  # 从 Pod mypod 获取 ruby-container 的输出
  kubectl attach mypod -c ruby-container
  
  # 切换到原始终端模式;从 Pod mypod 将 stdin 发送到 ruby-container 中的 'bash',
  # 并将 stdout/stderr 从 'bash' 发送回客户端
  kubectl attach mypod -c ruby-container -i -t
  
  # 获取名为 nginx 的 ReplicaSet 中第一个 Pod 的输出
  kubectl attach rs/nginx

选项

-c, --container string

容器名称。 如果省略,则使用 kubectl.kubernetes.io/default-container 注解来选择要挂接的容器, 否则将选择 Pod 中的第一个容器。

-h, --help

关于 attach 的帮助信息。

--pod-running-timeout duration     默认值:1m0s

等待至少一个 Pod 运行的时间长度(例如 5 秒、2 分钟或 3 小时,大于零)。

-q, --quiet

仅打印远程会话的输出。

-i, --stdin

将 stdin 传递给容器。

-t, --tty

Stdin 是一个 TTY。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.7 - kubectl auth

简介

检查授权。

kubectl auth [flags]

选项

-h, --help

关于 auth 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.7.1 - kubectl auth can-i

简介

检查某个操作是否被允许。

  • VERB 指的是逻辑上的 Kubernetes API 动词,如 getlistwatchdelete 等。
  • TYPE 指的是 Kubernetes 中的一种资源类型,快捷表示和资源组都可被解析。
  • NONRESOURCEURL 是以 / 开头的部分 URL。
  • NAME 是特定 Kubernetes 资源的名称,此命令可与身份伪装功能完美搭配,请参阅 --as 全局标志。
kubectl auth can-i VERB [TYPE | TYPE/NAME | NONRESOURCEURL]

示例

# 检查是否可以在任意命名空间中创建 Pod
kubectl auth can-i create pods --all-namespaces
  
# 检查是否可以列出当前命名空间中的 Deployment
kubectl auth can-i list deployments.apps
  
# 检查命名空间 "dev" 的服务帐户 "foo" 是否可以列出命名空间 "prod" 下的 Pod。
# 你必须有权限使用全局选项 "--as" 所涉及的身份伪装功能。
kubectl auth can-i list pods --as=system:serviceaccount:dev:foo -n prod
  
# 检查我是否可以在当前命名空间中执行所有操作("*" 表示全部)
kubectl auth can-i '*' '*'

# 检查是否可以在命名空间 "foo" 中获取名为 "bar" 的 Job
kubectl auth can-i list jobs.batch/bar -n foo

# 检查我是否可以读取 Pod 日志
kubectl auth can-i get pods --subresource=log

# 检查是否可以访问 URL /logs/
kubectl auth can-i get /logs/

# 检查我是否可以批准 certificates.k8s.io
kubectl auth can-i approve certificates.k8s.io

# 列出命名空间 "foo" 中所有允许的操作
kubectl auth can-i --list --namespace=foo

选项

-A, --all-namespaces

如果为 true,则在所有命名空间中执行指定的操作。

-h, --help

关于 can-i 的帮助信息。

--list

如果为真,则打印所有允许的操作。

--no-headers

如果为真,则打印允许的操作而不打印标题。

-q, --quiet

如果为真,则抑制输出并仅返回退出代码。

--subresource string

子资源(例如 pod/log 或 deploy/scale)。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.7.2 - kubectl auth reconcile

简介

调和 RBAC 角色、角色绑定、集群角色和集群角色绑定对象的规则。

  • 如果需要,将创建缺失的对象,同时对于命名空间作用域的对象,其所归属的命名空间也会被创建。
  • 现有角色将被更新以包含输入对象中的权限,如果指定了 --remove-extra-permissions,则额外的权限会被删除。
  • 现有绑定将被更新以包含输入对象中的主体,如果指定了 --remove-extra-subjects,则额外的主体会被删除。
  • 对于 RBAC 资源,这种操作比 apply 更可取,因为能够对规则和主体作语义感知的合并。
kubectl auth reconcile -f FILENAME

示例

# 调和某文件中的 RBAC 资源
kubectl auth reconcile -f my-rbac-rules.yaml

选项

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

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

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

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

-f, --filename strings

包含要被调和的资源的文件名、目录或文件 URL 列表。

-h, --help

关于 reconcile 的帮助信息。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--remove-extra-permissions

如果为真,则删除之前添加到角色的额外权限。

--remove-extra-subjects

如果为真,则删除之前添加到角色绑定上的额外主体。

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.7.3 - kubectl auth whoami

简介

实验性功能:检查你的身份和属性(如所属的组、额外信息等)。

  • 此命令有助于让你了解当前用户属性,尤其是在 Kubernetes 集群中启用动态身份验证(例如令牌 Webhook、身份认证代理或 OIDC 提供程序)时。
kubectl auth whoami

示例

# 获取你的主体属性
kubectl auth whoami
  
# 以 JSON 格式获取主体属性
kubectl auth whoami -o json

选项

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

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

-h, --help

关于 whoami 的帮助信息。

-o, --output string

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

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.8 - kubectl autoscale

简介

创建一个自动扩缩器,自动选择并设置在 Kubernetes 集群中运行的 Pod 数量。

  • 按名称查找 Deployment、ReplicaSet、StatefulSet 或 ReplicationController,并创建使用给定资源作为参照指标的自动扩缩器。 自动扩缩器可以根据需要自动增加或减少系统内部署的 Pod 数量。
kubectl autoscale (-f FILENAME | TYPE NAME | TYPE/NAME) [--min=MINPODS] --max=MAXPODS [--cpu-percent=CPU]

示例

# 自动扩缩 Deployment "foo",其 Pod 数量在 2 到 10 之间,未指定目标 CPU 利用率,因此将使用默认的自动扩缩策略
kubectl autoscale deployment foo --min=2 --max=10
  
# 自动扩缩 ReplicationController "foo",其 Pod 数量在 1 到 5 之间,目标 CPU 利用率为 80%
kubectl autoscale rc foo --max=5 --cpu-percent=80

选项

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

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

--cpu-percent int32     默认值:-1

所有 Pod 的平均 CPU 利用率(以请求的 CPU 的百分比表示)目标。如果未指定或为负数,则将使用默认的自动扩缩策略。

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

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

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

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

-f, --filename strings

用于标识要自动扩缩的资源的文件名、目录或文件 URL 列表。

-h, --help

关于 autoscale 的帮助信息。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

--max int32     默认值:-1

自动扩缩器可设置的 Pod 数量上限(必需)。

--min int32     默认值:-1

自动扩缩器可以设置的 Pod 数量下限。如果未指定或为负数,服务器将应用默认值。

--name string

新创建对象的名称。如果未指定,则将使用输入资源的名称。

-o, --output string

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

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.9 - kubectl certificate

简介

修改证书资源。

kubectl certificate SUBCOMMAND

选项

-h, --help

关于 certificate 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.9.1 - kubectl certificate approve

简介

批准证书签名请求。

kubectl certificate approve 允许集群管理员批准证书签名请求(CSR)。 此操作通知证书签名控制器向请求者颁发具有 CSR 中请求属性的证书。

安全提示:取决于所请求的属性,被颁发的证书可能会授予请求者访问集群资源的权限, 或以所请求的身份进行身份验证的权限。在批准 CSR 之前,请确保你了解已签署的证书可以执行哪些操作。

kubectl certificate approve (-f FILENAME | NAME)

示例

# 批准 CSR 'csr-sqgzp'
kubectl certificate approve csr-sqgzp

选项

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

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

-f, --filename strings

文件名、目录或文件 URL,用于标识要更新的资源。

--force

在 CSR 已被批准的情况下更新 CSR。

-h, --help

approve 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.9.2 - kubectl certificate deny

简介

拒绝证书签名请求。

kubectl certificate deny 允许集群管理员拒绝证书签名请求 (CSR)。 此操作通知证书签名控制器不向请求者颁发证书。

kubectl certificate deny (-f FILENAME | NAME)

示例

# 拒绝 CSR 'csr-sqgzp'
kubectl certificate deny csr-sqgzp

选项

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

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

-f, --filename strings

文件名、目录或文件 URL,用于标识要更新的资源。

--force

在 CSR 已被拒绝的情况下更新 CSR。

-h, --help

deny 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.10 - kubectl cluster-info

简介

显示控制平面和带有标签 kubernetes.io/cluster-service=true 的 Service 的地址。 要进一步调试和诊断集群问题,请使用 "kubectl cluster-info dump"。

kubectl cluster-info [flags]

示例

# 打印控制平面和集群服务的地址
kubectl cluster-info

选项

-h, --help

关于 cluster-info 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.10.1 - kubectl cluster-info dump

简介

转储集群信息,适合于调试和诊断集群问题。默认情况下,将所有内容转储到 stdout。你可以使用 --output-directory 指定目录。如果指定目录,Kubernetes 将在该目录中构建一组文件。 默认情况下,仅转储当前命名空间和 "kube-system" 命名空间中的内容,但你也可以使用 --namespaces 标志切换到其他命名空间,或指定 --all-namespaces 以转储所有命名空间。

  • 该命令还会转储集群中所有 Pod 的日志;这些日志根据命名空间和 Pod 名称转储到不同的目录中。
kubectl cluster-info dump [flags]

示例

# 将当前集群状态转储到标准输出
kubectl cluster-info dump
  
# 将当前集群状态转储到 /path/to/cluster-state
kubectl cluster-info dump --output-directory=/path/to/cluster-state
  
# 将所有命名空间转储到标准输出
kubectl cluster-info dump --all-namespaces
  
# 将一组命名空间转储到 /path/to/cluster-state
kubectl cluster-info dump --namespaces default,kube-system --output-directory=/path/to/cluster-state

选项

-A, --all-namespaces

如果为真,则转储所有命名空间。 如果为真,则忽略 --namespaces。

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

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

-h, --help

dump 命令的帮助信息。

--namespaces strings

要转储的命名空间的逗号分隔列表。

-o, --output string     默认值:"json"

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

--output-directory string

输出文件的位置。如果为空或 "-",则使用 stdout,否则在该目录中创建目录层次结构。

--pod-running-timeout duration     默认值:20s

等待至少一个 Pod 运行的时长(例如 5s、2m 或 3h,大于零)。

--show-managed-fields

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

--template string

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

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.11 - kubectl completion

简介

输出指定 shell(bash、zsh、fish 或 powershell)的 shell 补全代码。 必须评估 shell 代码才能提供 kubectl 命令的交互式补全,这可以通过从 .bash_profile 中获取它来完成。

有关如何执行此操作的详细说明请参见此处:

zsh 用户注意事项:[1] zsh 补全仅支持 zsh >= 5.2 版本。

kubectl completion SHELL

示例

  # 使用 homebrew 在 macOS 上安装 bash-completion
  ## 如果运行 macOS 附带的 Bash 3.2
  brew install bash-completion
  ## 或者,如果运行的是 Bash 4.1+
  brew install bash-completion@2
  ## 如果通过 homebrew 安装了 kubectl,Shell 补全应该能够立即起作用
  ## 如果你通过其他方式安装,则可能需要将新的补全数据添加到补全目录中
  kubectl completion bash > $(brew --prefix)/etc/bash_completion.d/kubectl
  
  
  # 在 Linux 上安装 bash 补全
  ## 如果 Linux 上未安装 bash-completion,请通过发行版的包管理器安装 "bash-completion" 包。
  ## 将 bash 的 kubectl 补全代码加载到当前 shell 中
  source <(kubectl completion bash)
  ## 将 bash 补全代码写入文件并从 .bash_profile 中引用之
  kubectl completion bash > ~/.kube/completion.bash.inc
  printf "
  # kubectl shell completion
  source '$HOME/.kube/completion.bash.inc'
  " >> $HOME/.bash_profile
  source $HOME/.bash_profile
  
  # 将 zsh[1] 的 kubectl 补全代码加载到当前 shell 中
  source <(kubectl completion zsh)
  # 将 zsh[1] 的 kubectl 补全代码设置为在启动时自动加载
  kubectl completion zsh > "${fpath[1]}/_kubectl"
  
  
  # 将 fish[2] 的 kubectl 补全代码加载到当前 shell 中
  kubectl completion fish | source
  # 要为每个会话都加载补全代码,请执行一次如下命令:
  kubectl completion fish > ~/.config/fish/completions/kubectl.fish
  
  # 将 powershell 的 kubectl 补全代码加载到当前 shell 中
  kubectl completion powershell | Out-String | Invoke-Expression
  # 设置 powershell 的 kubectl 补全代码在启动时运行
  ## 将补全代码保存到脚本并在配置文件中执行
  kubectl completion powershell > $HOME\.kube\completion.ps1
  Add-Content $PROFILE "$HOME\.kube\completion.ps1"
  ## 执行配置文件中的补全代码
  Add-Content $PROFILE "if (Get-Command kubectl -ErrorAction SilentlyContinue) {
  kubectl completion powershell | Out-String | Invoke-Expression
  }"
  ## 直接将补全代码添加到 $PROFILE 脚本
  kubectl completion powershell >> $PROFILE

选项

-h, --help

关于 completion 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.12 - kubectl config

简介

使用 "kubectl config set current-context my-context" 等子命令修改 kubeconfig 文件。

加载顺序遵循以下规则:

  1. 如果设置了 --kubeconfig 标志,则仅加载该文件。该标志只能设置一次,并且不会发生合并。
  2. 如果设置了 $KUBECONFIG 环境变量,则将其用作路径列表(系统的正常路径分隔规则),这些路径会被合并。 当某个值被修改时,也会在定义这部分内容的文件中修改此值。当某个值被创建时,也会在存在的第一个文件中创建此值。 如果链中不存在文件,则它会创建列表中的最后一个文件。
  3. 否则,将使用 ${HOME}/.kube/config,并且不会发生合并。
kubectl config SUBCOMMAND

选项

-h, --help

关于 config 的帮助信息。

--kubeconfig string

使用特定的 kubeconfig 文件

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.1 - kubectl config current-context

简介

显示当前上下文。

kubectl config current-context [flags]

示例

# 显示当前上下文
kubectl config current-context

选项

-h, --help

关于 current-context 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.2 - kubectl config delete-cluster

简介

从 kubeconfig 中删除指定的集群。

kubectl config delete-cluster NAME

示例

# 删除 minikube 集群
kubectl config delete-cluster minikube

选项

-h, --help

关于 delete-cluster 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.3 - kubectl config delete-context

简介

从 kubeconfig 中删除指定的上下文。

kubectl config delete-context NAME

示例

# 删除 minikube 集群的上下文
kubectl config delete-context minikube

选项

-h, --help

关于 delete-context 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.4 - kubectl config delete-user

简介

从 kubeconfig 中删除指定用户。

kubectl config delete-user NAME

示例

# 删除 minikube 用户
kubectl config delete-user minikube

选项

-h, --help

关于 delete-user 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.5 - kubectl config get-clusters

简介

显示 kubeconfig 中定义的集群。

kubectl config get-clusters [flags]

示例

# 列出 kubectl 所知悉的集群
kubectl config get-clusters

选项

-h, --help

关于 get-clusters 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.6 - kubectl config get-contexts

简介

显示 kubeconfig 文件中的一个或多个上下文。

kubectl config get-contexts [(-o|--output=)name)]

示例

# 列出 kubeconfig 文件中的所有上下文
kubectl config get-contexts
  
# 描述 kubeconfig 文件中指定上下文的详细信息
kubectl config get-contexts my-context

选项

-h, --help

关于 get-contexts 的帮助信息。

--no-headers

当使用默认或自定义列输出格式时,不要打印标题(默认打印标题)。

-o, --output string

输出格式。可选值为:name。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.7 - kubectl config get-users

简介

显示 kubeconfig 中定义的用户。

kubectl config get-users [flags]

示例

# 列出 kubectl 知悉的用户
kubectl config get-users

选项

-h, --help

关于 get-users 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.8 - kubectl config rename-context

简介

重命名 kubeconfig 文件中的上下文。

  • CONTEXT_NAME 是要更改的上下文名称。
  • NEW_NAME 是要设置的新名称。
  • 注意:如果重命名的上下文是“当前上下文”,则该字段也将被更新。
kubectl config rename-context CONTEXT_NAME NEW_NAME

示例

# 将 kubeconfig 文件中上下文 "old-name" 重命名为 "new-name"
kubectl config rename-context old-name new-name

选项

-h, --help

关于 rename-context 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.9 - kubectl config set

简介

设置 kubeconfig 文件中的单个值。

  • PROPERTY_NAME 是一个以点分隔的名称,其中每个元素代表一个属性名称或一个键名。键名不得包含点。
  • PROPERTY_VALUE 是要设置的值。除非使用 --set-raw-bytes 标志,否则二进制字段(例如 certificate-authority-data )必须为经过 base64 编码的字符串。
  • 指定已存在的属性名称将把新字段值与现有值合并。
kubectl config set PROPERTY_NAME PROPERTY_VALUE

示例

# 将 my-cluster 集群的 server 字段设置为 https://1.2.3.4
kubectl config set clusters.my-cluster.server https://1.2.3.4
  
# 设置 my-cluster 集群的 certificate-authority-data 字段
kubectl config set clusters.my-cluster.certificate-authority-data $(echo "cert_data_here" | base64 -i -)
  
# 将 my-context 上下文中的 cluster 字段设置为 my-cluster
kubectl config set contexts.my-context.cluster my-cluster
  
# 使用 --set-raw-bytes 选项设置 cluster-admin 用户中的 client-key-data 字段
kubectl config set users.cluster-admin.client-key-data cert_data_here --set-raw-bytes=true

选项

-h, --help

关于 set 的帮助信息。

--set-raw-bytes tristate[=true]

写入 []byte 格式的 PROPERTY_VALUE 时,直接写入给定的字符串,无需 base64 解码。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.10 - kubectl config set-cluster

简介

设置 kubeconfig 中的集群条目。

  • 指定已存在的属性名称将把新字段值与现有值合并。
kubectl config set-cluster NAME [--server=server] [--certificate-authority=path/to/certificate/authority] [--insecure-skip-tls-verify=true] [--tls-server-name=example.com]

示例

# 仅设置 e2e 集群条目上的 server 字段,不触及其他值
kubectl config set-cluster e2e --server=https://1.2.3.4
  
# 在 e2e 集群条目中嵌入证书颁发机构的数据
kubectl config set-cluster e2e --embed-certs --certificate-authority=~/.kube/e2e/kubernetes.ca.crt
  
# 禁用 e2e 集群条目中的证书检查
kubectl config set-cluster e2e --insecure-skip-tls-verify=true
  
# 设置用于验证 e2e 集群条目的自定义 TLS 服务器名称
kubectl config set-cluster e2e --tls-server-name=my-cluster-name
  
# 设置 e2e 集群条目的代理 URL
kubectl config set-cluster e2e --proxy-url=https://1.2.3.4

选项

--certificate-authority string

kubeconfig 中集群条目的证书颁发机构文件的路径。

--embed-certs tristate[=true]

在 kubeconfig 中嵌入集群条目的证书。

-h, --help

关于 set-cluster 的帮助信息。

--insecure-skip-tls-verify tristate[=true]

设置 kubeconfig 中的集群条目的 insecure-skip-tls-verify 字段。

--proxy-url string

kubeconfig 中集群条目的代理地址。

--server string

kubeconfig 中集群条目的 server 字段。

--tls-server-name string

kubeconfig 中的集群条目的 tls-server-name 字段。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.11 - kubectl config set-context

简介

在 kubeconfig 中设置上下文条目。

  • 指定已存在的属性名称将把新字段值与现有值合并。
kubectl config set-context [NAME | --current] [--cluster=cluster_nickname] [--user=user_nickname] [--namespace=namespace]

示例

# 在 gce 上下文条目上设置用户字段,而不影响其他值
kubectl config set-context gce --user=cluster-admin

选项

--cluster string

kubeconfig 中上下文条目的集群。

--current

修改当前上下文。

-h, --help

关于 set-context 的帮助信息。

--namespace string

kubeconfig 中上下文条目的命名空间。

--user string

kubeconfig 中上下文条目的用户。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.12 - kubectl config set-credentials

简介

在 kubeconfig 中设置用户条目。

  • 指定已存在的属性名称将把新字段值与现有值合并。
    • 客户端证书标志:--client-certificate=certfile --client-key=keyfile
    • 持有者令牌标志:--token=bearer_token
    • 基本身份验证标志:--username=basic_user --password=basic_password
  • 持有者令牌和基本身份验证是互斥的(不可同时使用)。
kubectl config set-credentials NAME [--client-certificate=path/to/certfile] [--client-key=path/to/keyfile] [--token=bearer_token] [--username=basic_user] [--password=basic_password] [--auth-provider=provider_name] [--auth-provider-arg=key=value] [--exec-command=exec_command] [--exec-api-version=exec_api_version] [--exec-arg=arg] [--exec-env=key=value]

示例

# 仅设置 "cluster-admin" 条目上的 "client-key" 字段,不触及其他值
kubectl config set-credentials cluster-admin --client-key=~/.kube/admin.key
  
# 为 "cluster-admin" 条目设置基本身份验证
kubectl config set-credentials cluster-admin --username=admin --password=uXFGweU9l35qcif
  
# 在 "cluster-admin" 条目中嵌入客户端证书数据
kubectl config set-credentials cluster-admin --client-certificate=~/.kube/admin.crt --embed-certs=true
  
# 为 "cluster-admin" 条目启用 Google Compute Platform 身份认证提供程序
kubectl config set-credentials cluster-admin --auth-provider=gcp
  
# 使用附加参数为 "cluster-admin" 条目启用 OpenID Connect 身份认证提供程序
kubectl config set-credentials cluster-admin --auth-provider=oidc --auth-provider-arg=client-id=foo --auth-provider-arg=client-secret=bar
  
# 删除 "cluster-admin" 条目的 OpenID Connect 身份验证提供程序的 "client-secret" 配置值
kubectl config set-credentials cluster-admin --auth-provider=oidc --auth-provider-arg=client-secret-
  
# 为 "cluster-admin" 条目启用新的 exec 认证插件
kubectl config set-credentials cluster-admin --exec-command=/path/to/the/executable --exec-api-version=client.authentication.k8s.io/v1beta1
  
# 为 "cluster-admin" 条目启用新的、带交互模式的 exec 认证插件
kubectl config set-credentials cluster-admin --exec-command=/path/to/the/executable --exec-api-version=client.authentication.k8s.io/v1beta1 --exec-interactive-mode=Never
  
# 为 "cluster-admin" 条目定义新的 exec 认证插件参数
kubectl config set-credentials cluster-admin --exec-arg=arg1 --exec-arg=arg2
  
# 为 "cluster-admin" 条目创建或更新 exec 认证插件环境变量
kubectl config set-credentials cluster-admin --exec-env=key1=val1 --exec-env=key2=val2
  
# 删除 "cluster-admin" 条目的 exec 认证插件环境变量
kubectl config set-credentials cluster-admin --exec-env=var-to-remove-

选项

--auth-provider string

kubeconfig 中用户条目的身份验证提供程序。

--auth-provider-arg strings

身份验证提供程序参数,'key=value' 格式。

--client-certificate string

kubeconfig 中用户条目的客户端证书文件路径。

--client-key string

kubeconfig 中用户条目的客户端密钥文件路径。

--embed-certs tristate[=true]

在 kubeconfig 中嵌入用户条目的客户端证书/密钥。

--exec-api-version string

kubeconfig 中用户条目的 exec 凭据插件的 API 版本。

--exec-arg strings

kubeconfig 中用户条目的 exec 凭据插件命令的新参数。

--exec-command string

kubeconfig 中用户条目的 exec 凭据插件命令。

--exec-env strings

exec 凭证插件的环境变量,'key=value' 格式。。

--exec-interactive-mode string

kubeconfig 中用户条目的 exec 凭据插件的交互模式。

--exec-provide-cluster-info tristate[=true]

提供给 kubeconfig 中用户条目所使用的 exec 凭据插件的集群信息。

-h, --help

关于 set-credentials 的帮助信息。

--password string

kubeconfig 中用户条目的密码。

--token string

kubeconfig 中用户条目的 token。

--username string

kubeconfig 中用户条目的用户名。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.13 - kubectl config unset

简介

去除 kubeconfig 文件中的某个值的设置。

  • PROPERTY_NAME 是一个以点分隔的名称,其中每个元素代表一个属性名称或一个键名。键名不得包含点。
kubectl config unset PROPERTY_NAME

示例

# 去除 current-context 设置
kubectl config unset current-context
  
# 去掉 foo 上下文中的 namespace 设置
kubectl config unset contexts.foo.namespace

选项

-h, --help

关于 unset 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.14 - kubectl config use-context

简介

在 kubeconfig 文件中设置当前上下文。

kubectl config use-context CONTEXT_NAME

示例

# 使用 minikube 集群的上下文
kubectl config use-context minikube

选项

-h, --help

关于 use-context 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.12.15 - kubectl config view

简介

显示合并的 kubeconfig 配置或指定的 kubeconfig 文件。

  • 可以使用 --output jsonpath={...} 通过 jsonpath 表达式提取特定值。
kubectl config view [flags]

示例

  # 显示合并的 kubeconfig 设置
  kubectl config view
  
  # 显示合并的 kubeconfig 设置、原始证书数据和公开的密钥
  kubectl config view --raw
  
  # 获取 e2e 用户的密码
  kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}'

选项

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

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

--flatten

将生成的 kubeconfig 文件扁平化为自包含的输出(对于创建可移植的 kubeconfig 文件很有用)。

-h, --help

关于 view 的帮助信息。

--merge tristate[=true]     默认值:true

合并 kubeconfig 文件的完整层次结构数据。

--minify

从输出中删除当前上下文未使用的所有信息。

-o, --output string     默认值:"yaml"

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

--raw

显示原始字节数据和敏感数据。

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.13 - kubectl cordon

简介

将节点标记为不可调度的。

kubectl cordon NODE

示例

# 将节点 "foo" 标记为不可调度的
kubectl cordon foo

选项

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

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

-h, --help

cordon 操作的帮助命令。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.14 - kubectl cp

简介

将文件、目录复制到容器;或从容器复制文件、目录。

kubectl cp <file-spec-src> <file-spec-dest>

示例

# !!!重要提示!!!
# 要求你的容器镜像中存在 'tar' 可执行文件
# 如果 'tar' 不存在,'kubectl cp' 将会失败
#
# 对于符号链接、通配符扩展或文件模式保留等高级用例,考虑使用 'kubectl exec'

# 将本地文件 /tmp/foo 复制到远程命名空间 <some-namespace> 中 Pod 中的 /tmp/bar
tar cf - /tmp/foo | kubectl exec -i -n <some-namespace> <some-pod> -- tar xf - -C /tmp/bar

# 将 /tmp/foo 从远程 Pod 复制到本地的 /tmp/bar
kubectl exec -n <some-namespace> <some-pod> -- tar cf - /tmp/foo | tar xf - -C /tmp/bar

# 将本地目录 /tmp/foo_dir 复制到远程默认命名空间中 Pod 中的 /tmp/bar_dir
kubectl cp /tmp/foo_dir <some-pod>:/tmp/bar_dir

# 将本地文件 /tmp/foo 复制到远程 Pod 中特定容器内的 /tmp/bar
kubectl cp /tmp/foo <some-pod>:/tmp/bar -c <specific-container>

# 将本地文件 /tmp/foo 复制到远程命名空间 <some-namespace> 内 Pod 中的 /tmp/bar
kubectl cp /tmp/foo <some-namespace>/<some-pod>:/tmp/bar

# 将 /tmp/foo 从远程 Pod 复制到本地的 /tmp/bar
kubectl cp <some-namespace>/<some-pod>:/tmp/foo /tmp/bar

选项

-c, --container string

容器名称。如果省略,将使用 kubectl.kubernetes.io/default-container 注解来选择要被挂接的容器,或者选择 Pod 中的第一个容器。

-h, --help

cp 操作的帮助命令。

--no-preserve

被复制的文件/目录的所有权和权限将不会在容器中保留。

--retries int

设置从容器完成复制操作的重试次数。 指定 0 表示禁止重试,指定任何负值表示无限重试。默认值为 0(不重试)。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

表示对污点 NotReady:NoExecute 的容忍时长(以秒计)。 默认情况下,这一容忍度会被添加到尚未具有此容忍度的每个 Pod 中。

--default-unreachable-toleration-seconds int     默认值:300

表示对污点 unreachable:NoExecute 的容忍时长(以秒计)。 默认情况下,这一容忍度会被添加到尚未具有此容忍度的每个 Pod 中。

--disable-compression

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

--insecure-skip-tls-verify

如果为 true,则表示不会检查服务器证书的有效性。这样会导致你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求所用的 kubeconfig 文件的路径。

--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 集群管理器

2.15 - kubectl create

简介

基于文件或标准输入创建一个资源。

接受 JSON 和 YAML 格式。

kubectl create -f FILENAME

示例

# 使用 pod.json 中的数据创建一个 Pod
kubectl create -f ./pod.json

# 基于传入到标准输入的 JSON 创建一个 Pod
cat pod.json | kubectl create -f -

# 以 JSON 编辑 registry.yaml 中的数据,然后使用已编辑的数据来创建资源
kubectl create -f registry.yaml --edit -o json

选项

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

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

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

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

--edit

在创建之前编辑 API 资源。

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

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

-f, --filename strings

用于创建资源的文件名、目录或文件 URL。

-h, --help

create 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

--raw string

用于向服务器发送 POST 请求的原始 URI。使用 kubeconfig 文件中指定的传输方式。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--save-config

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

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--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]。

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

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

--windows-line-endings

仅在 --edit=true 时相关。默认为你所用平台原生的行结尾格式。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.1 - kubectl create clusterrole

简介

创建一个集群角色。

kubectl create clusterrole NAME --verb=verb --resource=resource.group [--resource-name=resourcename] [--dry-run=server|client|none]

示例

  # 创建一个名为 "pod-reader" 的集群角色,允许用户对 Pod 执行 "get"、"watch" 和 "list" 操作
  kubectl create clusterrole pod-reader --verb=get,list,watch --resource=pods
  
  # 创建一个名为 "pod-reader" 的集群角色,并指定 ResourceName
  kubectl create clusterrole pod-reader --verb=get --resource=pods --resource-name=readablepod --resource-name=anotherpod
  
  # 创建一个名为 "foo" 的集群角色,并指定 API 组
  kubectl create clusterrole foo --verb=get,list,watch --resource=rs.apps
  
  # 创建一个名为 "foo" 的集群角色,并指定 SubResource
  kubectl create clusterrole foo --verb=get,list,watch --resource=pods,pods/status
  
  # 创建一个名为 "foo" 的集群角色,并指定 NonResourceURL
  kubectl create clusterrole "foo" --verb=get --non-resource-url=/logs/*
  
  # 创建一个名为 "monitoring" 的集群角色,并指定 AggregationRule
  kubectl create clusterrole monitoring --aggregation-rule="rbac.example.com/aggregate-to-monitoring=true"

选项

--aggregation-rule <英文逗号分隔的 'key=value' 对>

用于组合 ClusterRole 的聚合标签选择算符。

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

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

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

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

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

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

-h, --help

clusterrole 操作的帮助命令。

--non-resource-url strings

用户应有权限访问的部分 URL。

-o, --output string

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

--resource strings

规则适用的资源。

--resource-name strings

规则适用的白名单中的资源,可以为多项重复使用此标志。

--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]。

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

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

--verb strings

适用于规则中所含资源的动词。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.2 - kubectl create clusterrolebinding

简介

为特定的集群角色创建一个集群角色绑定。

kubectl create clusterrolebinding NAME --clusterrole=NAME [--user=username] [--group=groupname] [--serviceaccount=namespace:serviceaccountname] [--dry-run=server|client|none]

示例

# 使用 cluster-admin 集群角色为 user1、user2 和 group1 创建一个集群角色绑定
kubectl create clusterrolebinding cluster-admin --clusterrole=cluster-admin --user=user1 --user=user2 --group=group1

选项

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

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

--clusterrole string

特定 ClusterRoleBinding 应引用的 ClusterRole。

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

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

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

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

--group strings

要绑定到 ClusterRole 的组。此标志可以被重复使用以添加多个组。

-h, --help

clusterrolebinding 操作的帮助命令。

-o, --output string

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

--save-config

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

--serviceaccount strings

要绑定到 ClusterRole 的服务账户,格式为 :。此标志可以被重复使用以添加多个服务账户。

--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]。

--user strings

要绑定到 ClusterRole 的用户名。此标志可以被重复使用以添加多个用户。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 服务器进行身份验证的持有者令牌。

--username string

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

--version version[=true]

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

--warnings-as-errors

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

另请参见

2.15.3 - kubectl create configmap

简介

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

一个 ConfigMap 可以包含一个或多个键/值对。

当你基于文件创建 ConfigMap 时,键默认为文件的基本名称,值默认为文件内容。 如果基本名称是无效的键,你可以指定一个替代键。

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

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

示例

  # 基于 bar 文件夹新建一个名为 my-config 的 ConfigMap
  kubectl create configmap my-config --from-file=path/to/bar
  
  # 新建一个名为 my-config 的 ConfigMap,使用指定的键而不是磁盘上的文件基本名称
  kubectl create configmap my-config --from-file=key1=/path/to/bar/file1.txt --from-file=key2=/path/to/bar/file2.txt
  
  # 新建一个名为 my-config 的 ConfigMap,包含 key1=config1 和 key2=config2
  kubectl create configmap my-config --from-literal=key1=config1 --from-literal=key2=config2
  
  # 从文件中的 key=value 对新建一个名为 my-config 的 ConfigMap
  kubectl create configmap my-config --from-file=path/to/bar
  
  # 从 env 文件新建一个名为 my-config 的 ConfigMap
  kubectl create configmap my-config --from-env-file=path/to/foo.env --from-env-file=path/to/bar.env

选项

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

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

--append-hash

将 ConfigMap 的哈希值追加到其名称上。

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

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

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

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

--from-env-file strings

指定文件的路径以读取 key=val 对的那些行来创建 ConfigMap。

--from-file strings

键文件可以使用其文件路径来指定,在这种情况下,文件的基本名称将用作 ConfigMap 的键。 另外,键文件也可以选择使用键和文件路径来指定,在这种情况下,将使用指定的键。 指定一个目录将遍历此目录中所有被命名的文件(其基本名称为有效的 ConfigMap 键)。

--from-literal strings

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

-h, --help

configmap 操作的帮助命令。

-o, --output string

输出格式。可选值为: json、yaml、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]。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.4 - kubectl create cronjob

简介

创建具有指定名称的 CronJob。

kubectl create cronjob NAME --image=image --schedule='0/5 * * * ?' -- [COMMAND] [args...] [flags]

示例

# 创建 CronJob
kubectl create cronjob my-job --image=busybox --schedule="*/1 * * * *"
  
# 创建带有命令的 CronJob
kubectl create cronjob my-job --image=busybox --schedule="*/1 * * * *" -- date

选项

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

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

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

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

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

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

-h, --help

cronjob 操作的帮助命令。

--image string

要运行的镜像名称。

-o, --output string

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

--restart string

Job 的重启策略。支持的值:OnFailure、Never

--save-config

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

--schedule string

Job 运行应使用的 Cron 格式的排期表。

--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]。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.5 - kubectl create deployment

简介

创建指定名称的 Deployment。

kubectl create deployment NAME --image=image -- [COMMAND] [args...]

示例

# 创建一个名为 my-dep 的 Deployment,它将运行 busybox 镜像
kubectl create deployment my-dep --image=busybox

# 创建一个带有命令的 Deployment
kubectl create deployment my-dep --image=busybox -- date

# 创建一个名为 my-dep 的 Deployment,它将运行 nginx 镜像并有 3 个副本
kubectl create deployment my-dep --image=nginx --replicas=3

# 创建一个名为 my-dep 的 Deployment,它将运行 busybox 镜像并公开端口 5701
kubectl create deployment my-dep --image=busybox --port=5701

# 创建一个名为 my-dep 的 Deployment,它将运行多个容器
kubectl create deployment my-dep --image=busybox:latest --image=ubuntu:latest --image=nginx

选项

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

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

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

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

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

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

-h, --help

deployment 操作的帮助命令。

--image strings

要运行的镜像名称。Deployment 可以为多容器 Pod 设置多个镜像。

-o, --output string

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

--port int32     默认值:-1

指定 Deployment 公开的 containerPort。

-r, --replicas int32     默认值:1

要创建的副本数。默认值为 1。

--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]。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.6 - kubectl create ingress

简介

创建指定名称的 Ingress。

kubectl create ingress NAME --rule=host/path=service:port[,tls[=secret]] 

示例

# 创建一个名为 'simple' 的 Ingress,使用 TLS 类别 Secret "my-cert"
# 将针对 foo.com/bar 的请求重定向到 svc1:8080
kubectl create ingress simple --rule="foo.com/bar=svc1:8080,tls=my-cert"
  
# 创建一个 Ingress,获取指向服务 svc:port 的所有 "/path" 请求,并将 Ingress Class 设置为 "otheringress"
kubectl create ingress catch-all --class=otheringress --rule="/path=svc:port"

# 创建含两个注解 ingress.annotation1 和 ingress.annotation2 的 Ingress
kubectl create ingress annotated --class=default --rule="foo.com/bar=svc:port" \
  --annotation ingress.annotation1=foo \
  --annotation ingress.annotation2=bla
  
# 创建具有相同主机和多个路径的 Ingress
kubectl create ingress multipath --class=default \
  --rule="foo.com/=svc:port" \
  --rule="foo.com/admin/=svcadmin:portadmin"
  
# 创建具有多个主机且 pathType 为 Prefix 的 Ingress
kubectl create ingress ingress1 --class=default \
  --rule="foo.com/path*=svc:8080" \
  --rule="bar.com/admin*=svc2:http"
  
# 创建使用默认 Ingress 证书来启用 TLS 且具备不同路径类型的 Ingress
kubectl create ingress ingtls --class=default \
  --rule="foo.com/=svc:https,tls" \
  --rule="foo.com/path/subpath*=othersvc:8080"
  
# 创建使用特定密钥来启用 TLS 且 pathType 为 Prefix 的 Ingress
kubectl create ingress ingsecret --class=default \
  --rule="foo.com/*=svc:8080,tls=secret1"
  
# 创建具有默认后端的 Ingress
kubectl create ingress ingdefault --class=default \
  --default-backend=defaultsvc:http \
  --rule="foo.com/*=svc:8080,tls=secret1"

选项

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

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

--annotation strings

要在 Ingress 对象中插入的注解,格式为 annotation=value

--class string

要被使用的 Ingress Class

--default-backend string

用作后端的默认服务,格式为 svcname:port

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

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

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

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

-h, --help

ingress 操作的帮助命令。

-o, --output string

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

--rule strings

规则格式为 host/path=service:port[,tls=secretname]。包含前导字符 '*' 的路径被视为 pathType=Prefix。 tls 参数是可选的。

--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]。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.7 - kubectl create job

简介

创建指定名称的 Job。

kubectl create job NAME --image=image [--from=cronjob/name] -- [COMMAND] [args...]

示例

# 创建一个 Job
kubectl create job my-job --image=busybox
  
# 创建带一条命令的 Job
kubectl create job my-job --image=busybox -- date
  
# 从名为 "a-cronjob" 的定时任务创建一个 Job
kubectl create job test-job --from=cronjob/a-cronjob

选项

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

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

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

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

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

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

--from string

要创建 Job 的资源的来源名称(仅支持 cronjob)。

-h, --help

job 操作的帮助命令。

--image string

要运行的镜像名称。

-o, --output string

输出格式。可选值为: json、yaml、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]。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.8 - kubectl create namespace

简介

用指定的名称创建命名空间。

kubectl create namespace NAME [--dry-run=server|client|none]

示例

# 新建一个名为 my-namespace 的命名空间
kubectl create namespace my-namespace

选项

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

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

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

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

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

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

-h, --help

namespace 操作的帮助命令。

-o, --output string

输出格式。可选值为: json、yaml、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]。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 服务器进行身份验证的持有者令牌。

--username string

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

--version version[=true]

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

--warnings-as-errors

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

另请参见

2.15.9 - kubectl create poddisruptionbudget

简介

创建具有指定名称、选择算符和预期最少可用 Pod 个数的 Pod 干扰预算。

kubectl create poddisruptionbudget NAME --selector=SELECTOR --min-available=N [--dry-run=server|client|none]

示例

# 创建一个名为 my-pdb 的 Pod 干扰预算,它将选择所有带有 app=rails 标签的 Pod
# 并要求至少有一个 Pod 在任何时候都是可用的
kubectl create poddisruptionbudget my-pdb --selector=app=rails --min-available=1
  
# 创建一个名为 my-pdb 的 Pod 干扰预算,它将选择所有带有 app=nginx 标签的 Pod
# 并要求在任何时候所选 Pod 中至少有一半是可用的
kubectl create pdb my-pdb --selector=app=nginx --min-available=50%

选项

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

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

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

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

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

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

-h, --help

poddisruptionbudget 操作的帮助命令。

--max-unavailable string

指定预算要求的最大不可用 Pod 个数或百分比。

--min-available string

指定预算要求的最小不可用 Pod 个数或百分比。

-o, --output string

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

--save-config

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

--selector string

指定预算所用的标签选择算符。仅支持基于等值的选择算符。

--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]。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.10 - kubectl create priorityclass

简介

创建带有指定名称、取值、globalDefault 设置及描述的优先级类对象。

kubectl create priorityclass NAME --value=VALUE --global-default=BOOL [--dry-run=server|client|none]

示例

# 创建一个名为 high-priority 的优先级类
kubectl create priorityclass high-priority --value=1000 --description="high priority"
  
# 创建一个名为 default-priority 的优先级类,并将其视为全局默认优先级
kubectl create priorityclass default-priority --value=1000 --global-default=true --description="default priority"
  
# 创建一个名为 high-priority 的优先级类,它不能抢占低优先级的 Pod
kubectl create priorityclass high-priority --value=1000 --description="high priority" --preemption-policy="Never"

选项

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

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

--description string

description 是一个任意字符串,通常提供有关何时应使用此优先级的指南。

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

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

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

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

--global-default

global-default 指定优先级类是否应被视为默认优先级。

-h, --help

priorityclass 操作的帮助命令。

-o, --output string

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

--preemption-policy string     默认值:"PreemptLowerPriority"

preemption-policy 是用于抢占低优先级 Pod 的策略。

--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]。

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

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

--value int32

指定优先级类的取值。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 服务器进行身份验证的持有者令牌。

--username string

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

--version version[=true]

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

--warnings-as-errors

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

另请参见

2.15.11 - kubectl create quota

简介

创建具有指定名称、硬性限制和可选范围的资源配额。

kubectl create quota NAME [--hard=key1=value1,key2=value2] [--scopes=Scope1,Scope2] [--dry-run=server|client|none]

示例

# 新建一个名为 my-quota 的资源配额
kubectl create quota my-quota --hard=cpu=1,memory=1G,pods=2,services=3,replicationcontrollers=2,resourcequotas=1,secrets=5,persistentvolumeclaims=10
  
# 新建一个名为 best-effort 的资源配额
kubectl create quota best-effort --hard=pods=100 --scopes=BestEffort

选项

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

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

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

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

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

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

--hard string

以逗号分隔的、用于定义硬性限制的资源数量(resource=quantity)对的集合。

-h, --help

quota 操作的帮助命令。

-o, --output string

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

--save-config

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

--scopes string

以逗号分隔的配额范围的集合,这些范围必须与配额跟踪的所有对象匹配。

--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]。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.12 - kubectl create role

简介

创建单一规则的角色。

kubectl create role NAME --verb=verb --resource=resource.group/subresource [--resource-name=resourcename] [--dry-run=server|client|none]

示例

# 创建一个名为 "pod-reader" 的角色,允许用户对 Pod 执行 "get"、"watch" 和 "list" 操作
kubectl create role pod-reader --verb=get --verb=list --verb=watch --resource=pods

# 创建一个名为 "pod-reader" 的角色,并指定资源名称
kubectl create role pod-reader --verb=get --resource=pods --resource-name=readablepod --resource-name=anotherpod

# 创建一个名为 "foo" 的角色,并指定 API 组
kubectl create role foo --verb=get,list,watch --resource=rs.apps

# 创建一个名为 "foo" 的角色,并指定子资源
kubectl create role foo --verb=get,list,watch --resource=pods,pods/status

选项

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

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

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

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

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

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

-h, --help

role 操作的帮助命令。

-o, --output string

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

--resource strings

规则适用的资源。

--resource-name strings

规则适用的白名单中的资源,可以为多项重复使用此标志。

--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]。

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

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

--verb strings

适用于规则中所含资源的动词。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.13 - kubectl create rolebinding

简介

为特定角色或集群角色创建角色绑定。

kubectl create rolebinding NAME --clusterrole=NAME|--role=NAME [--user=用户名] [--group=组名] [--serviceaccount=命名空间:服务账户名] [--dry-run=server|client|none]

示例

# 使用 admin 集群角色为 user1、user2 和 group1 创建角色绑定
kubectl create rolebinding admin --clusterrole=admin --user=user1 --user=user2 --group=group1
  
# 使用 admin 角色为服务账户 monitoring:sa-dev 创建角色绑定
kubectl create rolebinding admin-binding --role=admin --serviceaccount=monitoring:sa-dev

选项

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

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

--clusterrole string

指定 RoleBinding 应引用的 ClusterRole。

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

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

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

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

--group strings

要绑定到角色的组。此标志可以重复使用以添加多个组。

-h, --help

rolebinding 操作的帮助命令。

-o, --output string

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

--role string

指定 RoleBinding 应引用的角色。

--save-config

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

--serviceaccount strings

要绑定到角色的服务账户,格式为 `:`。此标志可以重复使用以添加多个服务账户。

--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]。

--user strings

要绑定到角色的用户名。此标志可以重复使用以添加多个用户。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.14 - kubectl create secret

简介

创建指定类型的 Secret:

  • docker-registry 类型 Secret 用于访问容器镜像仓库。

  • generic 类型 Secret 表示不透明 Secret 类型。

  • tls 类型 Secret 包含 TLS 证书及其关联密钥。

kubectl create secret (docker-registry | generic | tls)

选项

-h, --help

secret 操作的帮助命令。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.15 - kubectl create secret docker-registry

简介

新建一个 Docker 仓库所用的 Secret。

Dockercfg Secret 用于向 Docker 仓库进行身份认证。

当使用 Docker 命令行推送镜像时,你可以通过运行以下命令向给定的仓库进行身份认证:

docker login DOCKER_REGISTRY_SERVER --username=DOCKER_USER --password=DOCKER_PASSWORD --email=DOCKER_EMAIL

这一命令会生成一个 ~/.dockercfg 文件,后续的 docker pushdocker pull 命令将使用该文件向 Docker 仓库作身份认证。电子邮件地址是可选的。

在创建应用时,你可能有一个 Docker 仓库要求进行身份认证。为了让节点代表你拉取镜像,这些节点必须有凭据。 你可以通过创建一个 dockercfg Secret 并将其附加到你的服务帐户来提供这种凭据信息。

kubectl create secret docker-registry NAME --docker-username=user --docker-password=password --docker-email=email [--docker-server=string] [--from-file=[key=]source] [--dry-run=server|client|none]

示例

# 如果你还没有 .dockercfg 文件,可以直接创建一个 dockercfg Secret
kubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL
  
# 基于 ~/.docker/config.json 新建一个名为 my-secret 的 Secret
kubectl create secret docker-registry my-secret --from-file=path/to/.docker/config.json

选项

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

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

--append-hash

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

--docker-email string

用于访问 Docker 仓库的电子邮件。

--docker-password string

用于向 Docker 仓库作身份认证的密码。

--docker-server string     默认值:"https://index.docker.io/v1/"

Docker 仓库所在的服务器地址。

--docker-username string

Docker 仓库身份认证所用的用户名。

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

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

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

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

--from-file strings

密钥文件可以通过其文件路径指定,这种情况将为它们分配一个默认名称 .dockerconfigjson; 也可以选择指定名称和文件路径,这种情况将使用给定的名称。 指定一个目录将遍历目录中所有已命名的且是有效 Secret 密钥的文件。 对于此命令,密钥应始终为 .dockerconfigjson。

-h, --help

docker-registry 操作的帮助命令。

-o, --output string

输出格式。可选值为: json、yaml、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]。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.16 - kubectl create secret generic

简介

基于文件、目录或指定的文字值创建 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、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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.17 - kubectl create secret tls

简介

使用给定的公钥/私钥对创建 TLS Secret。

事先公钥/私钥对必须存在。公钥证书必须是以 .PEM 编码的,并且与给定的私钥匹配。

kubectl create secret tls NAME --cert=path/to/cert/file --key=path/to/key/file [--dry-run=server|client|none]

示例

# 使用给定的密钥对新建一个名为 tls-secret 的 TLS Secret
kubectl create secret tls tls-secret --cert=path/to/tls.crt --key=path/to/tls.key

选项

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

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

--append-hash

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

--cert string

PEM 编码的公钥证书的路径。

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

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

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

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

-h, --help

tls 操作的帮助命令。

--key string

与给定证书关联的私钥的路径。

-o, --output string

输出格式。可选值为: json、yaml、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]。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.18 - kubectl create service

简介

使用指定的子命令创建 Service。

kubectl create service [flags]

选项

-h, --help

service 操作的帮助命令。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.19 - kubectl create service clusterip

简介

创建指定名称的 ClusterIP Service。

kubectl create service clusterip NAME [--tcp=<port>:<targetPort>] [--dry-run=server|client|none]

示例

# 新建一个名为 my-cs 的 ClusterIP Service
kubectl create service clusterip my-cs --tcp=5678:8080
  
# 新建一个名为 my-cs 的 ClusterIP Service(无头模式)
kubectl create service clusterip my-cs --clusterip="None"

选项

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

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

--clusterip string

指定你自己的 ClusterIP 或设为 “None” 来创建无头服务(无负载均衡)。

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

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

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

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

-h, --help

clusterip 操作的帮助命令。

-o, --output string

输出格式。可选值为: json、yaml、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。

--tcp strings

端口对可以指定为 "<端口>:<目标端口>"。

--template string

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

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.20 - kubectl create service externalname

简介

创建指定名称的 ExternalName Service。

ExternalName Service 引用外部 DNS 地址,而不仅仅是 Pod, 这类 Service 允许应用作者引用平台外、其他集群或本地存在的服务。

kubectl create service externalname NAME --external-name external.name [--dry-run=server|client|none]

示例

# 新建一个名为 my-ns 的 ExternalName Service
kubectl create service externalname my-ns --external-name bar.com

选项

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

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

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

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

--external-name string

Service 对外的名称。

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

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

-h, --help

externalname 操作的帮助命令。

-o, --output string

输出格式。可选值为: json、yaml、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。

--tcp strings

端口对可以指定为 "<端口>:<目标端口>"。

--template string

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

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.21 - kubectl create service loadbalancer

简介

创建指定名称的 LoadBalancer 类型 Service。

kubectl create service loadbalancer NAME [--tcp=port:targetPort] [--dry-run=server|client|none]

示例

# 新建名为 my-lbs 的 LoadBalancer 类型 Service
kubectl create service loadbalancer my-lbs --tcp=5678:8080

选项

--allow-missing-template-keys     Default: true

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

--dry-run string[="unchanged"]     Default: "none"

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

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

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

-h, --help

关于 loadbalancer 的帮助信息。

-o, --output string

输出格式。可选值为: json、yaml、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。

--tcp strings

端口对可以指定为 "<端口>:<目标端口>"。

--template string

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

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.22 - kubectl create service nodeport

简介

创建一个指定名称的 NodePort 类型 Service。

kubectl create service nodeport NAME [--tcp=port:targetPort] [--dry-run=server|client|none]

示例

# 新建一个名为 my-ns 的 NodePort 类型 Service
kubectl create service nodeport my-ns --tcp=5678:8080

选项

--allow-missing-template-keys     Default: true

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

--dry-run string[="unchanged"]     Default: "none"

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

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

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

-h, --help

关于 nodeport 的帮助信息。

--node-port int

用于在集群中每个节点上公开 Service 的端口。

-o, --output string

输出格式。可选值为: json、yaml、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。

--tcp strings

端口对可以指定为 "<端口>:<目标端口>"。

--template string

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

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.23 - kubectl create serviceaccount

简介

创建指定名称的服务帐户。

kubectl create serviceaccount NAME [--dry-run=server|client|none]

示例

# 创建一个名为 my-service-account 的服务帐号
kubectl create serviceaccount my-service-account

选项

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

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

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

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

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

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

-h, --help

clusterrolebinding 操作的帮助命令。

-o, --output string

输出格式。可选值为: json、yaml、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。

--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。

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

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.15.24 - kubectl create token

简介

请求一个服务账号令牌。

kubectl create token SERVICE_ACCOUNT_NAME

示例

# 请求一个令牌,以当前命名空间中的服务账号 "myapp" 向 kube-apiserver 进行身份认证
kubectl create token myapp
  
# 为特定命名空间中的服务账号请求一个令牌
kubectl create token myapp --namespace myns
  
# 请求一个含自定义过期时间的令牌
kubectl create token myapp --duration 10m
  
# 请求一个包含特定受众的令牌
kubectl create token myapp --audience https://example.com
  
# 请求一个绑定到 Secret 对象实例的令牌
kubectl create token myapp --bound-object-kind Secret --bound-object-name mysecret
  
# 请求一个绑定到特定 UID 的 Secret 对象实例的令牌
kubectl create token myapp --bound-object-kind Secret --bound-object-name mysecret --bound-object-uid 0d4691ed-659b-4935-a832-355f77ee47cc

选项

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

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

--audience strings

所请求令牌的受众。如果不设置,默认请求一个用于 Kubernetes API 服务器的令牌。 可以重复使用此参数以便为多个受众请求有效的令牌。

--bound-object-kind string

要绑定令牌的目标对象的类别。支持的类别有 Node、Pod 和 Secret。 如果设置了此参数,则必须提供 `--bound-object-name`。

--bound-object-name string

要绑定令牌的目标对象的名称。当对象被删除时,令牌将会过期。需要指定 `--bound-object-kind`。

--bound-object-uid string

要绑定令牌的目标对象的 UID。需要同时指定 `--bound-object-kind` 和 `--bound-object-name`。 如果不设置,则使用现有对象的 UID。

--duration duration

对于将被颁发令牌,所请求的生命期。如果不设置或设置为 0,则生命期将由服务器自动确定。 服务器可能会返回一个生命期更长或更短的令牌。

-h, --help

token 操作的帮助命令。

-o, --output string

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

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.16 - kubectl debug

简介

使用交互式调试容器调试集群资源。

“debug” 针对按资源和名称标识的集群对象为常用的调试任务提供自动化操作。如果不指定资源,则默认使用 Pod。

“debug” 采取的操作因指定的资源而异。支持的操作包括:

  • 工作负载:创建现有 Pod 的副本并更改某些属性,例如将镜像标签更改为新版本。
  • 工作负载:向已运行的 Pod 中添加临时容器,例如在不重启 Pod 的情况下添加调试工具。
  • 节点:新建一个在节点的主机命名空间中运行并可以访问节点文件系统的 Pod。
kubectl debug (POD | TYPE[[.VERSION].GROUP]/NAME) [ -- COMMAND [args...] ]

示例

# 在名为 mypod 的 Pod 中创建一个交互式调试会话并立即挂接到此会话
kubectl debug mypod -it --image=busybox

# 为文件 pod.yaml 中的 Pod 创建一个交互式调试会话并立即挂接到此会话
# (需要在集群中启用 EphemeralContainers 特性)
kubectl debug -f pod.yaml -it --image=busybox

# 使用特定的自动调试镜像创建一个名为 debugger 的调试容器
kubectl debug --image=myproj/debug-tools -c debugger mypod

# 创建 mypod 的副本,添加调试容器并挂接到此容器
kubectl debug mypod -it --image=busybox --copy-to=my-debugger

# 创建 mypod 的副本,更改 mycontainer 的命令
kubectl debug mypod -it --copy-to=my-debugger --container=mycontainer -- sh

# 创建 mypod 的副本,将所有容器镜像更改为 busybox
kubectl debug mypod --copy-to=my-debugger --set-image=*=busybox

# 创建 mypod 的副本,添加调试容器并更改容器镜像
kubectl debug mypod -it --copy-to=my-debugger --image=debian --set-image=app=app:debug,sidecar=sidecar:debug

# 在节点上创建一个交互式调试会话并立即挂接到此会话
# 容器将在主机命名空间中运行,主机的文件系统将被挂载到 /host
kubectl debug node/mynode -it --image=busybox

选项

--arguments-only

如果指定,`--` 之后的所有内容将作为 Args 而不是作为 Command 传递给新容器。

--attach

如果为 true,则等待容器开始运行,然后就像以前调用 “kubectl attach ...” 一样执行挂接操作。 默认为 false,如果设置了 “-i/--stdin”,则默认为 true。

-c, --container string

调试容器要使用的容器名称。

--copy-to string

创建目标 Pod 的副本,并将副本命名为指定名称。

--custom string

包含部分容器规约的 JSON 或 YAML 文件的路径,用于自定义内置调试配置文件。

--env stringToString     默认值:[]

要在容器中设置的环境变量。

-f, --filename strings

标识要调试的资源。

-h, --help

debug 操作的帮助命令。

--image string

调试容器要使用的容器镜像。

--image-pull-policy string

容器的镜像拉取策略。如果留空,此值将不会由客户端指定,而是默认由服务器指定。

--keep-annotations

如果为真,则保留原始 Pod 的注解。 (此标志仅与 '--copy-to' 一起使用时才有效)

--keep-init-containers     Default: true

运行 Pod 的初始化容器,默认为 true。 (此标志仅与 '--copy-to' 一起使用时才有效)

--keep-labels

如果为真,则保留原始 Pod 的标签。 (此标志仅与 '--copy-to' 一起使用时才有效)

--keep-liveness

如果为真,则保留原始 Pod 的存活性检测。 (此标志仅与 '--copy-to' 一起使用时才有效)

--keep-readiness

如果为真,则保留原始 Pod 的就绪性探测。 (此标志仅与 '--copy-to; 一起使用时才有效)

--keep-startup

如果为真,则保留原始 Pod 的启动性检测。 (此标志仅与 '--copy-to' 一起使用时才有效)

--profile string     默认值:"legacy"

可选项包括 "legacy"、"general"、"baseline"、"netadmin"、"restricted" 或 "sysadmin"。

-q, --quiet

如果为 true,则抑制资讯类消息。

--replace

当与 “--copy-to” 一起使用时,删除原来的 Pod。

--same-node

当与 “--copy-to” 一起使用时,将目标 Pod 的副本调度到同一个节点上。

--set-image stringToString     默认值:[]

当与 “--copy-to” 一起使用时,提供一个 name=image 对的列表以更改容器镜像,类似于 `kubectl set image` 的工作方式。

--share-processes     默认值:true

当与 “--copy-to” 一起使用时,在副本中启用进程命名空间共享。

-i, --stdin

即使什么都没挂接,也要保持 Pod 中容器上的标准输入处于打开状态。

--target string

当使用临时容器时,将目标锁定为名称所指定的容器中的进程。

-t, --tty

为调试容器分配 TTY。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--match-server-version

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

-n, --namespace string

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

--password string

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

--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 集群管理器

2.17 - kubectl delete

简介

基于文件名、标准输入、资源和名称,或基于资源和标签选择算符来删除资源。

接受 JSON 和 YAML 格式。只能指定一种类型的参数:文件名、资源加名称,或资源加标签选择算符。

某些资源(如 Pod)支持体面删除。这些资源定义了在强制终止之前的默认时长(宽限期), 但你可以使用 --grace-period 标志覆盖该值,或传递 --now 将宽限期设置为 1。 由于这些资源通常代表集群中的实体,所以删除可能不会立即得到确认。 如果托管 Pod 的节点宕机或无法访问 API 服务器,则终止所用的时间可能比宽限期长得多。 要强制删除某资源,你必须指定 --force 标志。 注意:只有一部分资源支持体面删除。如果不支持体面删除,--grace-period 标志将被忽略。

重要提示:强制删除 Pod 不会等待确认 Pod 的进程已被终止, 这可能会导致直到节点检测到删除请求并完成体面删除之前,Pod 中的进程一直继续运行。 如果你的进程使用共享存储或与远程 API 通信并依赖 Pod 的名称来标识自己,强制删除这些 Pod 可能会导致在不同机器上运行的多个进程使用相同的标识,从而可能导致数据损坏或不一致。 只有在你确定 Pod 已被终止或你的应用可以容忍同时运行相同 Pod 的多个副本时,才可以强制删除 Pod。 此外,如果你强制删除 Pod,调度器可能会在节点释放这些资源之前在这些节点上调度新的 Pod,从而使得 Pod 被立即驱逐。

请注意,删除命令不会检查资源版本,因此如果有人在你提交删除指令时提交了资源更新指令, 他们的更新请求将与剩余的资源一起丢失。

在 CustomResourceDefinition 被删除之后,对发现缓存的的刷新可能需要长达 6 小时的时长。 如果你不想等待,可以运行 "kubectl api-resources" 来刷新发现缓存。

kubectl delete ([-f FILENAME] | [-k DIRECTORY] | TYPE [(NAME | -l label | --all)])

示例

# 使用 pod.json 中指定的类型和名称删除一个 Pod
kubectl delete -f ./pod.json

# 基于包含 kustomization.yaml 的目录(例如 dir/kustomization.yaml)中的内容删除资源
kubectl delete -k dir

# 删除所有以 '.json' 结尾的文件中的资源
kubectl delete -f '*.json'

# 基于传递到标准输入的 JSON 中的类型和名称删除一个 Pod
cat pod.json | kubectl delete -f -

# 删除名称为 "baz" 和 "foo" 的 Pod 和 Service
kubectl delete pod,service baz foo

# 删除打了标签 name=myLabel 的 Pod 和 Service
kubectl delete pods,services -l name=myLabel

# 以最小延迟删除一个 Pod
kubectl delete pod foo --now

# 强制删除一个死节点上的 Pod
kubectl delete pod foo --force

# 删除所有 Pod
kubectl delete pods --all

# 仅在用户确认删除的情况下删除所有 Pod
kubectl delete pods --all --interactive

选项

--all

删除指定资源类型的命名空间中的所有资源。

-A, --all-namespaces

如果存在,则列举所有命名空间中请求的对象。 即使使用 --namespace 指定,当前上下文中的命名空间也会被忽略。

--cascade string[="background"]     默认值:"background"

必须是 "background"、"orphan" 或 "foreground"。 选择依赖项(例如,由 ReplicationController 创建的 Pod)的删除级联策略, 默认为 background。

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

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

--field-selector string

过滤所用的选择算符(字段查询),支持 '='、'==' 和 '!='。 (例如 --field-selector key1=value1,key2=value2)。服务器针对每种类型仅支持有限数量的字段查询。

-f, --filename strings

包含要删除的资源的文件名。

--force

如果为真,则立即从 API 中移除资源并略过体面删除处理。 请注意,立即删除某些资源可能会导致不一致或数据丢失,并且需要确认操作。

--grace-period int     默认值:-1

指定给资源的体面终止时间(以秒为单位)。 如果为负数则忽略,为 1 表示立即关闭。 仅当 --force 为真(强制删除)时才可以设置为 0。

-h, --help

delete 操作的帮助命令。

--ignore-not-found

将 “resource not found” 视为成功删除。当指定 --all 参数时,默认值为 “true”。

-i, --interactive

如果为 true,仅在用户确认时删除资源。

-k, --kustomize string

处理 kustomization 目录,此标志不能与 -f 或 -R 一起使用。

--now

如果为 true,资源将被标记为立即关闭(等同于 --grace-period=1)。

-o, --output string

输出模式。使用 “-o name” 以获得更简短的输出(resource/name)。

--raw string

向服务器发送 DELETE 请求所用的原始 URI。使用 kubeconfig 文件中指定的传输方式。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--timeout duration

放弃删除之前等待的时间长度,为 0 表示根据对象的大小确定超时。

--wait     默认值:true

如果为 true,则等待资源消失后再返回。此参数会等待终结器被清空。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.18 - kubectl describe

简介

显示某个特定资源或某组资源的细节。

打印所选资源的详细描述,包括事件或控制器等相关资源。 你可以通过名称选择单个对象,选择该类型的所有对象,提供名称前缀或标签选择算符。例如:

kubectl describe TYPE NAME_PREFIX

这条命令将首先检查与 TYPE 和 NAME_PREFIX 的精确匹配。 如果不存在这样的资源,它将输出名称以 NAME_PREFIX 为前缀的所有资源的细节。

使用 "kubectl api-resources" 获取受支持资源的完整列表。

kubectl describe (-f FILENAME | TYPE [NAME_PREFIX | -l label] | TYPE/NAME)

示例

# 描述一个节点
kubectl describe nodes kubernetes-node-emt8.c.myproject.internal
  
# 描述一个 Pod
kubectl describe pods/nginx
  
# 描述在 "pod.json" 中通过类别和名称标识的 Pod
kubectl describe -f pod.json
  
# 描述所有 Pod
kubectl describe pods
  
# 描述带标签 name=myLabel 的 Pod
kubectl describe pods -l name=myLabel
  
# 描述由 “frontend” 副本控制器管理的所有 Pod
# (副本控制器所创建的 Pod 在 Pod 名称中带有此副本控制器的名称作为前缀)
kubectl describe pods frontend

选项

-A, --all-namespaces

如果存在,则列举所有命名空间中请求的对象。 即使使用 --namespace 指定,当前上下文中的命名空间也会被忽略。

--chunk-size int     默认值:500

以块的形式返回大的列表,而不是一次性全部返回。设为 0 表示禁用。 此标志处于 Beta 阶段,未来可能会有变更。

-f, --filename strings

文件名、目录或文件 URL 的列表,包含要描述的资源。

-h, --help

describe 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--show-events     默认值:true

如果为 true,显示与所描述对象相关的事件。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.19 - kubectl diff

简介

对比当前在线配置与通过文件名或标准输入所指定的配置之间的差异,并显示如果应用配置后将会如何变化。

输出始终是 YAML。

KUBECTL_EXTERNAL_DIFF 环境变量可用于选择你自己的 diff 命令。 用户也可以使用带参数的外部命令,例如:

KUBECTL_EXTERNAL_DIFF="colordiff -N -u"

默认情况下,路径中可用的 "diff" 命令在运行时会附带 "-u"(统一差异)和 "-N"(将缺失的文件视为空)选项。

退出状态:0 表示未发现差异。1 表示发现差异。>1 表示 kubectl 或 diff 发生错误。

注意:如果使用 KUBECTL_EXTERNAL_DIFF,则需要遵循该约定。

kubectl diff -f FILENAME

示例

# 对比 pod.json 中包含的资源
kubectl diff -f pod.json
  
# 对比从标准输入读取到的文件
cat service.yaml | kubectl diff -f -

选项

--concurrency int     默认值:1

在与当前版本进行差异比较时并行处理的对象的数量。 数量越多,速度越快,但在短时间内会消耗更多的内存、I/O 和 CPU 等资源。

--field-manager string     默认值:"kubectl-client-side-apply"

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

-f, --filename strings

包含 diff 操作所用配置的文件名、目录或指向文件的 URL。

--force-conflicts

如果为 true,服务器端应用将基于冲突强制进行更改。

-h, --help

diff 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

--prune

包含将通过裁剪操作被删除的资源。可以与 -l 一起使用,默认显示所有将被裁剪的资源。

--prune-allowlist strings

使用 <group/version/kind> 覆写默认的允许列表以执行 --prune 操作。

-R, --recursive

以递归方式处理以 -f 或 --filename 指定的目录。当你希望管理在同一目录中组织的相关清单时,这很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--server-side

如果为 true,应用操作将在服务器上运行,而不是在客户端运行。

--show-managed-fields

如果为 true,则在 diff 中包含托管的字段。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.20 - kubectl drain

简介

腾空节点以准备维护。

给定节点将被标记为不可调度,以防止新的 Pod 调度到此。 如果 API 服务器支持 Eviction, 则 "drain" 会驱逐 Pod。否则,它将使用常规的 DELETE 来删除 Pod。 "drain" 会驱逐或删除除镜像 Pod(无法通过 API 服务器删除)之外的所有 Pod。 如果存在 DaemonSet 管理的 Pod,若没有 --ignore-daemonsets,"drain" 将不会继续执行, 无论如何,"drain" 操作都不会删除 Daemonset 所管理的任何 Pod,因为这些 Pod 会立即被 DaemonSet 控制器替换, 如果有 Pod 既不是镜像 Pod,也不是由 ReplicationController、ReplicaSet、DaemonSet、StatefulSet 或 Job 管理, 则 "drain" 不会删除此 Pod,除非你使用 --force。如果一个或多个 Pod 的管理资源丢失,--force 还将允许继续删除。

"drain" 等待体面终止。在命令完成之前,不应在机器上进行操作。

当你准备好将节点重新投入使用时,请使用 kubectl uncordon,这将使节点再次可调度。

kubectl drain NODE

示例

# 腾空节点 "foo",即使上面有不受 ReplicationController、ReplicaSet、Job、DaemonSet 或 StatefulSet 管理的 Pod
kubectl drain foo --force
  
# 与上条命令类似,但如果存在不受 ReplicationController、ReplicaSet、Job、DaemonSet 或 StatefulSet 管理的 Pod,则中止,并使用 15 分钟的宽限期
kubectl drain foo --grace-period=900

选项

--chunk-size int     默认值:500

以块的形式返回大的列表,而不是一次性全部返回。设为 0 表示禁用。 此标志处于 Beta 阶段,未来可能会有变更。

--delete-emptydir-data

即使存在使用 emptyDir(腾空节点时将被删除的本地数据)的 Pod,也要继续。

--disable-eviction

强制使用删除操作来进行节点腾空,即使系统支持驱逐操作。 这种设置将绕过检查 PodDisruptionBudget 约束,请谨慎使用。

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

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

--force

即使存在未声明控制器的 Pod,也要继续。

--grace-period int     默认值:-1

给予每个 Pod 体面终止的时间段长度(以秒为单位)。如果为负,则将使用 Pod 中指定的默认值。

-h, --help

关于 drain 的帮助信息。

--ignore-daemonsets

忽略 DaemonSet 所控制的 Pod。

--pod-selector string

用于过滤节点上 Pod 的标签选择器。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--skip-wait-for-delete-timeout int

如果 Pod 的 DeletionTimestamp 比当前时间早 N 秒,那么跳过等待该 Pod 的过程。 秒数必须大于 0 才能跳过等待。

--timeout duration

在放弃之前等待的时间长度,为 0 表示无限等待。

--as string

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

--as-group strings

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

--as-uid string

操作所用的伪装 UID。

--cache-dir string     Default: "$HOME/.kube/cache"

默认缓存目录。

--certificate-authority string

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

--client-certificate string

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

--client-key string

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

--cluster string

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

--context string

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

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--match-server-version

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

-n, --namespace string

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

--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 集群管理器

2.21 - kubectl edit

简介

用默认编辑器编辑资源。

  • edit 命令允许你直接编辑可通过命令行工具检索的任何 API 资源。 它将打开由 KUBE_EDITOR 或 EDITOR 环境变量定义的编辑器,或者回退到使用 Linux 的 "vi" 或 Windows 的 "notepad"。 当尝试打开编辑器时,它将首先尝试使用 "SHELL" 环境变量中定义的 shell。 如果未定义,将使用默认的 shell,在 Linux 中为 "/bin/bash",在 Windows 中为 "cmd"。

  • 你可以编辑多个对象,但一次只会应用一个更改。该命令接受文件名和命令行参数,尽管你指向的文件必须是以前保存的资源版本。

  • edit 是通过用于获取资源的 API 版本完成的。要编辑特定 API 版本的资源,请完全限定资源、版本和组。

  • 默认格式为 YAML。要以 JSON 格式进行编辑,请指定 "-o json"。

  • --windows-line-endings 标志可用于强制 Windows 行结束,否则将使用操作系统的默认值。

  • 如果更新时发生错误,将在磁盘上创建一个临时文件,其中包含未应用的更改。 更新资源时最常见的错误是另一个编辑器更改了服务器上的资源。发生这种情况时, 你必须在应用到较新版本的资源进行更新,或更新临时保存的副本以包含最新的资源版本。

kubectl edit (RESOURCE/NAME | -f FILENAME)

示例

# 编辑名为 "registry" 的 Service
kubectl edit svc/registry
  
# 使用替代编辑器
KUBE_EDITOR="nano" kubectl edit svc/registry
  
# 使用 v1 API 格式编辑 JSON 中的 Job "myjob"
kubectl edit job.v1.batch/myjob -o json
  
# 在 YAML 中编辑 Deployment "mydeployment" 并将修改后的配置保存在其注解中
kubectl edit deployment/mydeployment -o yaml --save-config
  
# 编辑 "mydeployment" Deployment 的 "status" 子资源
kubectl edit deployment mydeployment --subresource='status'

选项

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

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

--field-manager string     Default: "kubectl-edit"

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

-f, --filename strings

用于编辑资源的文件名、目录或文件 URL 的列表。

-h, --help

关于 edit 的帮助信息。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

--output-patch

如果资源被编辑,则输出补丁。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--save-config

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

--show-managed-fields

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

--subresource string

如果指定,edit 将对所请求对象的子资源进行操作。 (目前)只能是 status 子资源。 该标志处于 Beta 状态,将来可能会发生变化。

--template string

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

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

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

--windows-line-endings

仅在 --edit=true 时相关。默认为你所用平台原生的行结尾格式。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.22 - kubectl events

简介

显示事件。

打印一张包含与事件相关的最重要信息的表格。 你可以请求某个命名空间的事件、所有命名空间的事件,或者仅过滤出与指定资源相关的事件。

kubectl events [(-o|--output=)json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file] [--for TYPE/NAME] [--watch] [--types=Normal,Warning]

示例

# 列举 default 命名空间中近期的事件
kubectl events
  
# 列举所有命名空间中近期的事件
kubectl events --all-namespaces
  
# 列举指定 Pod 的近期事件,然后等待更多事件,并在出现新事件时列举出来
kubectl events --for pod/web-pod-13je7 --watch
  
# 以 YAML 格式列举近期的事件
kubectl events -oyaml
  
# 仅列举类别为 “Warning” 或 “Normal” 的近期事件
kubectl events --types=Warning,Normal

选项

-A, --all-namespaces

如果存在,则列举所有命名空间中请求的对象。 即使使用 --namespace 指定,当前上下文中的命名空间也会被忽略。

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

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

--chunk-size int     默认值:500

以块的形式返回大的列表,而不是一次性全部返回。设为 0 表示禁用。 此标志处于 Beta 阶段,未来可能会有变更。

--for string

仅过滤与指定资源相关的事件。

-h, --help

events 操作的帮助命令。

--no-headers

在使用默认的输出格式时不打印表头。

-o, --output string

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

--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]。

--types strings

仅输出指定类型的事件。

-w, --watch

列举请求的事件后,继续监视更多事件。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理

2.23 - kubectl exec

简介

在容器中执行命令。

kubectl exec (POD | TYPE/NAME) [-c CONTAINER] [flags] -- COMMAND [args...]

示例

  # 在 Pod mypod 中执行 'date' 命令获取输出,默认在第一个容器中执行
  kubectl exec mypod -- date
  
  # 在 Pod mypod 的 ruby-container 容器中执行 'date' 命令并获取输出
  kubectl exec mypod -c ruby-container -- date
  
  # 切换到原始终端模式;从 Pod mypod 将 stdin 发送到 ruby-container 中的 'bash',
  # 并将 stdout/stderr 从 'bash' 发送回客户端
  kubectl exec mypod -c ruby-container -i -t -- bash -il
  
  # 在 Pod mypod 的第一个容器中列出 /usr 的内容,并按修改时间排序
  # 如果你要在 Pod 中执行的命令具有任何与 kubectl 本身重叠的标志(例如 -i),
  # 则必须使用两个破折号(--)来分隔命令的标志/参数
  # 另请注意,不要用引号括住你的命令及其标志/参数,
  # 除非这是你正常执行它的方式(即执行 ls -t /usr,而不是 "ls -t /usr")
  kubectl exec mypod -i -t -- ls -t /usr
  
  # 在 Deployment mydeployment 中的第一个 Pod 运行 'date' 命令并获取输出,默认使用 Pod 的第一个容器
  kubectl exec deploy/mydeployment -- date
  
  # 在 Service myservice 的第一个 Pod 运行 'date' 命令并获取输出,默认使用 Pod 的第一个容器
  kubectl exec svc/myservice -- date

选项

-c, --container string

容器名称。 如果省略,则使用 kubectl.kubernetes.io/default-container 注解来选择要挂接的容器, 否则将选择 Pod 中的第一个容器。

-f, --filename strings

用于在资源中执行的文件。

-h, --help

关于 exec 的帮助信息。

--pod-running-timeout duration     默认:1m0s

等待至少一个 Pod 运行的时间长度(例如 5 秒、2 分钟或 3 小时,大于零)。

-q, --quiet

仅打印远程会话的输出。

-i, --stdin

将 stdin 传递给容器。

-t, --tty

Stdin 是一个 TTY。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.24 - kubectl explain

简介

描述各种资源的字段和结构。

此命令描述与每个被支持的 API 资源关联的字段。 这些字段通过一个简单的 JSONPath 标识符进行识别:

<类型>.<字段名>[.<字段名>]

有关每个字段的信息是以 OpenAPI 格式从服务器中检索而来的。

使用 "kubectl api-resources" 获取受支持的资源的完整列表。

kubectl explain TYPE [--recursive=FALSE|TRUE] [--api-version=api-version-group] [--output=plaintext|plaintext-openapiv2]

示例

# 获取资源及其字段的文档
kubectl explain pods
  
# 获取资源中的所有字段
kubectl explain pods --recursive
  
# 获取被支持的 API 版本中 Deployment 的解释
kubectl explain deployments --api-version=apps/v1
  
# 获取资源中特定字段的文档
kubectl explain pods.spec.containers
  
# 获取资源的不同格式的文档
kubectl explain deployment --output=plaintext-openapiv2

选项

--api-version string

使用资源的给定的 API 版本(组/版本)。

-h, --help

explain 操作的帮助命令。

--output string     默认值:"plaintext"

渲染模式的格式。有效值为:(plaintext、plaintext-openapiv2)。

--recursive

如果为真,递归打印所有字段的名称。否则,打印可用字段及其描述。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群控制器

2.25 - kubectl expose

简介

将资源公开为新的 Kubernetes 服务。

基于名称查找 Deployment、Service、ReplicaSet、ReplicationController 或 Pod, 并将该资源的选择算符用作指定端口上新服务的选择算符。 只有当 Deployment 或 ReplicaSet 的选择算符可转换为服务支持的选择算符 (即选择算符仅包含 matchLabels 部分)时,才会将其公开为服务。 请注意,如果未通过 --port 指定端口且所公开的资源有多个端口, 则新服务将重用所有这些端口。此外,如果未指定标签,新服务将重用它所公开的资源的标签。

可能的资源包括(不区分大小写):

pod (po),service (svc),replicationcontroller (rc),deployment (deploy),replicaset (rs)

kubectl expose 命令的格式为:

kubectl expose (-f FILENAME | TYPE NAME) [--port=port] [--protocol=TCP|UDP|SCTP] [--target-port=number-or-name] [--name=name] [--external-ip=external-ip-of-service] [--type=type]

示例

# 为多副本的 nginx 创建一个服务,服务端口为 80,通过端口 8000 连接到容器
kubectl expose rc nginx --port=80 --target-port=8000

# 为在 "nginx-controller.yaml" 中以 type 和 name 指定的 ReplicationController 创建一个服务
# 服务端口为 80,通过端口 8000 连接到容器
kubectl expose -f nginx-controller.yaml --port=80 --target-port=8000

# 为名为 valid-pod 的 Pod 创建一个服务,服务端口为 444,名称为 "frontend"
kubectl expose pod valid-pod --port=444 --name=frontend

# 基于上述服务创建第二个服务,将容器端口 8443 公开为端口 443,名称为 "nginx-https"
kubectl expose service nginx --port=443 --target-port=8443 --name=nginx-https

# 为在端口 4100 上平衡 UDP 流量的多副本流应用创建一个服务,名称为 “video-stream”
kubectl expose rc streamer --port=4100 --protocol=UDP --name=video-stream

# 为使用 ReplicaSet 的多副本 nginx 创建一个服务,服务端口为 80,通过端口 8000 连接到容器
kubectl expose rs nginx --port=80 --target-port=8000

# 为 nginx Deployment 创建一个服务,服务端口为 80,通过端口 8000 连接到容器
kubectl expose deployment nginx --port=80 --target-port=8000

选项

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

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

--cluster-ip string

要指派给服务的 ClusterIP。留空表示自动分配,或设置为 “None” 以创建无头服务。

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

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

--external-ip string

服务要接受的附加外部 IP 地址(不由 Kubernetes 管理)。 如果此 IP 被路由到某个节点,则除了生成的服务 IP 之外,还可以通过此 IP 访问服务。

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

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

-f, --filename strings

文件名、目录或文件 URL 列表,用于标识要公开服务的资源。

-h, --help

expose 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-l, --labels string

要应用到此子命令所创建的服务上的标签。

--load-balancer-ip string

要指派给负载均衡器的 IP。如果为空,将创建并使用一个临时 IP(具体取决于云提供商)。

--name string

新建对象的名称。

-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 字段。

--port string

应该用于提供服务的端口。如果不指定,则从正被公开的资源复制。

--protocol string

要创建的服务的网络协议。默认是 “TCP”。

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--save-config

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

--selector string

指定服务所用的标签选择算符。仅支持基于等式的选择算符需求。 如果为空(默认值),则从 ReplicationController 或 ReplicaSet 中推断选择算符。

--session-affinity string

如果非空,将服务的会话亲和性设置为此值;有效值为:“None”、“ClientIP”。

--show-managed-fields

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

--target-port string

容器上服务应将流量导向的端口名称或端口号。可选。

--template string

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

--type string

此服务的类别:ClusterIP、NodePort、LoadBalancer 或 ExternalName。默认是 “ClusterIP”。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.26 - kubectl get

简介

显示一个或多个资源。

打印一张包含与指定资源相关的最重要信息的表格。 你可以使用标签选择算符(--selector 标志)来过滤列表。 如果所请求的资源类型是命名空间作用域的,你只会看到当前命名空间中的结果, 除非你传递 --all-namespaces 参数。

通过将输出指定为 “template” 并提供一个 Go 模板作为 --template 标志的值,你可以过滤所读取资源的属性。

使用 "kubectl api-resources" 获取受支持的资源的完整列表。

kubectl get [(-o|--output=)json|yaml|name|go-template|go-template-file|template|templatefile|jsonpath|jsonpath-as-json|jsonpath-file|custom-columns|custom-columns-file|wide] (TYPE[.VERSION][.GROUP] [NAME | -l label] | TYPE[.VERSION][.GROUP]/NAME ...) [flags]

示例

# 以 ps 输出格式列举所有 Pod
kubectl get pods
  
# 以 ps 输出格式列举所有 Pod,并提供更多信息(如节点名称)
kubectl get pods -o wide
  
# 以 ps 输出格式列举指定名称的单个副本控制器
kubectl get replicationcontroller web
  
# 以 JSON 输出格式列举 "apps" API 组 "v1" 版本中的 Deployment
kubectl get deployments.v1.apps -o json
  
# 以 JSON 输出格式列举单个 Pod
kubectl get -o json pod web-pod-13je7
  
# 以 JSON 输出格式列举在 "pod.yaml" 中以 type 和 name 指定的 Pod
kubectl get -f pod.yaml -o json
  
# 列举 kustomization.yaml 所在目录(例如 dir/kustomization.yaml)中的资源
kubectl get -k dir/
  
# 仅返回指定 Pod 的 phase 值
kubectl get -o template pod/web-pod-13je7 --template={{.status.phase}}
  
# 在自定义列中列举资源信息
kubectl get pod test-pod -o custom-columns=CONTAINER:.spec.containers[0].name,IMAGE:.spec.containers[0].image
  
# 以 ps 输出格式同时列举所有副本控制器和服务
kubectl get rc,services
  
# 按类型和名称列举一个或多个资源
kubectl get rc/web service/frontend pods/web-pod-13je7
  
# 列举单个 Pod 的 “status” 子资源
kubectl get pod web-pod-13je7 --subresource status

# 列出 “backend” 命名空间中的所有 Deployment
kubectl get deployments.apps --namespace backend
  
# 列出所有命名空间中存在的所有 Pod
kubectl get pods --all-namespaces

选项

-A, --all-namespaces

如果存在此标志,则跨所有命名空间列举所请求的对象。 即使使用 --namespace 指定了命名空间,当前上下文中的命名空间也会被忽略。

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

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

--chunk-size int     默认值:500

以块的形式返回大的列表,而不是一次性全部返回。设为 0 表示禁用。 此标志处于 Beta 阶段,未来可能会有变更。

--field-selector string

过滤所用的选择算符(字段查询),支持 '='、'==' 和 '!='。 (例如 --field-selector key1=value1,key2=value2)。服务器针对每种类型仅支持有限数量的字段查询。

-f, --filename strings

文件名、目录或文件 URL 列表,用于标识要从服务器获取的资源。

-h, --help

get 操作的帮助命令。

--ignore-not-found

如果请求的对象不存在,此命令将返回退出码 0。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-L, --label-columns strings

接受一个用逗号分隔的标签列表,这些标签将被用作所打印表格中的不同列。 名称区分大小写。你也可以使用多个标志选项,例如 -L label1 -L label2...

--no-headers

当使用默认或自定义列输出格式时,不要打印标题(默认打印标题)。

-o, --output string

输出格式。可选值为:json、yaml、name、go-template、go-template-file、template、templatefile、jsonpath、 jsonpath-as-json、jsonpath-file、custom-columns、custom-columns-file、wide。参见自定义列 [https://kubernetes.io/zh-cn/docs/reference/kubectl/#custom-columns]、golang 模板 [http://golang.org/pkg/text/template/#pkg-overview] 和 jsonpath 模板 [https://kubernetes.io/zh-cn/docs/reference/kubectl/jsonpath/]。

--output-watch-events

使用 --watch 或 --watch-only 标志时输出监视事件对象。现有对象被输出为初始的 ADDED 事件。

--raw string

向服务器发送请求所用的原始 URI。使用 kubeconfig 文件中指定的传输方式。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--server-print     默认值:true

如果为 true,则令服务器返回适当的表格输出。支持扩展 API 和 CRD。

--show-kind

如果存在此标志,则列举所请求对象的资源类型。

--show-labels

打印时,将所有标签显示为最后一列(默认隐藏标签列)。

--show-managed-fields

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

--sort-by string

如果非空,则使用此字段规约对列表类型进行排序。 字段规约表示为 JSONPath 表达式(例如 “{.metadata.name}”)。 由此 JSONPath 表达式指定的 API 资源中的字段必须是一个整数或字符串。

--subresource string

如果指定,则读取所请求对象的指定子资源。 必须是 status、scale 之一。此标志处于 Beta 阶段,未来可能会有所变化。

--template string

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

-w, --watch

列举/获取请求的对象后,监视其变化。

--watch-only

监视所请求对象的变化,而不先列举/获取对象。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.27 - kubectl kustomize

简介

使用 'kustomization.yaml' 文件构建一组 KRM 资源。 DIR 参数必须是包含 'kustomization.yaml' 的目录的路径, 或相对于 git 仓库根目录而言路径后缀相同的 Git 存储库 URL。 如果省略 DIR,则认定为 '.'(当前目录)。

kubectl kustomize DIR [flags]

示例

  # 使用当前工作目录执行 build 操作
  kubectl kustomize
  
  # 使用一些共享的配置目录来执行 build 操作
  kubectl kustomize /home/config/production
  
  # 基于 Github 仓库来执行 build 操作
  kubectl kustomize https://github.com/kubernetes-sigs/kustomize.git/examples/helloWorld?ref=v1.0.6

选项

--as-current-user

使用命令执行者所拥有的 uid 和 gid 在容器中执行此操作。

--enable-alpha-plugins

启用 Kustomize 插件。

--enable-helm

启用 Helm Chart 生成器。

-e, --env strings

函数要使用的环境变量列表。

--helm-api-versions strings

Helm 用于 Capabilities.APIVersions 的 Kubernetes API 版本

--helm-command string     默认:"helm"

helm 命令(可执行文件路径)。

--helm-kube-version string

Helm 用于 Capabilities.KubeVersion 的 Kubernetes 版本。

-h, --help

关于 Kustomize 的帮助信息。

--load-restrictor string     默认:"LoadRestrictionsRootOnly"

如果设置为 'LoadRestrictionsNone',本地 kustomization 可能会从其根目录之外加载文件,但这会破坏了 kustomization 的可重定位能力。

--mount strings

针对从文件系统读取的存储选项列表。

--network

为声明网络的函数启用网络访问。

--network-name string     默认:"bridge"

运行容器的 Docker 网络。

-o, --output string

如果指定,则将输出写入此路径。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.28 - kubectl label

简介

更新资源上的标签。

  • 标签的键和值必须以字母或数字开头,可以包含字母、数字、连字符、点和下划线,每个最多 63 个字符。
  • 键可以选择以 DNS 子域前缀加上一个斜杠 '/' 开头,如 example.com/my-app。
  • 如果 --overwrite 为 true,则现有标签可以被覆盖,否则尝试覆盖标签将导致错误。
  • 如果指定了 --resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。
kubectl label [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]

示例

  # 使用标签 'unhealthy' 和值 'true' 更新 Pod 'foo'
  kubectl label pods foo unhealthy=true
  
  # 使用标签 'status' 和值 'unhealthy' 更新 Pod 'foo',覆盖所有现有值
  kubectl label --overwrite pods foo status=unhealthy
  
  # 更新命名空间中的所有 Pod
  kubectl label pods --all status=unhealthy
  
  # 更新由 "pod.json" 中的 type 和 name 标识的 Pod
  kubectl label -f pod.json status=unhealthy
  
  # 仅在资源版本为 1 且未更改时更新 Pod 'foo'
  kubectl label pods foo status=unhealthy --resource-version=1
  
  # 如果存在名为 'bar' 的标签,则通过移除此标签来更新 Pod 'foo'
  # 不需要 --overwrite 标志
  kubectl label pods foo bar-

选项

--all

在指定资源类型的命名空间中,选择所有资源。

-A, --all-namespaces

如果为 true,则在所有命名空间中执行指定的操作。

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

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

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

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

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

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

--field-selector string

过滤所用的选择算符(字段查询),支持 '='、'==' 和 '!='。 (例如 --field-selector key1=value1,key2=value2)。服务器针对每种类型仅支持有限数量的字段查询。

-f, --filename strings

文件名、目录或文件 URL,用于标识要更新标签的资源。

-h, --help

label 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

--list

如果为 true,则显示给定资源的标签。

--local

如果为 true,则 label 操作不会与 api-server 通信,而是在本地运行。

-o, --output string

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

--overwrite

如果为 true,则允许标签被覆盖,否则拒绝覆盖现有标签的更新。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中相互关联的清单时很有用。

--resource-version string

如果非空,则只有在所给值是对象的当前资源版本时,标签更新才会成功。仅在指定单个资源时有效。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.29 - kubectl logs

简介

打印 Pod 或指定资源中某个容器的日志。如果 Pod 只有一个容器,则容器名称是可选的。

kubectl logs [-f] [-p] (POD | TYPE/NAME) [-c CONTAINER]

示例

# 返回只有一个容器的 nginx Pod 中的快照日志
kubectl logs nginx

# 从 nginx Pod 返回快照日志,每行前面加上来源的 Pod 和容器名称
kubectl logs nginx --prefix

# 从 nginx Pod 返回快照日志,限制输出为 500 字节
kubectl logs nginx --limit-bytes=500

# 从 nginx Pod 返回快照日志,等待其启动运行最多 20 秒
kubectl logs nginx --pod-running-timeout=20s

# 返回有多个容器的 nginx Pod 中的快照日志
kubectl logs nginx --all-containers=true

# 从 nginx Deployment 中的所有 Pod 返回快照日志
kubectl logs deployment/nginx --all-pods=true 
 
# 返回带 app=nginx 标签定义的 Pod 中所有容器的快照日志
kubectl logs -l app=nginx --all-containers=true

# 返回带 app=nginx 标签定义的 Pod 中容器的快照日志,限制并发日志请求为 10 个 Pod
kubectl logs -l app=nginx --max-log-requests=10

# 返回 web-1 Pod 中之前终止的 ruby 容器日志的日志
kubectl logs -p -c ruby web-1

# 开始从 nginx Pod 流式传输日志,即使发生错误也继续
kubectl logs nginx -f --ignore-errors=true
 
# 开始流式传输 web-1 Pod 中 ruby 容器的日志
kubectl logs -f -c ruby web-1

# 开始流式传输带 app=nginx 标签定义的 Pod 中所有容器的日志
kubectl logs -f -l app=nginx --all-containers=true

# 仅显示 nginx Pod 的最近 20 行输出
kubectl logs --tail=20 nginx

# 显示 nginx Pod 在过去一小时内写入的所有日志
kubectl logs --since=1h nginx

# 显示从 2024 年 8 月 30 日 06:00:00 UTC 开始 nginx Pod 中所有带时间戳的日志
kubectl logs nginx --since-time=2024-08-30T06:00:00Z --timestamps=true

# 显示所提供证书过期的 kubelet 的日志
kubectl logs --insecure-skip-tls-verify-backend nginx

# 返回名为 hello 的 Job 的第一个容器的快照日志
kubectl logs job/hello

# 返回 nginx Deployment 的 nginx-1 容器的快照日志
kubectl logs deployment/nginx -c nginx-1

选项

--all-containers

获取 Pod 中所有容器的日志。

--all-pods

从所有 Pod 获取日志。将前缀设置为 true。

-c, --container string

打印指定容器的日志。

-f, --follow

指定日志是否应以流式传输。

-h, --help

logs 操作的帮助命令。

--ignore-errors

如果在监视/跟随 Pod 日志,则允许出现任何非致命的错误。

--insecure-skip-tls-verify-backend

跳过请求日志来源的 kubelet 的身份验证。从理论上讲,攻击者可能会提供无效的日志内容。 如果你的 kubelet 提供的证书已过期,你可能需要使用此参数。

--limit-bytes int

要返回的日志的最大字节数。默认为无限制。

--max-log-requests int     默认值:5

指定使用选择算符时要遵循的最大并发日志数。默认值为 5。

--pod-running-timeout duration     默认值:20s

等待至少一个 Pod 运行的时长(例如 5s、2m 或 3h,大于零)。

--prefix

在每行日志前添加日志来源(Pod 名称和容器名称)的前缀。

-p, --previous

如果为 true,则打印 Pod 中容器的前一个实例的日志(如果存在)。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--since duration

仅返回比相对时长更新的日志,如 5s、2m 或 3h。 默认返回所有日志。只能使用 since-time 和 since 之一。

--since-time string

仅返回特定日期(RFC3339)之后的日志。默认返回所有日志。 只能使用 since-time 和 since 之一。

--tail int     默认值:-1

要显示的最近日志文件的行数。不带选择算符时默认为 -1 将显示所有日志行。 否则如果提供了选择算符,则为 10。

--timestamps

在日志输出的每一行中包含时间戳。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.30 - kubectl options

简介

打印被所有命令继承的标志列表。

kubectl options [flags]

示例

# 打印被所有命令继承的标志
kubectl options

选项

-h, --help

关于 options 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.31 - kubectl patch

简介

使用策略合并补丁、JSON 合并补丁或 JSON 补丁来更新某资源的字段。

接受 JSON 和 YAML 格式。

注意:自定义资源不支持策略合并补丁。

kubectl patch (-f FILENAME | TYPE NAME) [-p PATCH|--patch-file FILE]

示例

# 使用策略合并补丁部分更新节点,指定补丁为 JSON 格式
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}'
  
# 使用策略合并补丁部分更新节点,指定补丁为 YAML 格式
kubectl patch node k8s-node-1 -p $'spec:\n unschedulable: true'
  
# 使用策略合并补丁部分更新以在 "node.json" 中所指定类别和名称标识的节点
kubectl patch -f node.json -p '{"spec":{"unschedulable":true}}'
  
# 更新容器的镜像;spec.containers[*].name 是必需的,因为它是合并键
kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}'

# 使用带有位置数组的 JSON 补丁更新容器的镜像
kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]'
  
# 使用合并补丁通过 “scale” 子资源更新 Deployment 的副本
kubectl patch deployment nginx-deployment --subresource='scale' --type='merge' -p '{"spec":{"replicas":2}}'

选项

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

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

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

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

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

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

-f, --filename strings

文件名、目录或文件 URL 的列表,用于标识要更新的资源。

-h, --help

patch 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

--local

如果为真,patch 操作将作用于文件内容,而不是服务器端资源。

-o, --output string

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

-p, --patch string

要被应用到资源 JSON 文件的补丁。

--patch-file string

包含要被应用到资源的补丁的文件。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--show-managed-fields

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

--subresource string

如果指定此标志,patch 操作将作用于所请求对象的子资源。 必须是 status、scale 之一。此标志处于 Beta 阶段,未来可能会有所变化。

--template string

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

--type string     默认值:"strategic"

提供的补丁类型;可以是 json、merge、strategic 之一。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.32 - kubectl plugin

简介

提供与插件交互的实用程序。

插件提供主要命令行发布版本所不具备的扩展功能,请参阅文档和示例以获取有关如何编写自己的插件的更多信息。

发现和安装插件的最简单方法是通过 kubernetes 子项目 krew,要安装 krew 请参阅 krew.sigs.k8s.io

kubectl plugin [flags]

示例

# 列出所有可用的插件
kubectl plugin list
  
# 仅列出可用插件的二进制名称,不包含路径
kubectl plugin list --name-only

选项

-h, --help

关于 plugin 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.32.1 - kubectl plugin list

简介

列出用户 PATH 中所有可用的插件文件。

  • 可用的插件文件要符合以下条件:
    • 可执行文件
    • 位于用户的 PATH 中某处
    • 以 "kubectl-" 开头
kubectl plugin list [flags]

示例

# 列出所有可用的插件
kubectl plugin list

# 仅列出可用插件的二进制名称,不包含路径
kubectl plugin list --name-only

选项

-h, --help

关于 list 的帮助信息。

--name-only

如果为真,则仅显示每个插件的二进制名称,而不是其完整路径。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.33 - kubectl port-forward

简介

转发一个或多个本地端口到某 Pod。

使用资源类型/名称(例如 deployment/mydeployment)来选择 Pod。 如果省略,资源类型默认为 “pod”。

如果有多个 Pod 与条件匹配,将自动选择一个 Pod。 一旦所选 Pod 终止,转发会话也会结束,你需要重新运行命令以恢复转发。

kubectl port-forward TYPE/NAME [options] [LOCAL_PORT:]REMOTE_PORT [...[LOCAL_PORT_N:]REMOTE_PORT_N]

示例

# 在本地监听端口 5000 和 6000,转发与 Pod 中的端口 5000 和 6000 间的往来数据
kubectl port-forward pod/mypod 5000 6000
  
# 在本地监听端口 5000 和 6000,转发与 Deployment 所选择的 Pod 中端口 5000 和 6000 间往来数据
kubectl port-forward deployment/mydeployment 5000 6000
  
# 在本地监听端口 8443,将数据转发到由 Service 所选择的 Pod 中名为 "https" 的服务端口的 targetPort
kubectl port-forward service/myservice 8443:https
  
# 在本地监听端口 8888,将数据转发到 Pod 中的端口 5000
kubectl port-forward pod/mypod 8888:5000
  
# 在所有地址上监听端口 8888,将数据转发到 Pod 中的端口 5000
kubectl port-forward --address 0.0.0.0 pod/mypod 8888:5000
  
# 在 localhost 和选定的 IP 上监听端口 8888,将数据转发到 Pod 中的端口 5000
kubectl port-forward --address localhost,10.19.21.23 pod/mypod 8888:5000
  
# 在本地监听随机端口,将数据转发到 Pod 中的端口 5000
kubectl port-forward pod/mypod :5000

选项

--address strings     默认值:"localhost"

要监听的地址列表(用英文逗号隔开)。取值仅接受 IP 地址或 localhost。 当地址中包含 localhost 时,kubectl 将尝试绑定到 127.0.0.1 和 ::1, 如果这两个地址都不可用于绑定,则会失败。

-h, --help

port-forward 操作的帮助命令。

--pod-running-timeout duration     默认值:1m0s

等待至少一个 Pod 运行的时长(例如 5s、2m 或 3h,大于零)。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.34 - kubectl proxy

简介

在 localhost 和 Kubernetes API 服务器之间创建一个代理服务器或应用级网关。 它还允许在指定的 HTTP 路径上提供静态内容。除了与静态内容路径匹配的路径之外, 所有传入的数据通过一个端口进入,并被转发到远程 Kubernetes API 服务器端口。

kubectl proxy [--port=PORT] [--www=static-dir] [--www-prefix=prefix] [--api-prefix=prefix]

示例

# 代理所有的 Kubernetes API 请求,不对其他请求作处理
kubectl proxy --api-prefix=/
  
# 仅代理部分 Kubernetes API 和一些静态文件
# 你可以使用 `curl localhost:8001/api/v1/pods` 获取 Pod 信息
kubectl proxy --www=/my/files --www-prefix=/static/ --api-prefix=/api/
  
# 要在不同的根路径下代理整个 Kubernetes API
# 你可以使用 `curl localhost:8001/custom/api/v1/pods` 获取 Pod 信息
kubectl proxy --api-prefix=/custom/
  
# 在端口 8011 上运行指向 Kubernetes API 服务器的代理,并使用 ./local/www/ 提供静态内容
kubectl proxy --port=8011 --www=./local/www/
  
# 在任意本地端口上运行指向 Kubernetes API 服务器的代理
# 为服务器选择的端口将被输出到标准输出
kubectl proxy --port=0
  
# 运行指向 Kubernetes API 服务器的代理,将 API 前缀更改为 k8s-api
# 例如,这会让用户能够通过 localhost:8001/k8s-api/v1/pods/ 访问 Pod API
kubectl proxy --api-prefix=/k8s-api

选项

--accept-hosts string     默认值:"^localhost$,^127\.0\.0\.1$,^\[::1\]$"

这个正则表达式表示代理应接受的主机。

--accept-paths string     默认值:"^.*"

这个正则表达式表示代理应接受的路径。

--address string     默认值:"127.0.0.1"

用来提供服务的 IP 地址。

--api-prefix string     默认值:"/"

被代理的 API 所使用的前缀。

--append-server-path

如果为 true,则启用自动路径追加机制,将 kube 上下文服务器路径追加到每个请求。

--disable-filter

如果为 true,则在代理中禁用请求过滤。 此设置是危险的,因为这一设置在使用可访问的端口时可能会使你容易受到 XSRF 攻击。

-h, --help

proxy 操作的帮助命令。

--keepalive duration

keepalive 指定活动网络连接保持活动的时长。设置为 0 可禁用 keepalive。

-p, --port int     默认值:8001

要运行代理的端口。设置为 0 将随机拣选一个端口。

--reject-methods string     默认值:"^$"

这个正则表达式表示代理应该拒绝的 HTTP 方法(例如 --reject-methods='POST,PUT,PATCH')。

--reject-paths string     默认值:"^/api/.*/pods/.*/exec,
^/api/.*/pods/.*/attach"

这个正则表达式表示代理应该拒绝的路径。此处指定的路径即使被 --accept-paths 接受也会被拒绝。

-u, --unix-socket string

用来运行代理的 Unix 套接字。

-w, --www string

同时使用所指定前缀下给定的目录来提供静态文件。

-P, --www-prefix string     默认值:"/static/"

如果指定了静态文件目录,则此标志设置用来提供静态文件服务的前缀。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.35 - kubectl replace

简介

按文件名或标准输入来替换某资源。

支持 JSON 和 YAML 格式。如果要替换某个现有资源,则必须提供完整的资源规约。 你可以通过以下方式获取资源规约:

kubectl get TYPE NAME -o yaml

然后运行以下命令替换资源。

kubectl replace -f FILENAME

示例

# 使用 pod.json 中的数据替换 Pod
kubectl replace -f ./pod.json
  
# 基于传递到标准输入中的 JSON 替换 Pod
cat pod.json | kubectl replace -f -
  
# 将单容器 Pod 的镜像版本(标签)更新为 v4
kubectl get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/' | kubectl replace -f -
  
# 强制替换、删除,然后重新创建资源
kubectl replace --force -f ./pod.json

选项

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

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

--cascade string[="background"]     默认值:"background"

必须是 "background"、"orphan" 或 "foreground"。 选择依赖项(例如,由 ReplicationController 创建的 Pod)的删除级联策略, 默认为 background。

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

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

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

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

-f, --filename strings

包含了待替换的配置信息的文件列表。

--force

如果为真,则立即从 API 中移除资源并略过体面删除处理。 请注意,立即删除某些资源可能会导致不一致或数据丢失,并且需要确认操作。

--grace-period int     默认值:-1

指定给资源的体面终止时间(以秒为单位)。 如果为负数则忽略,为 1 表示立即关闭。 仅当 --force 为真(强制删除)时才可以设置为 0。

-h, --help

replace 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录,此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

--raw string

标志值为以 PUT 方式发送到服务器上的原始 URI。使用 kubeconfig 文件中指定的传输方式。

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--save-config

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

--show-managed-fields

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

--subresource string

如果指定此标志,replace 将操作所请求对象的子资源。必须是 status、scale 之一。 此标志处于 Beta 阶段,未来可能会有变更。

--template string

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

--timeout duration

放弃删除之前等待的时长;标志值为 0 表示根据对象的大小确定超时。

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

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

--wait

如果为真,则等待资源消失后再返回。此参数会等待终结器被清空。

--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 要使用的上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.36 - kubectl rollout

简介

管理一个或多个资源的上线。

有效的资源类型包括:

  • deployments
  • daemonsets
  • statefulsets
kubectl rollout SUBCOMMAND

示例

# 回滚到先前的 Deployment 版本
kubectl rollout undo deployment/abc
  
# 检查 Daemonset 的部署状态
kubectl rollout status daemonset/foo
  
# 重启 Deployment
kubectl rollout restart deployment/abc
  
# 重启带有 'app=nginx' 标签的 Deployment
kubectl rollout restart deployment --selector=app=nginx

选项

-h, --help

rollout 命令的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.36.1 - kubectl rollout history

简介

查看以前上线的修订版本和配置。

kubectl rollout history (TYPE NAME | TYPE/NAME) [flags]

示例

# 查看 Deployment 的上线历史记录
kubectl rollout history deployment/abc
  
# 查看 Daemonset 修订版本 3 的详细信息
kubectl rollout history daemonset/abc --revision=3

选项

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

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

-f, --filename strings

文件名、目录或文件 URL,用于标识要从服务器获取的资源。

-h, --help

关于 history 的帮助信息。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--revision int

查看详细信息,包括指定修订版本的 Pod 模版。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.36.2 - kubectl rollout pause

简介

将所提供的资源标记为已暂停。

控制器不会调和已暂停的资源。使用 kubectl rollout resume 可恢复已暂停的资源,目前只有 Deployment 支持暂停。

kubectl rollout pause RESOURCE

示例

# 将 nginx Deployment 标记为暂停
# Deployment 的任何当前状态都将继续发挥作用;
# 只要 Deployment 处于暂停状态,对 Deployment 的更新就不会产生影响
kubectl rollout pause deployment/nginx

选项

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

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

--field-manager string     Default: "kubectl-rollout"

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

-f, --filename strings

文件名、目录或文件 URL,用于标识要从服务器获取的资源。

-h, --help

关于 pause 的帮助信息。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.36.3 - kubectl rollout restart

简介

重启资源。

  • 资源将重新开始上线。
kubectl rollout restart RESOURCE

示例

# 重启 test-namespace 命名空间下的所有 Deployment
kubectl rollout restart deployment -n test-namespace
  
# 重启 Deployment
kubectl rollout restart deployment/nginx
  
# 重启 Daemonset
kubectl rollout restart daemonset/abc
  
# 重启带有标签 app=nginx 的 Deployment
kubectl rollout restart deployment --selector=app=nginx

选项

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

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

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

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

-f, --filename strings

文件名、目录或文件 URL,用于标识要从服务器获取的资源。

-h, --help

关于 restart 的帮助信息。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.36.4 - kubectl rollout resume

简介

恢复暂停的资源。

  • 控制器不会调和已暂停的资源。通过恢复资源,我们可以让控制器再次调和它,目前只有部署支持恢复。
kubectl rollout resume RESOURCE

示例

# 恢复已暂停的 Deployment
kubectl rollout resume deployment/nginx

选项

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

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

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

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

-f, --filename strings

文件名、目录或文件 URL,用于标识要从服务器获取的资源。

-h, --help

关于 resume 的帮助信息。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--show-managed-fields

If true, keep the managedFields when printing objects in JSON or YAML format.

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.36.5 - kubectl rollout status

简介

显示上线的状态。

  • 默认情况下,"rollout status" 将监视最新的上线状态,直到它完成。 如果你不想等待 rollout 完成,则可以使用 --watch=false。请注意,如果中间开始了新的上线动作, 则 "rollout status" 将继续监视最新修订版本。如果你想 watch 特定的修订版本并在它被另一个修订覆盖时中止, 请使用 --revision=N,其中 N 是你需要监视的修订版本。
kubectl rollout status (TYPE NAME | TYPE/NAME) [flags]

示例

# 监视部署的上线状态
kubectl rollout status deployment/nginx

选项

-f, --filename strings

文件名、目录或文件 URL,用于标识要从服务器获取的资源。

-h, --help

关于 status 的帮助信息。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--revision int

固定到特定修订版本以显示其状态。默认为 0(最后修订版本)。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--timeout duration

结束监视之前等待的时间长度,零表示永不结束。任何其他值都应包含相应的时间单位(例如 1s、2m、3h)。

-w, --watch     Default: true

监视上线状态直至上线完成。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.36.6 - kubectl rollout undo

简介

回滚到之前上线的版本。

kubectl rollout undo (TYPE NAME | TYPE/NAME) [flags]

示例

# 回滚到上一个 Deployment 的上一次部署状态
kubectl rollout undo deployment/abc
  
# 回滚到 Daemonset 的修订版本 3
kubectl rollout undo daemonset/abc --to-revision=3
  
# 试运行回滚到 Deployment 的上一次部署状态
kubectl rollout undo --dry-run=server deployment/abc

选项

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

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

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

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

-f, --filename strings

用于标识从服务器获取的资源的文件名、目录或文件的 URL。

-h, --help

关于 undo 的帮助信息。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

-R, --recursive

以递归方式处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--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]。

--to-revision int

要回滚到的修订版本。默认为 0(最新修订版本)。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.37 - 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,则等待资源消失后再返回。此参数会等待终结器被清空。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.38 - kubectl scale

简介

为 Deployment、ReplicaSet、ReplicationController 或 StatefulSet 设置新的副本数。

扩缩容还允许用户为 scale 操作指定一个或多个前提条件。

如果指定了 --current-replicas--resource-version,则在尝试扩缩容之前这些参数会被验证, 并且在将扩缩容请求发送到服务器时保证前提条件成立。

kubectl scale [--resource-version=version] [--current-replicas=count] --replicas=COUNT (-f FILENAME | TYPE NAME)

示例

# 将名为 “foo” 的 ReplicaSet 扩缩容到 3 个副本
kubectl scale --replicas=3 rs/foo
  
# 将 "foo.yaml" 中以 type 和 name 指定的某资源扩缩容到 3 个副本
kubectl scale --replicas=3 -f foo.yaml
  
# 如果名为 mysql 的 Deployment 当前有 2 个副本,则将 mysql 扩容到 3 个副本
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql
  
# 扩缩容多个 ReplicationController
kubectl scale --replicas=5 rc/example1 rc/example2 rc/example3
  
# 将名为 “web” 的 StatefulSet 扩缩容到 3 个副本
kubectl scale --replicas=3 statefulset/web

选项

--all

选择指定资源类型的命名空间中的所有资源。

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

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

--current-replicas int     默认值:-1

当前副本数的前提条件。要求资源的当前副本数与此值匹配才能进行扩缩容。 默认值 -1 表示没有条件。

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

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

-f, --filename strings

文件名、目录或文件 URL 的列表,用于标识要设置新副本数的资源。

-h, --help

scale 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

-o, --output string

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

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--replicas int

期望新的副本数。必需。

--resource-version string

资源版本的前提条件。要求当前资源版本与此值匹配才能进行扩缩容。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--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]。

--timeout duration

等待放弃扩缩容操作之前的时长,零表示不等待。 其他值应包含相应的时间单位(例如 1s、2m、3h)。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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 集群管理器

2.39 - kubectl set

简介

配置应用程序资源。

这些命令可帮助你更改现有的应用程序资源。

kubectl set SUBCOMMAND

选项

-h, --help

关于 set 的帮助信息。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.39.1 - kubectl set env

简介

更新 Pod 模板中的环境变量。

列举一个或多个 Pod 和 Pod 模板中的环境变量定义。 添加、更新或移除(在副本控制器或 Deployment 配置中的)一个或多个 Pod 模板中的容器环境变量定义。 查看或修改指定 Pod 或 Pod 模板中所有容器的环境变量定义,或者只查看与通配符匹配的那些环境变量定义。

如果在命令行上设置了 "--env -",则可以使用标准的 env 语法从标准输入中读取环境变量。

可能的资源包括(不区分大小写):

pod (po), replicationcontroller (rc), deployment (deploy), daemonset (ds), statefulset (sts), cronjob (cj), replicaset (rs)
kubectl set env RESOURCE/NAME KEY_1=VAL_1 ... KEY_N=VAL_N

示例

# 使用新的环境变量更新 Deployment “registry”
kubectl set env deployment/registry STORAGE_DIR=/local
  
# 列举 Deployment “sample-build” 中定义的环境变量
kubectl set env deployment/sample-build --list
  
# 列举所有 Pod 中定义的环境变量
kubectl set env pods --all --list
  
# 以 YAML 格式输出修改后的 Deployment,但不更改服务器上的对象
kubectl set env deployment/sample-build STORAGE_DIR=/data -o yaml
  
# 更新项目中所有副本控制器中的所有容器,为之添加 ENV=prod
kubectl set env rc --all ENV=prod
  
# 从 Secret 导入环境变量
kubectl set env --from=secret/mysecret deployment/myapp
  
# 从带前缀的 ConfigMap 中导入环境变量
kubectl set env --from=configmap/myconfigmap --prefix=MYSQL_ deployment/myapp
  
# 从 ConfigMap 中导入特定键
kubectl set env --keys=my-example-key --from=configmap/myconfigmap deployment/myapp
  
# 从所有 Deployment 配置中的容器 “c1” 中移除环境变量 ENV
kubectl set env deployments --all --containers="c1" ENV-
  
# 从磁盘上的 Deployment 定义中移除环境变量 ENV 并更新服务器上的 Deployment 配置
kubectl set env -f deploy.json ENV-
  
# 将某些本地 Shell 环境变量设置到服务器上的 Deployment 配置中
env | grep RAILS_ | kubectl set env -e - deployment/registry

选项

--all

如果为真,则选择指定资源类型的命名空间中的所有资源。

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

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

-c, --containers string     默认值:"*"

所选 Pod 模板中要更改的容器名称 - 可以使用通配符。

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

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

-e, --env strings

为某个环境变量指定一个键值对列表,以设置到每个容器中。

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

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

-f, --filename strings

文件名、目录或文件 URL 组成的列表,用于标识要更新环境的资源。

--from string

要从中注入环境变量的资源的名称。

-h, --help

env 操作的帮助命令。

--keys strings

要从指定的资源中导入的、以英文逗号分隔的键的列表。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

--list

如果为真,则以标准格式显示环境及所有变更。 当我们使用 `kubectl view env` 命令时,此标志将被移除。

--local

如果为真,`set env` 将不会与 API 服务器通信,而是在本地运行。

-o, --output string

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

--overwrite     默认值:true

如果为真,允许环境被覆盖,否则拒绝要覆盖现有环境的更新。

--prefix string

要追加到变量名上的前缀。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--resolve

如果为真,则在列出变量时显示 Secret 或 ConfigMap 引用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--show-managed-fields

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

--template string

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

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.39.2 - kubectl set image

简介

更新资源的现有容器镜像。

可能的资源包括(不区分大小写):

pod (po), replicationcontroller (rc), deployment (deploy), daemonset (ds), statefulset (sts), cronjob (cj), replicaset (rs)
kubectl set image (-f FILENAME | TYPE NAME) CONTAINER_NAME_1=CONTAINER_IMAGE_1 ... CONTAINER_NAME_N=CONTAINER_IMAGE_N

示例

# 将 Deployment 的 nginx 容器镜像设置为 “nginx:1.9.1”,并将其 busybox 容器镜像设置为 “busybox”
kubectl set image deployment/nginx busybox=busybox nginx=nginx:1.9.1
  
# 更新所有 Deployment 和副本控制器的 nginx 容器镜像为 “nginx:1.9.1”
kubectl set image deployments,rc nginx=nginx:1.9.1 --all
  
# 更新 DaemonSet abc 的所有容器镜像为 "nginx:1.9.1"
kubectl set image daemonset abc *=nginx:1.9.1
  
# 使用本地文件更新 nginx 容器镜像,并以 YAML 格式打印结果,但不向服务器发出请求
kubectl set image -f path/to/file.yaml nginx=nginx:1.9.1 --local -o yaml

选项

--all

在指定资源类型的命名空间中,选择所有资源。

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

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

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

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

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

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

-f, --filename strings

文件名、目录或文件 URL,用于标识要从服务器获取的资源。

-h, --help

image 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

--local

如果为 true,`set image` 将不会与 API 服务器通信,而是在本地运行。

-o, --output string

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

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

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

--insecure-skip-tls-verify

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

--kubeconfig string

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

--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

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

另请参见

2.39.3 - kubectl set resources

简介

为定义 Pod 模板的任一资源指定计算资源要求(CPU、内存)。 如果 Pod 被成功调度,将保证获得所请求的资源量,但可以在某一瞬间达到其指定的限制值。

对于每类计算资源,如果只指定限制值而省略请求值,则请求值将被默认设置为限制值。

可能的资源包括(不区分大小写):使用 "kubectl api-resources" 查看受支持资源的完整列表。

kubectl set resources (-f FILENAME | TYPE NAME)  ([--limits=LIMITS & --requests=REQUESTS]

示例

# 将 Deployment nginx 中容器 nginx 的 CPU 限制设置为 "200m", 将内存限制设置为 "512Mi"
kubectl set resources deployment nginx -c=nginx --limits=cpu=200m,memory=512Mi
  
# 为 nginx 中的所有容器设置资源请求和限制
kubectl set resources deployment nginx --limits=cpu=200m,memory=512Mi --requests=cpu=100m,memory=256Mi
  
# 移除 nginx 中容器对资源的资源请求
kubectl set resources deployment nginx --limits=cpu=0,memory=0 --requests=cpu=0,memory=0
  
# 打印基于本地清单更新 nginx 容器限制的结果(以 YAML 格式),不向服务器发送请求
kubectl set resources -f path/to/file.yaml --limits=cpu=200m,memory=512Mi --local -o yaml

选项

--all

在指定资源类型的命名空间中,选择所有资源。

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

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

-c, --containers string     默认值:"*"

在所选 Pod 模板中要更改的容器名称,默认会选择所有容器 - 可以使用通配符。

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

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

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

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

-f, --filename strings

文件名、目录或文件 URL 的列表,用于标识要从服务器获取的资源。

-h, --help

resources 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

--limits string

指定容器的资源请求。例如,“cpu=100m,memory=256Mi”。 请注意,服务器端组件可能会根据服务器配置(例如 LimitRange)分配请求。

--local

如果为真,`set resources` 将不会与 API 服务器通信,而是在本地运行。

-o, --output string

输出格式。可选值为: json、yaml、name、go-template、go-template-file、template、templatefile、jsonpath、jsonpath-as-json、jsonpath-file。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--requests string

指定容器的资源请求。例如,“cpu=100m,memory=256Mi”。 请注意,服务器端组件可能会根据服务器配置(例如 LimitRange)分配请求。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--show-managed-fields

如果为真,在以 JSON 或 YAML 格式打印对象时保留 managedFields。

--template string

当 -o=go-template、-o=go-template-file 时使用的模板字符串或模板文件路径。 模板格式为 golang 模板 [http://golang.org/pkg/text/template/#pkg-overview]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

如果为真,则对服务器所有请求的响应不再压缩。

--insecure-skip-tls-verify

如果为真,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求要使用的 kubeconfig 文件的路径。

--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

将从服务器收到的警告视为错误,并以非零退出码退出。

另请参见

2.39.4 - kubectl set selector

简介

为某个资源设置选择算符。请注意, 如果资源在 set selector 调用之前已有选择算符,则新的选择算符将覆盖旧的选择算符。

选择算符必须以字母或数字开头,可以包含字母、数字、连字符、点和下划线,最长为 63 个字符。 如果指定了 --resource-version,则更新将使用此资源版本,否则将使用现有的资源版本。 注意:目前只能在 Service 对象上设置选择算符。

kubectl set selector (-f FILENAME | TYPE NAME) EXPRESSIONS [--resource-version=version]

示例

# 在创建 Deployment/Service 对之前设置标签和选择算符
kubectl create service clusterip my-svc --clusterip="None" -o yaml --dry-run=client | kubectl set selector --local -f - 'environment=qa' -o yaml | kubectl create -f -
kubectl create deployment my-dep -o yaml --dry-run=client | kubectl label --local -f - environment=qa -o yaml | kubectl create -f -

选项

--all

选择指定资源类型的命名空间中的所有资源。

--allow-missing-template-keys     默认值:true

如果为 true,在模板中字段或映射键缺失时忽略模板中的错误。 仅适用于 golang 和 jsonpath 输出格式。

--dry-run string[="unchanged"]     默认值:"none"

必须是 "none"、"server" 或 "client"。如果是 client 策略,仅打印将要发送的对象,而不实际发送。 如果是 server 策略,提交服务器端请求而不持久化资源。

--field-manager string     默认值:"kubectl-set"

用于跟踪字段属主关系的管理器的名称。

-f, --filename strings

使用文件名来区分不同的资源。

-h, --help

selector 操作的帮助命令。

--local

如果为 true,则注解不会与 api-server 通信,而是在本地运行。

-o, --output string

输出格式。可选值为: json、yaml、name、go-template、go-template-file、template、templatefile、jsonpath、jsonpath-as-json、jsonpath-file。

-R, --recursive     默认值:true

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--resource-version string

如果非空,则只有在所给值是对象的当前资源版本时,选择算符更新才会成功。仅在指定单个资源时有效。

--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]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

如果为 true,则对服务器所有请求的响应不再压缩。

--insecure-skip-tls-verify

如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求要使用的 kubeconfig 文件的路径。

--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

将从服务器收到的警告视为错误,并以非零退出码退出。

另请参见

2.39.5 - kubectl set serviceaccount

简介

更新 Pod 模板资源的服务账号。

可能的资源(不区分大小写)可以是:

replicationcontroller (rc), deployment (deploy), daemonset (ds), job, replicaset (rs), statefulset
kubectl set serviceaccount (-f FILENAME | TYPE NAME) SERVICE_ACCOUNT

示例

# 将名为 nginx-deployment 的 Deployment 的服务账号设置为 serviceaccount1
kubectl set serviceaccount deployment nginx-deployment serviceaccount1
  
# 打印使用本地文件中服务账号更新 nginx Deployment 后的结果(以 YAML 格式),不向 API 服务器发送请求
kubectl set sa -f nginx-deployment.yaml serviceaccount1 --local --dry-run=client -o yaml

选项

--all

在指定资源类型的命名空间中,选择所有资源。

--allow-missing-template-keys     默认值:true

如果为 true,在模板中字段或映射键缺失时忽略模板中的错误。 仅适用于 golang 和 jsonpath 输出格式。

--dry-run string[="unchanged"]     默认值:"none"

必须是 "none"、"server" 或 "client"。如果是 client 策略,仅打印将要发送的对象,而不实际发送。 如果是 server 策略,提交服务器端请求而不持久化资源。

--field-manager string     默认值:"kubectl-set"

用于跟踪字段属主关系的管理器的名称。

-f, --filename strings

文件名、目录或文件 URL 的列表,用于标识要从服务器获取的资源。

-h, --help

serviceaccount 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

--local

如果为真,`set serviceaccount` 将不会与 API 服务器通信,而是在本地运行。

-o, --output string

输出格式。可选值为: json、yaml、name、go-template、go-template-file、template、templatefile、jsonpath、jsonpath-as-json、jsonpath-file。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

--show-managed-fields

如果为真,在以 JSON 或 YAML 格式打印对象时保留 managedFields。

--template string

当 -o=go-template、-o=go-template-file 时使用的模板字符串或模板文件路径。 模板格式为 golang 模板 [http://golang.org/pkg/text/template/#pkg-overview]。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

如果为真,则对服务器所有请求的响应不再压缩。

--insecure-skip-tls-verify

如果为真,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求要使用的 kubeconfig 文件的路径。

--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

将从服务器收到的警告视为错误,并以非零退出码退出。

另请参见

2.39.6 - kubectl set subject

简介

更新角色绑定或集群角色绑定中的用户、组或服务账号。

kubectl set subject (-f FILENAME | TYPE NAME) [--user=username] [--group=groupname] [--serviceaccount=namespace:serviceaccountname] [--dry-run=server|client|none]

示例

# 更新 serviceaccount1 的集群角色绑定
kubectl set subject clusterrolebinding admin --serviceaccount=namespace:serviceaccount1
  
# 更新 user1、user2 和 group1 的角色绑定
kubectl set subject rolebinding admin --user=user1 --user=user2 --group=group1
  
# 打印从本地更新角色绑定主体的结果(以 YAML 格式),但不向服务器发送请求
kubectl create rolebinding admin --role=admin --user=admin -o yaml --dry-run=client | kubectl set subject --local -f - --user=foo -o yaml

选项

--all

在指定资源类型的命名空间中,选择所有资源。

--allow-missing-template-keys     默认值:true

如果为 true,在模板中字段或映射键缺失时忽略模板中的错误。 仅适用于 golang 和 jsonpath 输出格式。

--dry-run string[="unchanged"]     默认值:"none"

必须是 "none"、"server" 或 "client"。如果是 client 策略,仅打印将要发送的对象,而不实际发送。 如果是 server 策略,提交服务器端请求而不持久化资源。

--field-manager string     默认值:"kubectl-set"

用于跟踪字段属主关系的管理器的名称。

-f, --filename strings

文件名、目录或文件 URL 的列表,用于标识要更新主体的资源。

--group strings

要绑定到角色的组列表。

-h, --help

subject 操作的帮助命令。

-k, --kustomize string

处理 kustomization 目录。此标志不能与 -f 或 -R 一起使用。

--local

如果为真,`set subject` 将不会与 API 服务器通信,而是在本地运行。

-o, --output string

输出格式。可选值为: json、yaml、name、go-template、go-template-file、template、templatefile、jsonpath、jsonpath-as-json、jsonpath-file。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--serviceaccount strings

要绑定到角色的服务账号列表。

--show-managed-fields

如果为真,在以 JSON 或 YAML 格式打印对象时保留 managedFields。

--template string

当 -o=go-template、-o=go-template-file 时使用的模板字符串或模板文件路径。 模板格式为 golang 模板 [http://golang.org/pkg/text/template/#pkg-overview]。

--user strings

要绑定到角色的用户名列表。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

如果为 true,则对服务器所有请求的响应不再压缩。

--insecure-skip-tls-verify

如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求要使用的 kubeconfig 文件的路径。

--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

将从服务器收到的警告视为错误,并以非零退出码退出。

另请参见

2.40 - kubectl taint

简介

更新一个或多个节点上的污点。

  • 污点由键、值和效果组成。作为此命令的参数,污点表示为 key=value:effect。
  • 键必须以字母或数字开头,可以包含字母、数字、连字符、点和下划线,最多 253 个字符。
  • 可选地,键可以以 DNS 子域前缀加上一个 "/" 开头,例如 example.com/my-app。
  • 值是可选的。如果给定,则必须以字母或数字开头,可以包含字母、数字、连字符、点和下划线,最多 63 个字符。
  • 效果必须是 NoSchedule、PreferNoSchedule 或 NoExecute。
  • 目前污点只能应用于节点。
kubectl taint NODE NAME KEY_1=VAL_1:TAINT_EFFECT_1 ... KEY_N=VAL_N:TAINT_EFFECT_N

示例

  # 使用带有键为 "dedicated" 和值为 "special-user" 以及效果为 "NoSchedule" 的污点来更新节点 "foo"
  # 如果具有该键和效果的污点已经存在,则其值将按指定方式替换
  kubectl taint nodes foo dedicated=special-user:NoSchedule
  
  # 从节点 "foo" 中删除键为 "dedicated" 且效果为 "NoSchedule" 的污点(如果存在)
  kubectl taint nodes foo dedicated:NoSchedule-
  
  # 从节点 "foo" 中删除所有带有键为 "dedicated" 的污点
  kubectl taint nodes foo dedicated-
  
  # 在标签为 myLabel=X 的节点上添加键为 'dedicated' 的污点
  kubectl taint node -l myLabel=X  dedicated=foo:PreferNoSchedule
  
  # 向节点 "foo" 添加一个带有键 "bar" 且没有值的污点
  kubectl taint nodes foo bar:NoSchedule

选项

--all

选择集群中的所有节点

--allow-missing-template-keys     默认值:true

如果为 true,则当模板中缺少字段或映射键时,忽略模板中的任何错误。 仅适用于 golang 和 jsonpath 输出格式。

--dry-run string[="unchanged"]     默认值:"none"

必须是 "none"、"server" 或 "client"。如果是客户端策略,则只打印要发送的对象, 而不发送该对象。如果是服务器策略,则提交服务器端请求而不持久化资源。

--field-manager string     默认值:"kubectl-taint"

用于追踪字段所有权的管理者名称。

-h, --help

关于 taint 的帮助信息。

-o, --output string

输出格式,可以为以下选项之一: (json、yaml、name、go-template、go-template-file、template、templatefile、jsonpath、jsonpath-as-json、jsonpath-file)。

--overwrite

如果为真,则允许覆盖污点,否则拒绝覆盖现有污点的污点更新。

-l, --selector string

用来执行过滤的选择算符(标签查询),支持 '='、'==' 和 '!='(例如 -l key1=value1,key2=value2)。 匹配的对象必须满足所有指定的标签约束。

--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)。

--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。

--cache-dir string     Default: "$HOME/.kube/cache"

默认缓存目录。

--certificate-authority string

证书机构的证书文件的路径。

--client-certificate string

TLS 客户端证书文件的路径。

--client-key string

TLS 客户端密钥文件的路径。

--cluster string

要使用的 kubeconfig 中集群的名称。

--context string

要使用的 kubeconfig 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

如果为 true,则对服务器所有请求的响应不再压缩。

--insecure-skip-tls-verify

如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求要使用的 kubeconfig 文件的路径。

--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 集群管理器

2.41 - kubectl top

简介

显示资源(CPU/内存)使用情况。

  • top 命令允许你查看节点或 Pod 的资源消耗情况。

  • 此命令要求 Metrics Server 在服务器上被正确配置且正常运行。

kubectl top [flags]

选项

-h, --help

关于 top 的帮助信息。

--api-group string

筛选指定 API 组中的资源。

--cached

如果可用,将使用缓存的资源列表。

--categories strings

筛选属于指定类别的资源。

-h, --help

关于 api-resources 的帮助信息。

--namespaced     默认值:true

如果为 false,则返回非命名空间作用域的资源,否则默认返回命名空间作用域的资源。

--no-headers

当使用默认或自定义列输出格式时,不要打印标题(默认打印标题)。

-o, --output string

输出格式,可选值为:wide、name。

--sort-by string

如果非空,则使用指定字段对资源列表进行排序,此字段可以是 "name" 或 "kind"。

--verbs strings

筛选支持指定动词的资源。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

如果为 true,则对服务器所有请求的响应不再压缩。

--insecure-skip-tls-verify

如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求要使用的 kubeconfig 文件的路径。

--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

将从服务器收到的警告视为错误,并以非零退出码退出。

另请参见

2.41.1 - kubectl top node

简介

显示节点的资源(CPU/内存)使用情况。

top-node 命令可以让你查看节点的资源消耗情况。

kubectl top node [NAME | -l label]

示例

# 显示所有节点的指标
kubectl top node
  
# 显示指定节点的指标
kubectl top node NODE_NAME

选项

-h, --help

node 操作的帮助命令。

--no-headers

如果存在,则打印没有标头的输出。

-l, --selector string

用来执行过滤的选择算符(标签查询),支持 '='、'==' 和 '!='(例如 -l key1=value1,key2=value2)。 匹配的对象必须满足所有指定的标签约束。

--show-capacity

基于节点的 Capacity 而不是 Allocatable(默认)打印节点资源。

--sort-by string

如果非空,则使用指定字段对节点列表进行排序。字段可以是 “cpu” 或 “memory”。

--use-protocol-buffers     默认值:true

启用协议缓冲区(protocol-buffers)以访问 Metrics API。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

如果为 true,则对服务器所有请求的响应不再压缩。

--insecure-skip-tls-verify

如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求要使用的 kubeconfig 文件的路径。

--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

将从服务器收到的警告视为错误,并以非零退出码退出。

另请参见

2.41.2 - kubectl top pod

简介

显示 Pod 的资源(CPU/内存)使用情况。

top pod 命令允许你查看 Pod 的资源消耗情况。

由于指标管道的延迟,Pod 创建后的几分钟内可能无法获取资源消耗数据。

kubectl top pod [NAME | -l label]

示例

# 显示 default 命名空间中所有 Pod 的指标
kubectl top pod
  
# 显示指定命名空间中所有 Pod 的指标
kubectl top pod --namespace=NAMESPACE
  
# 显示指定 Pod 及其容器的指标
kubectl top pod POD_NAME --containers
  
# 显示由标签 name=myLabel 所定义的 Pod 的指标
kubectl top pod -l name=myLabel

选项

-A, --all-namespaces

如果存在,则列举所有命名空间中请求的对象。 即使使用 --namespace 指定,当前上下文中的命名空间也会被忽略。

--containers

如果存在,则打印 Pod 内的容器的使用情况。

--field-selector string

过滤所用的选择算符(字段查询),支持 '='、'==' 和 '!='。 (例如 --field-selector key1=value1,key2=value2)。服务器针对每种类型仅支持有限数量的字段查询。

-h, --help

pod 操作的帮助命令。

--no-headers

如果存在,则打印不带标头的输出。

-l, --selector string

用来执行过滤的选择算符(标签查询),支持 '='、'==' 和 '!='(例如 -l key1=value1,key2=value2)。 匹配的对象必须满足所有指定的标签约束。

--sort-by string

如果非空,则使用指定字段对 Pod 列表进行排序。字段可以是 “cpu” 或 “memory”。

--sum

打印资源使用量的总和。

--use-protocol-buffers     默认值:true

启用协议缓冲区(protocol-buffers)以访问 Metrics API。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

如果为 true,则对服务器所有请求的响应不再压缩。

--insecure-skip-tls-verify

如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求要使用的 kubeconfig 文件的路径。

--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

将从服务器收到的警告视为错误,并以非零退出码退出。

另请参见

2.42 - kubectl uncordon

简介

将节点标记为可调度。

kubectl uncordon NODE

示例

  # Mark node "foo" as schedulable
  kubectl uncordon foo

选项

--dry-run string[="unchanged"]     默认值:"none"

必须是 "none"、"server" 或 "client"。如果是客户端策略,则只打印要发送的对象, 而不发送该对象。如果是服务器策略,则提交服务器端请求而不持久化资源。

-h, --help

关于 uncordon 的帮助信息。

-l, --selector string

用来过滤的选择算符(标签查询),支持 '='、'==' 和 '!='(例如 -l key1=value1,key2=value2)。 匹配的对象必须满足所有指定的标签约束。

--as string

操作所用的伪装用户名。用户可以是常规用户或命名空间中的服务账号。

--as-group strings

操作所用的伪装用户组,此标志可以被重复设置以指定多个组。

--as-uid string

操作所用的伪装 UID。

--cache-dir string     Default: "$HOME/.kube/cache"

默认缓存目录。

--certificate-authority string

证书机构的证书文件的路径。

--client-certificate string

TLS 客户端证书文件的路径。

--client-key string

TLS 客户端密钥文件的路径。

--cluster string

要使用的 kubeconfig 中集群的名称。

--context string

要使用的 kubeconfig 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

如果为 true,则对服务器所有请求的响应不再压缩。

--insecure-skip-tls-verify

如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求要使用的 kubeconfig 文件的路径。

--match-server-version

要求服务器版本与客户端版本匹配。

-n, --namespace string

如果存在,则是此 CLI 请求的命名空间范围。

--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 集群管理器

2.43 - kubectl version

简介

打印当前上下文的客户端和服务器版本信息。

kubectl version [flags]

示例

# 打印当前上下文的客户端和服务器版本
kubectl version

选项

--client

如果为 true,则仅显示客户端版本(不需要服务器)。

-h, --help

关于版本的帮助信息

-o, --output string

`yaml` 或 `json` 之一。

--as string

操作所用的伪装用户名。用户可以是常规用户或命名空间中的服务账号。

--as-group strings

操作所用的伪装用户组,此标志可以被重复设置以指定多个组。

--as-uid string

操作所用的伪装 UID。

--cache-dir string     Default: "$HOME/.kube/cache"

默认缓存目录。

--certificate-authority string

证书机构的证书文件的路径。

--client-certificate string

TLS 客户端证书文件的路径。

--client-key string

TLS 客户端密钥文件的路径。

--cluster string

要使用的 kubeconfig 中集群的名称。

--context string

要使用的 kubeconfig 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

如果为 true,则对服务器所有请求的响应不再压缩。

--insecure-skip-tls-verify

如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求要使用的 kubeconfig 文件的路径。

--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 集群管理器

2.44 - kubectl wait

简介

实验特性:等待一个或多个资源到达特定状态。

  • 此命令接受多个资源作为输入,并等待直到在每个给定资源的状态字段中看到所指定的状况。

  • 或者,这一命令可以通过为 --for 标志提供 "create" 或 "delete" 关键字值,来等待给定的一组资源被创建或删除。

  • 当指定条件被满足时,命令将向 stdout 打印一条成功消息。你可以使用 -o 选项更改输出目标。

kubectl wait ([-f FILENAME] | resource.group/resource.name | resource.group [(-l label | --all)]) [--for=create|--for=delete|--for condition=available|--for=jsonpath='{}'[=value]]

示例

# 等待 Pod "busybox1" 包含 "Ready" 类型的状况值
kubectl wait --for=condition=Ready pod/busybox1

# 状态状况的默认值为真;可以在等号分隔符后给出其他等待目标(用 Unicode 大小写折叠形式转换之后执行比较,这是更通用的大小写不敏感形式)
kubectl wait --for=condition=Ready=false pod/busybox1

# 等待 Pod "busybox1" 的状态阶段包含 "Running"
kubectl wait --for=jsonpath='{.status.phase}'=Running pod/busybox1

# 等待 Pod "busybox1" 状况变为 Ready
kubectl wait --for='jsonpath={.status.conditions[?(@.type=="Ready")].status}=True' pod/busybox1

# 等待 Service "loadbalancer" 具备入站规则
kubectl wait --for=jsonpath='{.status.loadBalancer.ingress}' service/loadbalancer

# 等待名为 "busybox1" 的 Secret 被创建,超时时间为 30 秒
kubectl create secret generic busybox1
kubectl wait --for=create secret/busybox1 --timeout=30s

# 发出 "delete" 命令后,等待 Pod "busybox1" 被删除,超时时间为 60 秒
kubectl delete pod/busybox1
kubectl wait --for=delete pod/busybox1 --timeout=60s

选项

--all

选择指定资源类型的命名空间中的所有资源。

-A, --all-namespaces

如果存在,则列举所有命名空间中请求的对象。 即使使用 --namespace 指定,当前上下文中的命名空间也会被忽略。

--allow-missing-template-keys     默认值:true

如果为 true,在模板中字段或映射键缺失时忽略模板中的错误。 仅适用于 golang 和 jsonpath 输出格式。

--field-selector string

过滤所用的选择算符(字段查询),支持 '='、'==' 和 '!='。 (例如 --field-selector key1=value1,key2=value2)。服务器针对每种类型仅支持有限数量的字段查询。

-f, --filename strings

使用文件名来区分不同的资源。

--for string

等待的条件:[create|delete|condition=condition-name[=condition-value]|jsonpath='{JSONPath expression}'=[JSONPath value]]。 默认的状况值为 true。在执行 Unicode 大小写折叠之后比较条件值,这是更通用的不区分大小写形式。

-h, --help

关于 wait 的帮助信息。

--local

如果为 true,则注解不会与 api-server 通信,而是在本地运行。

-o, --output string

输出格式。可选值为: json、yaml、name、go-template、go-template-file、template、templatefile、jsonpath、jsonpath-as-json、jsonpath-file。

-R, --recursive

递归处理在 -f、--filename 中给出的目录。当你想要管理位于同一目录中的相关清单时很有用。

-l, --selector string

过滤所用的选择算符(标签查询),支持 '='、'==' 和 '!='。 (例如 -l key1=value1,key2=value2)。匹配的对象必须满足所有指定的标签约束。

--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]。

--timeout duration     默认值:30s

放弃前等待的时间长度。0 表示检查一次,不等待,负数表示等待一周。

--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 上下文的名称。

--default-not-ready-toleration-seconds int     默认值:300

设置针对 notReady:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--default-unreachable-toleration-seconds int     默认值:300

设置针对 unreachable:NoExecute 的容忍度的 tolerationSeconds,默认添加到所有尚未设置此容忍度的 Pod。

--disable-compression

如果为 true,则对服务器所有请求的响应不再压缩。

--insecure-skip-tls-verify

如果为 true,则不检查服务器证书的有效性。这将使你的 HTTPS 连接不安全。

--kubeconfig string

CLI 请求要使用的 kubeconfig 文件的路径。

--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 集群管理器

3 - kubectl 快速参考

本页列举常用的 kubectl 命令和参数。

kubectl 自动补全

BASH

source <(kubectl completion bash) # 在 bash 中设置当前 shell 的自动补全,要先安装 bash-completion 包
echo "source <(kubectl completion bash)" >> ~/.bashrc # 在你的 bash shell 中永久地添加自动补全

你还可以在补全时为 kubectl 使用一个速记别名:

alias k=kubectl
complete -o default -F __start_kubectl k

ZSH

source <(kubectl completion zsh)  # 在 zsh 中设置当前 shell 的自动补全
echo '[[ $commands[kubectl] ]] && source <(kubectl completion zsh)' >> ~/.zshrc # 在你的 zsh shell 中永久地添加自动补全

FISH

echo 'kubectl completion fish | source' > ~/.config/fish/completions/kubectl.fish && source ~/.config/fish/completions/kubectl.fish

关于 --all-namespaces 的一点说明

我们经常用到 --all-namespaces 参数,你应该要知道它的简写:

kubectl -A

kubectl 上下文和配置

设置 kubectl 与哪个 Kubernetes 集群进行通信并修改配置信息。 查看使用 kubeconfig 跨集群授权访问 文档获取配置文件详细信息。

kubectl config view # 显示合并的 kubeconfig 配置

# 同时使用多个 kubeconfig 文件并查看合并的配置
KUBECONFIG=~/.kube/config:~/.kube/kubconfig2

kubectl config view

# 显示合并的 kubeconfig 配置和原始证书数据以及公开的 Secret
kubectl config view --raw

# 获取 e2e 用户的密码
kubectl config view -o jsonpath='{.users[?(@.name == "e2e")].user.password}'

# 获取 e2e 用户的证书
kubectl config view --raw -o jsonpath='{.users[?(.name == "e2e")].user.client-certificate-data}' | base64 -d

kubectl config view -o jsonpath='{.users[].name}'    # 显示第一个用户
kubectl config view -o jsonpath='{.users[*].name}'   # 获取用户列表
kubectl config get-contexts                          # 显示上下文列表
kubectl config get-contexts -o name                  # 获取所有上下文的名称
kubectl config current-context                       # 展示当前所处的上下文
kubectl config use-context my-cluster-name           # 设置默认的上下文为 my-cluster-name

kubectl config set-cluster my-cluster-name           # 在 kubeconfig 中设置集群条目

# 在 kubeconfig 中配置代理服务器的 URL,以用于该客户端的请求
kubectl config set-cluster my-cluster-name --proxy-url=my-proxy-url

# 添加新的用户配置到 kubeconf 中,使用 basic auth 进行身份认证
kubectl config set-credentials kubeuser/foo.kubernetes.com --username=kubeuser --password=kubepassword

# 在指定上下文中持久性地保存名字空间,供所有后续 kubectl 命令使用
kubectl config set-context --current --namespace=ggckad-s2

# 使用特定的用户名和名字空间设置上下文
kubectl config set-context gce --user=cluster-admin --namespace=foo \
  && kubectl config use-context gce

kubectl config unset users.foo                       # 删除用户 foo

# 设置或显示 context / namespace 的短别名
# (仅适用于 bash 和 bash 兼容的 shell,在使用 kn 设置命名空间之前要先设置 current-context)
alias kx='f() { [ "$1" ] && kubectl config use-context $1 || kubectl config current-context ; } ; f'
alias kn='f() { [ "$1" ] && kubectl config set-context --current --namespace $1 || kubectl config view --minify | grep namespace | cut -d" " -f6 ; } ; f'

kubectl apply

apply 通过定义 Kubernetes 资源的文件来管理应用。 它通过运行 kubectl apply 在集群中创建和更新资源。 这是在生产中管理 Kubernetes 应用的推荐方法。 参见 kubectl 文档

创建对象

Kubernetes 配置可以用 YAML 或 JSON 定义。可以使用的文件扩展名有 .yaml.yml.json

kubectl apply -f ./my-manifest.yaml                  # 创建资源
kubectl apply -f ./my1.yaml -f ./my2.yaml            # 使用多个文件创建
kubectl apply -f ./dir                               # 基于目录下的所有清单文件创建资源
kubectl apply -f https://example.com/manifest.yaml   # 从 URL 中创建资源(注意:这是一个示例域名,不包含有效的清单)
kubectl create deployment nginx --image=nginx        # 启动单实例 nginx

# 创建一个打印 “Hello World” 的 Job
kubectl create job hello --image=busybox:1.28 -- echo "Hello World" 

# 创建一个打印 “Hello World” 间隔 1 分钟的 CronJob
kubectl create cronjob hello --image=busybox:1.28   --schedule="*/1 * * * *" -- echo "Hello World"    

kubectl explain pods                          # 获取 Pod 清单的文档说明

# 从标准输入创建多个 YAML 对象
kubectl apply -f - <<EOF
apiVersion: v1
kind: Pod
metadata:
  name: busybox-sleep
spec:
  containers:
  - name: busybox
    image: busybox:1.28
    args:
    - sleep
    - "1000000"
---
apiVersion: v1
kind: Pod
metadata:
  name: busybox-sleep-less
spec:
  containers:
  - name: busybox
    image: busybox:1.28
    args:
    - sleep
    - "1000"
EOF

# 创建有多个 key 的 Secret
kubectl apply -f - <<EOF
apiVersion: v1
kind: Secret
metadata:
  name: mysecret
type: Opaque
data:
  password: $(echo -n "s33msi4" | base64 -w0)
  username: $(echo -n "jane" | base64 -w0)
EOF

查看和查找资源

# get 命令的基本输出
kubectl get services                          # 列出当前命名空间下的所有 Service
kubectl get pods --all-namespaces             # 列出所有命名空间下的全部的 Pod
kubectl get pods -o wide                      # 列出当前命名空间下的全部 Pod 并显示更详细的信息
kubectl get deployment my-dep                 # 列出某个特定的 Deployment
kubectl get pods                              # 列出当前命名空间下的全部 Pod
kubectl get pod my-pod -o yaml                # 获取一个 Pod 的 YAML

# describe 命令的详细输出
kubectl describe nodes my-node
kubectl describe pods my-pod

# 列出当前名字空间下所有 Service,按名称排序
kubectl get services --sort-by=.metadata.name

# 列出 Pod,按重启次数排序
kubectl get pods --sort-by='.status.containerStatuses[0].restartCount'

# 列举所有 PV 持久卷,按容量排序
kubectl get pv --sort-by=.spec.capacity.storage

# 获取包含 app=cassandra 标签的所有 Pod 的 version 标签
kubectl get pods --selector=app=cassandra -o \
  jsonpath='{.items[*].metadata.labels.version}'

# 检索带有 “.” 键值,例如 'ca.crt'
kubectl get configmap myconfig \
  -o jsonpath='{.data.ca\.crt}'

# 检索一个 base64 编码的值,其中的键名应该包含减号而不是下划线
kubectl get secret my-secret --template='{{index .data "key-name-with-dashes"}}'

# 获取所有工作节点(使用选择算符以排除标签名称为 'node-role.kubernetes.io/control-plane' 的结果)
kubectl get node --selector='!node-role.kubernetes.io/control-plane'

# 获取当前命名空间中正在运行的 Pod
kubectl get pods --field-selector=status.phase=Running

# 获取全部节点的 ExternalIP 地址
kubectl get nodes -o jsonpath='{.items[*].status.addresses[?(@.type=="ExternalIP")].address}'

# 列出属于某个特定 RC 的 Pod 的名称
# 在转换对于 jsonpath 过于复杂的场合,"jq" 命令很有用;可以在 https://jqlang.github.io/jq/ 找到它
sel=${$(kubectl get rc my-rc --output=json | jq -j '.spec.selector | to_entries | .[] | "\(.key)=\(.value),"')%?}
echo $(kubectl get pods --selector=$sel --output=jsonpath={.items..metadata.name})

# 显示所有 Pod 的标签(或任何其他支持标签的 Kubernetes 对象)
kubectl get pods --show-labels

# 检查哪些节点处于就绪状态
JSONPATH='{range .items[*]}{@.metadata.name}:{range @.status.conditions[*]}{@.type}={@.status};{end}{end}' \
 && kubectl get nodes -o jsonpath="$JSONPATH" | grep "Ready=True"
 
# 使用自定义列检查哪些节点处于就绪状态
kubectl get node -o custom-columns='NODE_NAME:.metadata.name,STATUS:.status.conditions[?(@.type=="Ready")].status'

# 不使用外部工具来输出解码后的 Secret
kubectl get secret my-secret -o go-template='{{range $k,$v := .data}}{{"### "}}{{$k}}{{"\n"}}{{$v|base64decode}}{{"\n\n"}}{{end}}'

# 列出被一个 Pod 使用的全部 Secret
kubectl get pods -o json | jq '.items[].spec.containers[].env[]?.valueFrom.secretKeyRef.name' | grep -v null | sort | uniq

# 列举所有 Pod 中初始化容器的容器 ID(containerID)
# 可用于在清理已停止的容器时避免删除初始化容器
kubectl get pods --all-namespaces -o jsonpath='{range .items[*].status.initContainerStatuses[*]}{.containerID}{"\n"}{end}' | cut -d/ -f3

# 列出事件(Event),按时间戳排序
kubectl get events --sort-by=.metadata.creationTimestamp

# 列出所有警告事件
kubectl events --types=Warning

# 比较当前的集群状态和假定某清单被应用之后的集群状态
kubectl diff -f ./my-manifest.yaml

# 生成一个句点分隔的树,其中包含为节点返回的所有键
# 在复杂的嵌套JSON结构中定位键时非常有用
kubectl get nodes -o json | jq -c 'paths|join(".")'

# 生成一个句点分隔的树,其中包含为 Pod 等返回的所有键
kubectl get pods -o json | jq -c 'paths|join(".")'

# 假设你的 Pod 有默认的容器和默认的名字空间,并且支持 'env' 命令,可以使用以下脚本为所有 Pod 生成 ENV 变量。
# 该脚本也可用于在所有的 Pod 里运行任何受支持的命令,而不仅仅是 'env'。
for pod in $(kubectl get po --output=jsonpath={.items..metadata.name}); do echo $pod && kubectl exec -it $pod -- env; done

# 获取一个 Deployment 的 status 子资源
kubectl get deployment nginx-deployment --subresource=status

更新资源

kubectl set image deployment/frontend www=image:v2               # 滚动更新 "frontend" Deployment 的 "www" 容器镜像
kubectl rollout history deployment/frontend                      # 检查 Deployment 的历史记录,包括版本
kubectl rollout undo deployment/frontend                         # 回滚到上次部署版本
kubectl rollout undo deployment/frontend --to-revision=2         # 回滚到特定部署版本
kubectl rollout status -w deployment/frontend                    # 监视 "frontend" Deployment 的滚动升级状态直到完成
kubectl rollout restart deployment/frontend                      # 轮替重启 "frontend" Deployment

cat pod.json | kubectl replace -f -                              # 通过传入到标准输入的 JSON 来替换 Pod

# 强制替换,删除后重建资源。会导致服务不可用。
kubectl replace --force -f ./pod.json

# 为多副本的 nginx 创建服务,使用 80 端口提供服务,连接到容器的 8000 端口
kubectl expose rc nginx --port=80 --target-port=8000

# 将某单容器 Pod 的镜像版本(标签)更新到 v4
kubectl get pod mypod -o yaml | sed 's/\(image: myimage\):.*$/\1:v4/' | kubectl replace -f -

kubectl label pods my-pod new-label=awesome                      # 添加标签
kubectl label pods my-pod new-label-                             # 移除标签
kubectl label pods my-pod new-label=new-value --overwrite        # 覆盖现有的值
kubectl annotate pods my-pod icon-url=http://goo.gl/XXBTWq       # 添加注解
kubectl annotate pods my-pod icon-url-                           # 移除注解
kubectl autoscale deployment foo --min=2 --max=10                # 对 "foo" Deployment 自动扩缩容

部分更新资源

# 部分更新某节点
kubectl patch node k8s-node-1 -p '{"spec":{"unschedulable":true}}'

# 更新容器的镜像;spec.containers[*].name 是必需的。因为它是一个合并性质的主键。
kubectl patch pod valid-pod -p '{"spec":{"containers":[{"name":"kubernetes-serve-hostname","image":"new image"}]}}'

# 使用带位置数组的 JSON patch 更新容器的镜像
kubectl patch pod valid-pod --type='json' -p='[{"op": "replace", "path": "/spec/containers/0/image", "value":"new image"}]'

# 使用带位置数组的 JSON patch 禁用某 Deployment 的 livenessProbe
kubectl patch deployment valid-deployment  --type json   -p='[{"op": "remove", "path": "/spec/template/spec/containers/0/livenessProbe"}]'

# 在带位置数组中添加元素
kubectl patch sa default --type='json' -p='[{"op": "add", "path": "/secrets/1", "value": {"name": "whatever" } }]'

# 通过修正 scale 子资源来更新 Deployment 的副本数
kubectl patch deployment nginx-deployment --subresource='scale' --type='merge' -p '{"spec":{"replicas":2}}'

编辑资源

使用你偏爱的编辑器编辑 API 资源。

kubectl edit svc/docker-registry                      # 编辑名为 docker-registry 的服务
KUBE_EDITOR="nano" kubectl edit svc/docker-registry   # 使用其他编辑器

对资源进行扩缩

kubectl scale --replicas=3 rs/foo                                 # 将名为 'foo' 的副本集扩缩到 3 副本
kubectl scale --replicas=3 -f foo.yaml                            # 将在 "foo.yaml" 中的特定资源扩缩到 3 个副本
kubectl scale --current-replicas=2 --replicas=3 deployment/mysql  # 如果名为 mysql 的 Deployment 的副本当前是 2,那么将它扩缩到 3
kubectl scale --replicas=5 rc/foo rc/bar rc/baz                   # 扩缩多个副本控制器

删除资源

kubectl delete -f ./pod.json                                              # 删除在 pod.json 中指定的类型和名称的 Pod
kubectl delete pod unwanted --now                                         # 删除 Pod 且无宽限期限(无优雅时段)
kubectl delete pod,service baz foo                                        # 删除名称为 "baz" 和 "foo" 的 Pod 和服务
kubectl delete pods,services -l name=myLabel                              # 删除包含 name=myLabel 标签的 Pod 和服务
kubectl -n my-ns delete pod,svc --all                                     # 删除在 my-ns 名字空间中全部的 Pod 和服务
# 删除所有与 pattern1 或 pattern2 awk 模式匹配的 Pod
kubectl get pods  -n mynamespace --no-headers=true | awk '/pattern1|pattern2/{print $1}' | xargs  kubectl delete -n mynamespace pod

与运行中的 Pod 进行交互

kubectl logs my-pod                                 # 获取 Pod 日志(标准输出)
kubectl logs -l name=myLabel                        # 获取含 name=myLabel 标签的 Pod 的日志(标准输出)
kubectl logs my-pod --previous                      # 获取上个容器实例的 Pod 日志(标准输出)
kubectl logs my-pod -c my-container                 # 获取 Pod 容器的日志(标准输出, 多容器场景)
kubectl logs -l name=myLabel -c my-container        # 获取含 name=myLabel 标签的 Pod 容器日志(标准输出, 多容器场景)
kubectl logs my-pod -c my-container --previous      # 获取 Pod 中某容器的上个实例的日志(标准输出, 多容器场景)
kubectl logs -f my-pod                              # 流式输出 Pod 的日志(标准输出)
kubectl logs -f my-pod -c my-container              # 流式输出 Pod 容器的日志(标准输出, 多容器场景)
kubectl logs -f -l name=myLabel --all-containers    # 流式输出含 name=myLabel 标签的 Pod 的所有日志(标准输出)
kubectl run -i --tty busybox --image=busybox:1.28 -- sh  # 以交互式 Shell 运行 Pod
kubectl run nginx --image=nginx -n mynamespace      # 在 “mynamespace” 命名空间中运行单个 nginx Pod
kubectl run nginx --image=nginx --dry-run=client -o yaml > pod.yaml
                                                    # 为运行 nginx Pod 生成规约并将其写入到名为 pod.yaml 的文件

kubectl attach my-pod -i                            # 挂接到一个运行的容器中
kubectl port-forward my-pod 5000:6000               # 在本地计算机上侦听端口 5000 并转发到 my-pod 上的端口 6000
kubectl exec my-pod -- ls /                         # 在已有的 Pod 中运行命令(单容器场景)
kubectl exec --stdin --tty my-pod -- /bin/sh        # 使用交互 shell 访问正在运行的 Pod (一个容器场景)
kubectl exec my-pod -c my-container -- ls /         # 在已有的 Pod 中运行命令(多容器场景)
kubectl debug my-pod -it --image=busybox:1.28       # 在现有 Pod 中创建交互式调试会话并立即附加到此 Pod 上
kubectl debug node/my-node -it --image=busybox:1.28 # 在节点上创建交互式调试会话并立即附加到此节点上
kubectl top pod                                     # 显示默认命名空间中所有 Pod 的度量值
kubectl top pod POD_NAME --containers               # 显示给定 Pod 和其中容器的度量值
kubectl top pod POD_NAME --sort-by=cpu              # 显示给定 Pod 的指标并且按照 'cpu' 或者 'memory' 排序

从容器中复制文件和目录

kubectl cp /tmp/foo_dir my-pod:/tmp/bar_dir            # 将 /tmp/foo_dir 本地目录复制到远程当前命名空间中 Pod 中的 /tmp/bar_dir
kubectl cp /tmp/foo my-pod:/tmp/bar -c my-container    # 将 /tmp/foo 本地文件复制到远程 Pod 中特定容器的 /tmp/bar 下
kubectl cp /tmp/foo my-namespace/my-pod:/tmp/bar       # 将 /tmp/foo 本地文件复制到远程 “my-namespace” 命名空间内指定 Pod 中的 /tmp/bar
kubectl cp my-namespace/my-pod:/tmp/foo /tmp/bar       # 将 /tmp/foo 从远程 Pod 复制到本地 /tmp/bar
tar cf - /tmp/foo | kubectl exec -i -n my-namespace my-pod -- tar xf - -C /tmp/bar  # 将 /tmp/foo 本地文件复制到远程 “my-namespace” 命名空间中 Pod 中的 /tmp/bar
kubectl exec -n my-namespace my-pod -- tar cf - /tmp/foo | tar xf - -C /tmp/bar    # 将 /tmp/foo 从远程 Pod 复制到本地 /tmp/bar

与 Deployments 和 Services 进行交互

kubectl logs deploy/my-deployment                         # 获取一个 Deployment 的 Pod 的日志(单容器例子)
kubectl logs deploy/my-deployment -c my-container         # 获取一个 Deployment 的 Pod 的日志(多容器例子)

kubectl port-forward svc/my-service 5000                  # 侦听本地端口 5000 并转发到 Service 后端端口 5000
kubectl port-forward svc/my-service 5000:my-service-port  # 侦听本地端口 5000 并转发到名字为 <my-service-port> 的 Service 目标端口

kubectl port-forward deploy/my-deployment 5000:6000       # 侦听本地端口 5000 并转发到 <my-deployment> 创建的 Pod 里的端口 6000
kubectl exec deploy/my-deployment -- ls                   # 在 Deployment 里的第一个 Pod 的第一个容器里运行命令(单容器和多容器例子)

与节点和集群进行交互

kubectl cordon my-node                                                # 标记 my-node 节点为不可调度
kubectl drain my-node                                                 # 对 my-node 节点进行清空操作,为节点维护做准备
kubectl uncordon my-node                                              # 标记 my-node 节点为可以调度
kubectl top node                                                      # 显示所有节点的度量值
kubectl top node my-node                                              # 显示给定节点的度量值
kubectl cluster-info                                                  # 显示主控节点和服务的地址
kubectl cluster-info dump                                             # 将当前集群状态转储到标准输出
kubectl cluster-info dump --output-directory=/path/to/cluster-state   # 将当前集群状态输出到 /path/to/cluster-state

# 查看当前节点上存在的现有污点
kubectl get nodes -o='custom-columns=NodeName:.metadata.name,TaintKey:.spec.taints[*].key,TaintValue:.spec.taints[*].value,TaintEffect:.spec.taints[*].effect'

# 如果已存在具有指定键和效果的污点,则替换其值为指定值
kubectl taint nodes foo dedicated=special-user:NoSchedule

资源类型

列出所支持的全部资源类型和它们的简称、 API 组、 是否是名字空间作用域Kind

kubectl api-resources

用于探索 API 资源的其他操作:

kubectl api-resources --namespaced=true      # 所有命名空间作用域的资源
kubectl api-resources --namespaced=false     # 所有非命名空间作用域的资源
kubectl api-resources -o name                # 用简单格式列举所有资源(仅显示资源名称)
kubectl api-resources -o wide                # 用扩展格式列举所有资源(又称 "wide" 格式)
kubectl api-resources --verbs=list,get       # 支持 "list" 和 "get" 请求动词的所有资源
kubectl api-resources --api-group=extensions # "extensions" API 组中的所有资源

格式化输出

要以特定格式将详细信息输出到终端窗口,将 -o(或者 --output)参数添加到支持的 kubectl 命令中。

输出格式描述
-o=custom-columns=<spec>使用逗号分隔的自定义列来打印表格
-o=custom-columns-file=<filename>使用 <filename> 文件中的自定义列模板打印表格
-o=go-template=<template>打印在 golang 模板中定义的字段
-o=go-template-file=<filename>打印在 <filename> 文件中由 golang 模板定义的字段
-o=json输出 JSON 格式的 API 对象
-o=jsonpath=<template>打印 jsonpath 表达式中定义的字段
-o=jsonpath-file=<filename>打印在 <filename> 文件中定义的 jsonpath 表达式所指定的字段
-o=name仅打印资源名称而不打印其他内容
-o=wide以纯文本格式输出额外信息,对于 Pod 来说,输出中包含了节点名称
-o=yaml输出 YAML 格式的 API 对象

使用 -o=custom-columns 的示例:

# 集群中运行着的所有镜像
kubectl get pods -A -o=custom-columns='DATA:spec.containers[*].image'

# 列举 default 名字空间中运行的所有镜像,按 Pod 分组
kubectl get pods --namespace default --output=custom-columns="NAME:.metadata.name,IMAGE:.spec.containers[*].image"

# 除 "registry.k8s.io/coredns:1.6.2" 之外的所有镜像
kubectl get pods -A -o=custom-columns='DATA:spec.containers[?(@.image!="registry.k8s.io/coredns:1.6.2")].image'

# 输出 metadata 下面的所有字段,无论 Pod 名字为何
kubectl get pods -A -o=custom-columns='DATA:metadata.*'

有关更多示例,请参看 kubectl 参考文档

kubectl 日志输出详细程度和调试

kubectl 日志输出详细程度是通过 -v 或者 --v 来控制的,参数后跟一个数字表示日志的级别。 Kubernetes 通用的日志习惯和相关的日志级别在 这里有相应的描述。

详细程度描述
--v=0用于那些应该 始终 对运维人员可见的信息,因为这些信息一般很有用。
--v=1如果你不想要看到冗余信息,此值是一个合理的默认日志级别。
--v=2输出有关服务的稳定状态的信息以及重要的日志消息,这些信息可能与系统中的重大变化有关。这是建议大多数系统设置的默认日志级别。
--v=3包含有关系统状态变化的扩展信息。
--v=4包含调试级别的冗余信息。
--v=5跟踪级别的详细程度。
--v=6显示所请求的资源。
--v=7显示 HTTP 请求头。
--v=8显示 HTTP 请求内容。
--v=9显示 HTTP 请求内容而且不截断内容。

接下来

4 - kubectl 命令

kubectl 命令参考

5 - kubectl

简介

kubectl 管理控制 Kubernetes 集群。

更多信息请查阅命令行工具kubectl)。

kubectl [flags]

选项

--add-dir-header
设置为 true 表示添加文件目录到日志信息头中
--alsologtostderr
表示将日志输出到文件的同时输出到 stderr
--as string
以指定用户的身份执行操作
--as-group stringArray
模拟指定的组来执行操作,可以使用这个标志来指定多个组。
--azure-container-registry-config string
包含 Azure 容器仓库配置信息的文件的路径。
--cache-dir string     默认值:"$HOME/.kube/cache"
默认缓存目录
--certificate-authority string
指向证书机构的 cert 文件路径
--client-certificate string
TLS 使用的客户端证书路径
--client-key string
TLS 使用的客户端密钥文件路径
--cloud-provider-gce-l7lb-src-cidrs cidrs     默认值:130.211.0.0/22,35.191.0.0/16
在 GCE 防火墙中开放的 CIDR,用来进行 L7 LB 流量代理和健康检查。
--cloud-provider-gce-lb-src-cidrs cidrs     默认值:130.211.0.0/22,209.85.152.0/22,209.85.204.0/22,35.191.0.0/16
在 GCE 防火墙中开放的 CIDR,用来进行 L4 LB 流量代理和健康检查。
--cluster string
要使用的 kubeconfig 集群的名称
--context string
要使用的 kubeconfig 上下文的名称
--default-not-ready-toleration-seconds int     默认值:300
表示 `notReady` 状态的容忍度秒数:默认情况下,`NoExecute` 被添加到尚未具有此容忍度的每个 Pod 中。
--default-unreachable-toleration-seconds int     默认值:300
表示 `unreachable` 状态的容忍度秒数:默认情况下,`NoExecute` 被添加到尚未具有此容忍度的每个 Pod 中。
-h, --help
kubectl 操作的帮助命令
--insecure-skip-tls-verify
设置为 true,则表示不会检查服务器证书的有效性。这样会导致你的 HTTPS 连接不安全。
--kubeconfig string
CLI 请求使用的 kubeconfig 配置文件的路径。
--log-backtrace-at traceLocation     默认值:0
当日志机制运行到指定文件的指定行(file:N)时,打印调用堆栈信息
--log-dir string
如果不为空,则将日志文件写入此目录
--log-file string
如果不为空,则将使用此日志文件
--log-file-max-size uint     默认值:1800
定义日志文件的最大尺寸。单位为兆字节。如果值设置为 0,则表示日志文件大小不受限制。
--log-flush-frequency duration     默认值:5s
两次日志刷新操作之间的最长时间(秒)
--logtostderr     默认值:true
日志输出到 stderr 而不是文件中
--match-server-version
要求客户端版本和服务端版本相匹配
-n, --namespace string
如果存在,CLI 请求将使用此命名空间
--one-output
如果为 true,则只将日志写入初始严重级别(而不是同时写入所有较低的严重级别)。
--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 服务器的地址和端口
--skip-headers
设置为 true 则表示跳过在日志消息中出现 header 前缀信息
--skip-log-headers
设置为 true 则表示在打开日志文件时跳过 header 信息
--stderrthreshold severity     默认值:2
等于或高于此阈值的日志将输出到标准错误输出(stderr)
--token string
用于对 API 服务器进行身份认证的持有者令牌
--user string
指定使用 kubeconfig 配置文件中的用户名
--username string
用于 API 服务器的基本身份验证的用户名
-v, --v Level
指定输出日志的日志详细级别
--version version[=true]
打印 kubectl 版本信息并退出
--vmodule moduleSpec
以逗号分隔的 pattern=N 设置列表,用于过滤文件的日志记录

环境变量

KUBECONFIG
kubectl 的配置 ("kubeconfig") 文件的路径。默认值:"$HOME/.kube/config"
KUBECTL_COMMAND_HEADERS
设置为 false 时,将关闭额外的 HTTP 标头,不再详细说明被调用的 kubectl 命令(此变量适用于 Kubernetes v1.22 或更高版本)
KUBECTL_EXPLAIN_OPENAPIV3
切换对 `kubectl explain` 的调用是否使用可用的新 OpenAPIv3 数据源。OpenAPIV3 自 Kubernetes 1.24 起默认被启用。
KUBECTL_ENABLE_CMD_SHADOW
当设置为 true 时,如果子命令不存在,外部插件可以用作内置命令的子命令。 此功能处于 alpha 阶段,只能用于 create 命令(例如 kubectl create networkpolicy)。
KUBECTL_PORT_FORWARD_WEBSOCKETS
当设置为 true 时,`kubectl port-forward` 命令将尝试使用 WebSocket 协议进行流式传输。 如果升级到 WebSocket 失败,命令将回退到使用当前的 SPDY 协议。
KUBECTL_REMOTE_COMMAND_WEBSOCKETS
当设置为 true 时,kubectl exec、cp 和 attach 命令将尝试使用 WebSocket 协议进行流式传输。 如果升级到 WebSocket 失败,这些命令将回退为使用当前的 SPDY 协议。

另请参见

  • kubectl cordon - 标记节点为不可调度的
  • kubectl cp - 将文件和目录拷入/拷出容器
  • kubectl create - 通过文件或标准输入来创建资源
  • kubectl debug - 创建用于排查工作负载和节点故障的调试会话
  • kubectl delete - 通过文件名、标准输入、资源和名字删除资源, 或者通过资源和标签选择算符来删除资源

6 - JSONPath 支持

kubectl 支持 JSONPath 模板。

JSONPath 模板由 {} 包起来的 JSONPath 表达式组成。Kubectl 使用 JSONPath 表达式来过滤 JSON 对象中的特定字段并格式化输出。 除了原始的 JSONPath 模板语法,以下函数和语法也是有效的:

  1. 使用双引号将 JSONPath 表达式内的文本引起来。
  2. 使用 rangeend 运算符来迭代列表。
  3. 使用负片索引后退列表。负索引不会“环绕”列表,并且只要 -index + listLength> = 0 就有效。

给定 JSON 输入:

{
  "kind": "List",
  "items":[
    {
      "kind":"None",
      "metadata":{
        "name":"127.0.0.1",
        "labels":{
          "kubernetes.io/hostname":"127.0.0.1"
        }
      },
      "status":{
        "capacity":{"cpu":"4"},
        "addresses":[{"type": "LegacyHostIP", "address":"127.0.0.1"}]
      }
    },
    {
      "kind":"None",
      "metadata":{"name":"127.0.0.2"},
      "status":{
        "capacity":{"cpu":"8"},
        "addresses":[
          {"type": "LegacyHostIP", "address":"127.0.0.2"},
          {"type": "another", "address":"127.0.0.3"}
        ]
      }
    }
  ],
  "users":[
    {
      "name": "myself",
      "user": {}
    },
    {
      "name": "e2e",
      "user": {"username": "admin", "password": "secret"}
    }
  ]
}
函数描述示例结果
text纯文本kind is {.kind}kind is List
@当前对象{@}与输入相同
.[]子运算符{.kind}{['kind']}{['name\.type']}List
..递归下降{..name}127.0.0.1 127.0.0.2 myself e2e
*通配符。获取所有对象{.items[*].metadata.name}[127.0.0.1 127.0.0.2]
[start:end:step]下标运算符{.users[0].name}myself
[,]并集运算符{.items[*]['metadata.name', 'status.capacity']}127.0.0.1 127.0.0.2 map[cpu:4] map[cpu:8]
?()过滤{.users[?(@.name=="e2e")].user.password}secret
rangeend迭代列表{range .items[*]}[{.metadata.name}, {.status.capacity}] {end}[127.0.0.1, map[cpu:4]] [127.0.0.2, map[cpu:8]]
''引用解释执行字符串{range .items[*]}{.metadata.name}{'\t'}{end}127.0.0.1 127.0.0.2
\转义终止符{.items[0].metadata.labels.kubernetes\.io/hostname}127.0.0.1

使用 kubectl 和 JSONPath 表达式的示例:

kubectl get pods -o json
kubectl get pods -o=jsonpath='{@}'
kubectl get pods -o=jsonpath='{.items[0]}'
kubectl get pods -o=jsonpath='{.items[0].metadata.name}'
kubectl get pods -o=jsonpath="{.items[*]['metadata.name', 'status.capacity']}"
kubectl get pods -o=jsonpath='{range .items[*]}{.metadata.name}{"\t"}{.status.startTime}{"\n"}{end}'
kubectl get pods -o=jsonpath='{.items[0].metadata.labels.kubernetes\.io/hostname}'

7 - 适用于 Docker 用户的 kubectl

你可以使用 Kubernetes 命令行工具 kubectl 与 API 服务器进行交互。如果你熟悉 Docker 命令行工具, 则使用 kubectl 非常简单。但是,Docker 命令和 kubectl 命令之间有一些区别。以下显示了 Docker 子命令, 并描述了等效的 kubectl 命令。

docker run

要运行 nginx 部署并将其暴露,请参见 kubectl create deployment

使用 docker 命令:

docker run -d --restart=always -e DOMAIN=cluster --name nginx-app -p 80:80 nginx
55c103fa129692154a7652490236fee9be47d70a8dd562281ae7d2f9a339a6db
docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
55c103fa1296        nginx               "nginx -g 'daemon of…"   9 seconds ago       Up 9 seconds        0.0.0.0:80->80/tcp   nginx-app

使用 kubectl 命令:

# 启动运行 nginx 的 Pod
kubectl create deployment --image=nginx nginx-app
deployment.apps/nginx-app created
# 添加 env 到 nginx-app
kubectl set env deployment/nginx-app  DOMAIN=cluster
deployment.apps/nginx-app env updated
# 通过 Service 公开端口
kubectl expose deployment nginx-app --port=80 --name=nginx-http
service "nginx-http" exposed

在 kubectl 命令中,我们创建了一个 Deployment, 这将保证有 N 个运行 nginx 的 Pod(N 代表 spec 中声明的副本数,默认为 1)。 我们还创建了一个 Service,其选择算符与容器标签匹配。 查看使用 Service 访问集群中的应用程序获取更多信息。

默认情况下镜像会在后台运行,与 docker run -d ... 类似,如果你想在前台运行, 使用 kubectl run 在前台运行 Pod:

kubectl run [-i] [--tty] --attach <name> --image=<image>

docker run ... 不同的是,如果指定了 --attach,我们将连接到 stdinstdoutstderr, 而不能控制具体连接到哪个输出流(docker -a ...)。要从容器中退出,可以输入 Ctrl + P,然后按 Ctrl + Q。

因为我们使用 Deployment 启动了容器,如果你终止连接到的进程(例如 ctrl-c),容器将会重启, 这跟 docker run -it 不同。如果想销毁该 Deployment(和它的 Pod), 你需要运行 kubectl delete deployment <name>

docker ps

如何列出哪些正在运行?查看 kubectl get

使用 docker 命令:

docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED              STATUS                     PORTS                NAMES
14636241935f        ubuntu:16.04        "echo test"              5 seconds ago        Exited (0) 5 seconds ago                        cocky_fermi
55c103fa1296        nginx               "nginx -g 'daemon of…"   About a minute ago   Up About a minute          0.0.0.0:80->80/tcp   nginx-app

使用 kubectl 命令:

kubectl get po
NAME                        READY     STATUS      RESTARTS   AGE
nginx-app-8df569cb7-4gd89   1/1       Running     0          3m
ubuntu                      0/1       Completed   0          20s

docker attach

如何连接到已经运行在容器中的进程? 查看 kubectl attach

使用 docker 命令:

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
55c103fa1296        nginx               "nginx -g 'daemon of…"   5 minutes ago       Up 5 minutes        0.0.0.0:80->80/tcp   nginx-app
docker attach 55c103fa1296
...

使用 kubectl 命令:

kubectl get pods
NAME              READY     STATUS    RESTARTS   AGE
nginx-app-5jyvm   1/1       Running   0          10m
kubectl attach -it nginx-app-5jyvm
...

要从容器中分离,可以输入 Ctrl + P,然后按 Ctrl + Q。

docker exec

如何在容器中执行命令?查看 kubectl exec

使用 docker 命令:

docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                NAMES
55c103fa1296        nginx               "nginx -g 'daemon of…"   6 minutes ago       Up 6 minutes        0.0.0.0:80->80/tcp   nginx-app
docker exec 55c103fa1296 cat /etc/hostname
55c103fa1296

使用 kubectl 命令:

kubectl get po
NAME              READY     STATUS    RESTARTS   AGE
nginx-app-5jyvm   1/1       Running   0          10m
kubectl exec nginx-app-5jyvm -- cat /etc/hostname
nginx-app-5jyvm

执行交互式命令怎么办?

使用 docker 命令:

docker exec -ti 55c103fa1296 /bin/sh
# exit

使用 kubectl 命令:

kubectl exec -ti nginx-app-5jyvm -- /bin/sh
# exit

更多信息请查看获取运行中容器的 Shell 环境

docker logs

如何查看运行中进程的 stdout/stderr?查看 kubectl logs

使用 docker 命令:

docker logs -f a9e
192.168.9.1 - - [14/Jul/2015:01:04:02 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.35.0" "-"
192.168.9.1 - - [14/Jul/2015:01:04:03 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.35.0" "-"

使用 kubectl 命令:

kubectl logs -f nginx-app-zibvs
10.240.63.110 - - [14/Jul/2015:01:09:01 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.26.0" "-"
10.240.63.110 - - [14/Jul/2015:01:09:02 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.26.0" "-"

现在是时候提一下 Pod 和容器之间的细微差别了;默认情况下如果 Pod 中的进程退出 Pod 也不会终止, 相反它将会重启该进程。这类似于 docker run 时的 --restart=always 选项,这是主要差别。 在 Docker 中,进程的每个调用的输出都是被连接起来的,但是对于 Kubernetes,每个调用都是分开的。 要查看以前在 Kubernetes 中执行的输出,请执行以下操作:

kubectl logs --previous nginx-app-zibvs
10.240.63.110 - - [14/Jul/2015:01:09:01 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.26.0" "-"
10.240.63.110 - - [14/Jul/2015:01:09:02 +0000] "GET / HTTP/1.1" 200 612 "-" "curl/7.26.0" "-"

查看日志架构获取更多信息。

docker stop 和 docker rm

如何停止和删除运行中的进程?查看 kubectl delete

使用 docker 命令:

docker ps
CONTAINER ID        IMAGE               COMMAND                CREATED             STATUS              PORTS                         NAMES
a9ec34d98787        nginx               "nginx -g 'daemon of"  22 hours ago        Up 22 hours         0.0.0.0:80->80/tcp, 443/tcp   nginx-app
docker stop a9ec34d98787
a9ec34d98787
docker rm a9ec34d98787
a9ec34d98787

使用 kubectl 命令:

kubectl get deployment nginx-app
NAME         READY   UP-TO-DATE   AVAILABLE   AGE
nginx-app    1/1     1            1           2m
kubectl get po -l app=nginx-app
NAME                         READY     STATUS    RESTARTS   AGE
nginx-app-2883164633-aklf7   1/1       Running   0          2m
kubectl delete deployment nginx-app
deployment "nginx-app" deleted
kubectl get po -l app=nginx-app
# 什么都没有返回

docker login

在 kubectl 中没有对 docker login 的直接模拟。如果你有兴趣在私有镜像仓库中使用 Kubernetes, 请参阅使用私有镜像仓库

docker version

如何查看客户端和服务端的版本?查看 kubectl version

使用 docker 命令:

docker version
Client version: 1.7.0
Client API version: 1.19
Go version (client): go1.4.2
Git commit (client): 0baf609
OS/Arch (client): linux/amd64
Server version: 1.7.0
Server API version: 1.19
Go version (server): go1.4.2
Git commit (server): 0baf609
OS/Arch (server): linux/amd64

使用 kubectl 命令:

kubectl version
Client Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.9+a3d1dfa6f4335", GitCommit:"9b77fed11a9843ce3780f70dd251e92901c43072", GitTreeState:"dirty", BuildDate:"2017-08-29T20:32:58Z", OpenPaasKubernetesVersion:"v1.03.02", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}
Server Version: version.Info{Major:"1", Minor:"6", GitVersion:"v1.6.9+a3d1dfa6f4335", GitCommit:"9b77fed11a9843ce3780f70dd251e92901c43072", GitTreeState:"dirty", BuildDate:"2017-08-29T20:32:58Z", OpenPaasKubernetesVersion:"v1.03.02", GoVersion:"go1.7.5", Compiler:"gc", Platform:"linux/amd64"}

docker info

如何获取有关环境和配置的各种信息?查看 kubectl cluster-info

使用 docker 命令:

docker info
Containers: 40
Images: 168
Storage Driver: aufs
 Root Dir: /usr/local/google/docker/aufs
 Backing Filesystem: extfs
 Dirs: 248
 Dirperm1 Supported: false
Execution Driver: native-0.2
Logging Driver: json-file
Kernel Version: 3.13.0-53-generic
Operating System: Ubuntu 14.04.2 LTS
CPUs: 12
Total Memory: 31.32 GiB
Name: k8s-is-fun.mtv.corp.google.com
ID: ADUV:GCYR:B3VJ:HMPO:LNPQ:KD5S:YKFQ:76VN:IANZ:7TFV:ZBF4:BYJO
WARNING: No swap limit support

使用 kubectl 命令:

kubectl cluster-info
Kubernetes master is running at https://203.0.113.141
KubeDNS is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/kube-dns/proxy
kubernetes-dashboard is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/kubernetes-dashboard/proxy
Grafana is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/monitoring-grafana/proxy
Heapster is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/monitoring-heapster/proxy
InfluxDB is running at https://203.0.113.141/api/v1/namespaces/kube-system/services/monitoring-influxdb/proxy

8 - kubectl 的用法约定

kubectl 的推荐用法约定。

在可重用脚本中使用 kubectl

对于脚本中的稳定输出:

  • 请求一个面向机器的输出格式,例如 -o name-o json-o yaml-o go template-o jsonpath
  • 完全限定版本。例如 jobs.v1.batch/myjob。这将确保 kubectl 不会使用其默认版本,该版本会随着时间的推移而更改。
  • 不要依赖上下文、首选项或其他隐式状态。

子资源

  • 你可以将 --subresource Beta 标志用于 kubectl 命令,例如 getpatcheditreplace 来获取和更新所有支持子资源的资源的子资源。目前,仅支持 statusscale 子资源。
    • 对于 kubectl edit,不支持 scale 子资源。如果将 --subresourcekubectl edit 一起使用, 并指定 scale 作为子资源,则命令将会报错。
  • 针对子资源的 API 协定与完整资源相同。在更新 status 子资源为一个新值时,请记住, 子资源可能是潜在的由控制器调和为不同的值。

最佳实践

kubectl run

若希望 kubectl run 满足基础设施即代码的要求:

  • 使用特定版本的标签标记镜像,不要将该标签改为新版本。例如使用 :v1234v1.2.3r03062016-1-4, 而不是 :latest(有关详细信息,请参阅配置的最佳实践)。
  • 使用基于版本控制的脚本来运行包含大量参数的镜像。
  • 对于无法通过 kubectl run 参数来表示的功能特性,使用基于源码控制的配置文件,以记录要使用的功能特性。

你可以使用 --dry-run=client 参数来预览而不真正提交即将下发到集群的对象实例:

kubectl apply

  • 你可以使用 kubectl apply 命令创建或更新资源。有关使用 kubectl apply 更新资源的详细信息,请参阅 Kubectl 文档