kubectl命令说明

本文个人博客地址:http://www.huweihuang.com/article/kubernetes/kubernetes-commands/

1. kubectl命令介绍

kubectl的命令语法

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

其中command,TYPE,NAME,和flags分别是:

  • command: 指定要在一个或多个资源进行操作,例如creategetdescribedelete

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

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

    按类型和名称指定多种资源:

    * 要分组资源,如果它们都是相同的类型:`TYPE1 name1 name2 name<#>`.<br/>
    例: `$ kubectl get pod example-pod1 example-pod2`
    
    * 要分别指定多种资源类型:  `TYPE1/name1 TYPE1/name2 TYPE2/name3 TYPE<#>/name<#>`.<br/>
    例: `$ kubectl get pod/example-pod1 replicationcontroller/example-rc1`
  • flags:指定可选标志。例如,您可以使用-s--serverflags来指定Kubernetes API服务器的地址和端口。

更多命令介绍:

2. 操作的常用资源对象

  1. Node

  2. Podes

  3. Replication Controllers

  4. Services

  5. Namespace

  6. Deployment

  7. StatefulSet

具体对象类型及缩写:

3. kubectl命令分类[command]

3.1 增

1)create:[Create a resource by filename or stdin]

2)run:[ Run a particular image on the cluster]

3)apply:[Apply a configuration to a resource by filename or stdin]

4)proxy:[Run a proxy to the Kubernetes API server ]

3.2 删

1)delete:[Delete resources ]

3.3 改

1)scale:[Set a new size for a Replication Controller]

2)exec:[Execute a command in a container]

3)attach:[Attach to a running container]

4)patch:[Update field(s) of a resource by stdin]

5)edit:[Edit a resource on the server]

6) label:[Update the labels on a resource]

7)annotate:[Auto-scale a replication controller]

8)replace:[Replace a resource by filename or stdin]

9)config:[config modifies kubeconfig files]

3.4 查

1)get:[Display one or many resources]

2)describe:[Show details of a specific resource or group of resources]

3)log:[Print the logs for a container in a pod]

4)cluster-info:[Display cluster info]

5) version:[Print the client and server version information]

6)api-versions:[Print the supported API versions]

4. Pod相关命令

4.1 查询Pod

4.2 进入Pod

4.3 删除Pod

4.4 日志查看

5. 常用命令

5.1. Node隔离与恢复

说明:Node设置隔离之后,原先运行在该Node上的Pod不受影响,后续的Pod不会调度到被隔离的Node上。

1. Node隔离

2. Node恢复

5.2. kubectl label

1. 固定Pod到指定机器

2. 取消Pod固定机器

5.3. 升级镜像

5.4. 调整资源值

5.5. 调整readiness probe

5.6. 调整tolerations属性

5.7. 查看所有节点的IP

5.8. 查看当前k8s组件leader节点

当k8s集群高可用部署的时候,kube-controller-managerkube-scheduler只能一个服务处于实际逻辑运行状态,通过参数--leader-elect=true来开启选举操作。以下提供查询leader节点的命令。

以上表示"holderIdentity":"xxx.xxx.xxx.xxx为kube-controller-manager的leader节点。

同理,可以通过以下命令查看kube-scheduler的leader节点。

5.9. 修改副本数

5.10. 批量删除pod

5.11. 各种查看命令

6. 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 请求内容而且不截断内容。

参考文章:

  • https://kubernetes.io/docs/reference/kubectl/overview/

  • https://kubernetes.io/docs/tasks/access-application-cluster/configure-access-multiple-clusters/

  • https://kubernetes.io/zh/docs/reference/kubectl/cheatsheet/

最后更新于

这有帮助吗?