管理 Pod

在本节,将会介绍一些常用的管理pod的方式,包括查看创建Pod等。

查看Pod

针对pod的查看可以使用命令的方式,并且导出为YAML格式,命令为:

kubectl get pods healthcheck -o yaml

healthcheck为Pod的名字

若导出为JSON格式,则使用-o json即可。

不使用-o则直接展示。

使用-o wide可以展示更全的信息,比如Pod所在的Node、Pod的标签信息等。

使用--namespace可以指定查看哪个命名空间下的Pods。

查看Pod标签

通过--show-labels可以查看Pods的所有标签:

kubectl get pods --show-labels

如果只对某几个标签感兴趣,可以使用-L env,creation_method将指定的envcreation_method两个标签列出来,会作为2列输出,没有打上该标签的Pod,则会显示<none>

根据标签查看Pod

主要通过-l来实现,可以从现有pods中筛选出指定标签条件下的Pods,主要可以有三种筛选方法:

  1. 包含(或不包含)使用特定键的标签;

  2. 包含具有特定键和值的标签;

  3. 包含具有特定键的标签,但其值与我们指定的不同;

同样可以使用innotin!进行匹配:

  • !creation_method,匹配不包含creation_method这个标签的Pods;

  • creation_method in (manual, half-auto),匹配带有creation_method标签,并且值为manualhalf-auto的Pods;

  • creation_method notin (manual, half-auto),匹配带有creation_method标签,但是值不是manualhalf-auto的Pods;

circle-info

Tips:-L不同的是,-l得到的结果仅包含满足条件的Pods,而-L得到的是所有的Pods(当前命名空间下)。

多标签条件查看

通过,分割的标签,可以同时匹配多个标签:

查看Pod日志

kubia-manual是pod的名字

Pod中可能会有多个容器,此时可以使用-c查看具体容器的日志信息:

kubia为容器的名字

创建Pod

创建Pod主要使用YAML配置文件创建。

使用YAML创建Pod

先给一个简单的版本:

然后使用-f根据配置文件生成指定资源:

kubia.yaml为配置文件的名字

下面给一个详细的版本:

circle-info

Tips:可以使用kubectl explain查看配置文件中的属性的详情,会展示出对应属性的详细解释,比如查看pod下的spec中的属性详情:

删除Pod

我们可以使用kubectl delete命令删除Pod。

根据名称删除

删除名为kubia-gpu的Pod:

删除带指定标签的Pod

可以配合-l,使用标签选择器,删除带指定(或不带指定)标签的Pod。例如,删除带creation_method标签,并且其值为manual的Pods:

删除一个命名空间中的所有Pod

有两种方式:

  1. 通过删除整个命名空间的方式,删除Pod;

  2. 仅删除Pod,不删除命名空间;

删除命名空间

可以通过删除命名空间的方式,删除这个命名空间中的所有的Pod。例如删除custom-namespace这个命名空间:

保留命名空间

通过--all的方式,可以删除指定命名空间下的所有Pod。例如删除custom-namespace命名空间下的所有Pod:

circle-info

Tips:如果不指定命名空间,则默认是default命名空间。

删除命名空间中的几乎所有资源

通过all指定所有资源类型的方式,再配合--all可以删除指定的命名空间中的几乎所有资源。例如删除custom-namespace命名空间下的几乎所有资源:

circle-info

Tips:default命名空间中,默认有一个名为kubernetes的Service资源,而使用上面的命令后,虽然会同时删除该资源,但是过几分钟会自动重新创建。

Last updated

Was this helpful?