kubectl 是操作 k8s 集群的命令行工具,安装在 k8s 的 master 节点,kubectl 在 $HOME/.kube 目录中查找一个名为 config 的文件, 你可以通过设置 Kubeconfig 环境变量 或设置特定的 kubeconfig,kubectl 也可以使用特定的 kubeconfig 文件操作 k8s 集群。
kubectl 通过与 apiserver 交互可以实现对 k8s 集群中各种资源的增删改查。接下来将会 介绍 kubectl 语法,命令行的操作,并介绍常见的示例。命令的详细信息、参数和子命令 可在 kubectl 参考文档中查看
kubectl --help 可以查看kubectl帮助命令
1.1 kubectl 语法
1.2 多个资源执行操作
在对多个资源执行操作时,可以按类型、名称、一个或者多个文件指定每个资源:
(1)按类型和名称指定资源
要对所有类型相同的资源进行分组,请执行以下操作:
TYPE1 name1 name2 name<#>
例子:kubectl get pod kube-scheduler-master etcd-master -n kube-system
分别指定多个资源类型:
TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>。
例:kubectl get pod/example-pod1 pod/example-pod2 deployment/example-rc1
kubectl get pod/cephfs-pod-1 pod/cephfs-pod-2
参考:Kubernetes kubectl annotate 命令详解 _ Kubernetes(K8S)中文文档_Kubernetes中文社区
下面讲解和 kubectl 操作相关的命令和语法: kubectl apply -f kubectl-pod.yaml
有关 kubectl 更详细的操作命令,可参考
https://kubernetes.io/docs/reference/kubectl/kubectl/
http://docs.kubernetes.org.cn/486.html
下表列出所有受支持的资源类型及其缩写别名: 以下输出可以通过 kubectl api-resources 获取


4.1 格式输出
kubectl 命令的默认输出格式是人类可读的明文格式,若要以特定格式向终端窗口输出详 细信息,可以将-o 或—out 参数添加到受支持的 kubectl 命令中。
4.2 语法
kubectl [command] [TYPE] [NAME] -o=<output_format>
根据 kubectl 操作,支持以下输出格式:

示例:在此示例中,以下命令将单个 pod 的详细信息输出为 YAML 格式的对象: kubectl get pod web-pod-13je7 -o yaml
注:有关每个命令支持哪种输出格式的详细信息,可参考:
https://kubernetes.io/docs/user-guide/kubectl/
4.3 自定义列
要定义自定义列并仅将所需的详细信息输出到表中,可以使用 custom-columns 选项。你 可以选择内联定义自定义列或使用模板文件:-o=custom-columns= 或 - o=custom-columns-file=
示例:
1)内联
kubectl get pods -o customcolumns=NAME:.metadata.name,RSRC:.metadata.resourceVersion
2)模板文件
kubectl get pods -o custom-columns-file=template.txt 其中,template.txt 文件内容是:
NAME RSRC

metadata.name metadata.resourceVersion
运行任何一个命令的结果是:
NAME RSRC
submit-queue
4.4 server-side列
kubectl 支持从服务器接收关于对象的特定列信息。 这意味着对于任何给定的资源,服务 器将返回与该资源相关的列和行,以便客户端打印。 通过让服务器封装打印的细节,这允 许在针对同一集群使用的客户端之间提供一致的人类可读输出。默认情况下,此功能在 kubectl 1.11 及更高版本中启用。要禁用它,请将该–server-print=false 参数添加 到 kubectl get 命令中。
例子: 要打印有关 pod 状态的信息,请使用如下命令:
kubectl get pods –server-print=false
输出如下:
NAME AGE
nfs-provisioner-595dcd6b77-527np 5d21h
4.5 排序列表对象
要将对象排序后输出到终端窗口,可以将–sort-by 参数添加到支持的 kubectl 命令。通 过使用–sort-by 参数指定任何数字或字符串字段来对对象进行排序。要指定字段,请使 用 jsonpath 表达式。
语法
kubectl [command] [TYPE] [NAME] –sort-by=<jsonpath_exp>
示例
要打印按名称排序的 pod 列表,请运行:
注意:
kubectl get 命令通常用于检索同一资源类型的一个或多个资源。 它具有丰 富的参数,允许您使用 -o 或 --output 参数自定义输出格式。您可以指定 - w 或 --watch 参数以开始观察特定对象的更新。 kubectl describe 命令更侧 重于描述指定资源的许多相关方面。它可以调用对 API 服务器 的多个 API 调 用来为用户构建视图。 例如,该 kubectl describe node 命令不仅检索有 关节点的信息,还检索在其上运行的 pod 的摘要,为节点生成的事件等。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/158292.html