标签

为Pod打标签可以实现对Pod的轻易分组,比如通过标签可以将Pod分为生产环境、测试环境,从而一次性对整个组的Pod进行操作。

比如每一个Pod都有下面两个标签:

  • app:指定Pod属于哪个应用、组件或微服务;

  • rel:显示Pod中运行的应用程序的版本,分为stable、beta和canary;

使用pod标签组织微服务架构中的pod

Tips:Node也是可以打标签的,一般根据Node的硬件信息打标签,比如gpu=true

为Pod打标签

有两种方式:

  1. 使用YAML配置文件:详情见管理Pod章节中创建Pod中的YAML文件。

  2. 使用命令:为kubia-manual这个Pod添加creation_method标签,其值为manual

     kubectl label pods kubia-manual creation_method=manual

修改Pod标签

有两种方式:

  1. 修改资源配置文件:可参考常用命令中修改资源的方式,修改资源配置的metadata.labels配置项后,保存即可;

  2. 使用命令,添加--overwrite选项即可:

     kubectl label pods kubia-manual creation_method=half-auto --overwrite

为Node打标签

使用命令,为名为minikube-node的Node打上gpu=true这个标签:

kubectl label nodes minikube-node gpu=true

同样可以使用-l匹配标签的方式来筛选Node,与管理Pod一节中介绍的筛选Pod时使用的-l用法一样。

将Pod调度到特定一类Node

在YAML配置文件中,使用spec.nodeSelector将Pod调度到包含该标签的Node上,YAML的具体写法参考管理Pod一节中创建Pod中的详细的YAML格式文件。

将Pod调度到某一个Node

每一个Node都有一个kubernetes.io/hostname的标签,其值记为该Node的主机名,由于Kubernetes集群要求每一个Node的hostname都是不一致的,因此可以使用spec.nodeSelector中指定该标签及值的方式,将Pod调度到特定的Node上。

Last updated

Was this helpful?