前言
在搭建k8s集群之前,我们需要先了解下kubectl的使用,以便在集群部署出现问题时进行检查和处理。命令和语法记不住没有关系,但是请记住主要的语法和命令以及帮助命令的使用。
在下一篇,我们将讲述使用Kubeadm来创建k8s集群。
目录
使用kubectl管理k8s集群
- 概述
- 语法
- 主要命令(command)说明
- 资源类型(TYPE)说明
- 命令标准(flags)说明
- 格式化输出
使用kubectl管理k8s集群
概述
Kubectl是一个命令行界面,用于运行针对Kubernetes集群的命令。Kubectl的配置文件在$HOME/.kube目录。我们可以通过设置KUBECONFIG环境变量或设置命令参数--kubeconfig来指定其他位置的kubeconfig文件。
语法
我们可以使用以下语法kubectl从终端窗口运行命令:
kubectl [command] [TYPE] [NAME] [flags]
其中command,TYPE,NAME,和flags分别是:
- command:指定要在一个或多个资源进行的操作,例如create,get,describe,delete。例如“kubectl get cs”。
- TYPE:指定资源类型。资源类型不区分大小写,可以指定单数,复数或缩写形式。例如,以下命令产生相同的输出:
kubectl get pod pod1
kubectl get pods pod1
kubectl get po pod1
- NAME:指定资源的名称。名称区分大小写。如果省略名称,则显示所有资源的详细信息,如“kubectl get pods”。
在对多个资源执行操作时,我们可以按类型和名称指定每个资源,或指定一个或多个文件:
1) 要按类型和名称指定资源:
- 如果资源类型相同,则对资源进行分组: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
2) 要使用一个或多个文件指定资源: -f file1 -f file2 -f file<#>
- 注意使用YAML而不是JSON,因为YAML往往更加用户友好,特别是对于配置文件。
例:kubectl get pod -f ./pod.yaml - flags:指定的可选标志,不过值得注意的是,使用命令行指定参数会覆盖默认值以及相关的环境变量。例如,我们可以使用-s或--server标志来指定Kubernetes API服务器的地址和端口。
主要命令(command)说明
Kubectl的主体操作命令如下表所示:
更多命令,我们可以执行“kubectl help”来查看当前所有支持的命令,也可以访问官方地址“https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands”来查看所有的命令说明。在使用的过程中,如果我们不了解单个命令的具体语法,我们可以使用“kubectl <command> --help”来获取详细介绍,如:
kubectl scale --help
资源类型(TYPE)说明
我们可以使用“kubectlapi-resources”命令来获取服务端目前支持的所有的资源类型,如下图所示:
命令标准(flags)说明
同样的,我们可以使用命令“kubectloptions”来输出当前支持的所有可选标志:
其中,在前面我们说过,“-s”可以指定Kubernetes API 服务器地址,“-n”可以指定命名空间,“--kubeconfig”可以指定kubeconfig配置文件。主要的一些说明如下所示:
格式化输出
默认情况下,所有的kubectl命令默认输出格式是可读的纯文本格式。要以特定格式将详细信息输出到终端窗口,我们需要使用“-o”或多个“-output”标志。
语法:
kubectl [command] [TYPE] [NAME]-o=<output_format>
支持的输出格式如下表所示:
例如:
kubectl get pods -n kube-system -o wide
往期内容链接
Docker最全教程之使用Tencent Hub来完成CI(九)
Docker最全教程——Redis容器化以及排行榜实战(十三)
Docker最全教程之Ubuntu下安装Docker(十四)
Docker最全教程之使用TeamCity来完成内部CI、CD流程(十六)
Docker最全教程之使用Docker搭建Java开发环境(十七)
Docker最全教程之使用.NET Core推送钉钉消息(十九)
Docker最全教程之使用 Visual Studio Code玩转Docker(二十)
Docker最全教程之使用Node.js搭建团队技术文档站(二十三)