kubectl命令行工具用法详解

kubectl作为客户端CLI工具,可以让用户通过命令行对Kubernetes集群进行操作。

kubectl命令行的语法如下:

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

(1)command:子命令,用于操作Kubernetes集群资源对象的命 令,例如create、delete、describe、get、apply等。

(2)TYPE:资源对象的类型,区分大小写,能以单数、复数或者 简写形式表示。例如以下3种TYPE是等价的。

 (3)NAME:资源对象的名称,区分大小写。如果不指定名称, 系统则将返回属于TYPE的全部对象的列表,例如$ kubectl get pods将返 回所有Pod的列表。

(4)flags:kubectl子命令的可选参数,例如使用“-s”指定API Server的URL地址而不用默认值。

 

 在一个命令行中也可以同时对多个资源对象进行操作,以多个 TYPE和NAME的组合表示,示例如下。

kubectl子命令详解

kubectl的子命令非常丰富,涵盖了对Kubernetes集群的主要操作, 包括资源对象的创建、删除、查看、修改、配置、运行等。

 

 一些常用的kubectl操作作为示例进行说明

    创建资源对象:

1.创建资源对象 根据YAML配置文件一次性创建Service和RC:

kubectl   create -f  my-service.yaml  -f  my-rc.yaml

根据 yaml 创建资源, apply 可以重复执行,create 不行

kubectl create -f pod.yaml

kubectl apply -f pod.yaml

查看资源对象:

2、查看pod列表

kubectl get pods               查看所有 pod 列表

kubectl get pod -n kube     -n 后跟 namespace, 查看指定的命名空间中的pod

3、查看RC和Service列表: 

kubectl get rc,svc                                svc是service简写,也可以写全拼

kubectl get pod,svc -o wide                 -o wide 查看详细信息

kubectl get pod <pod-name> -o yaml

描述资源对象:

4、显示Node的详细信息:

kubectl describe node 192.168.0.212

kubectl describe nodes  <node-name>

5、显示Pod的详细信息:

kubectl describe pods<pod-name>

eg:  kubectl describe pod redis-master-tqds9

6、显示由RC管理的Pod的信息:

kubectl describe pods <rc-name>

   删除资源对象:

7、基于pod.yaml定义的名称删除Pod:

kubectl delete -f pod.yaml

8、删除所有包含某个Label的Pod和Service:

kubectl delete pod,svc -l name=<label-name>

9、删除所有Pod:

kubectl delete pod --all

执行容器的命令:

10、执行Pod的date命令,默认使用Pod中的第1个容器执行:

 kubectl exec <pod-name> -- date

11、指定Pod中的某个容器执行date命令:

kubectl  exec <pod-name>   -c <container-name>  date

12、通过bash获得Pod中某个容器的TTY,相当于登录容器:

kubectl exec -it <pod-name> -c <container-name> -- bash

查看容器的日志

13、查看容器输出到stdout的日志:

kubectl logs <pod-name>

kubectl logs -f <pod-name> # 实时查看日志

14、跟踪查看容器的日志,相当于tail -f命令的结果:

kubectl logs -f <pod-name>  -c <container-name>

 

 

原文地址:https://www.cnblogs.com/mayyan/p/13860317.html