更新时间:2024-11-04 GMT+08:00

为节点添加标签/污点

UCS支持为节点打上不同的标签,以定义节点的不同属性,通过这些标签,您可以快速地了解各个节点的特点。

污点(Taint)能够使节点排斥某些特定的Pod,从而避免将Pod调度到该节点上,通过添加污点,您可以实现各节点负载的合理分配。

节点标签使用场景

节点标签的主要使用场景有两类。

  • 节点分类:通过添加标签对节点进行分类。
  • 工作负载与节点的亲和与反亲和:
    • 有的工作负载需要的CPU大,有的工作负载需要的内存大,有的工作负载需要IO大,可能会影响其他工作负载正常工作,此时建议给节点添加不同标签。在部署工作负载的时候,就可以选择相应标签的节点亲和部署,保证系统正常工作;反之,可以使用节点的反亲和部署。
    • 一个系统可以分为多个模块,每个模块由多个微服务组成,为保证后期运维的高效,可以将节点打上对应模块的标签,让各模块的工作负载部署到各自的节点上,互不干扰、利于维护。

节点固有标签

创建节点后,UCS会为节点添加固有标签,这些标签是无法编辑和删除的。节点固有标签的含义请参见表1

表1 节点固有标签

failure-domain.beta.kubernetes.io/region

表示节点当前所在区域

failure-domain.beta.kubernetes.io/zone

表示节点所在区域的可用区

beta.kubernetes.io/arch

表示节点处理器架构

例如:amd64,表示AMD64位的处理器

beta.kubernetes.io/os

表示节点的操作系统

例如:linux,表示Linux操作系统

kubernetes.io/availablezone

表示节点所在区域的可用区

kubernetes.io/hostname

表示节点主机名称

os.architecture

表示节点处理器架构

例如:amd64,表示AMD64位的处理器

os.name

表示节点的操作系统名称

例如:EulerOS_2.0_SP2,表示欧拉2.2的版本

os.version

表示节点内核版本

污点(Taints)说明

污点格式为“Key=Value:Effect”,Key和Value作为污点的标签,Value可以为空,Effect用于描述污点的效果。当前Effect支持如下几个效果。
  • NoSchedule:不能容忍此污点的Pod不会被调度到节点上,但是现有Pod不会从节点中逐出。
  • NoExecute:表示不能容忍此污点的Pod不会被调度到节点上,同时会将节点上已存在的Pod驱逐。

容忍度(Toleration)说明

容忍度应用于Pod上,允许(但并不要求)Pod调度到带有与之匹配的污点的节点上。

污点和容忍度相互配合,可以用来避免Pod被分配到不合适的节点上。每个节点上都可以拥有一个或多个污点,而对这些污点没有设置容忍度的Pod,将不会被调度到该节点上。

在Pod中设置容忍度的示例如下:

apiVersion: v1
kind: Pod
metadata:
  name: nginx
  labels:
    env: test
spec:
  containers:
  - name: nginx
    image: nginx
    imagePullPolicy: IfNotPresent
  tolerations:
  - key: "key1"
    operator: "Equal"
    value: "value1"
    effect: "NoSchedule"  

上面示例中表示节点上存在键名为“key1”,键值为“value1”,且效果为“NoSchedule”的污点时,该Pod能够调度到节点上。

容忍度还可以按如下方式进行设置,表示当节点上存在键名为“key1”,且效果为“NoSchedule”的污点时,该Pod也可以调度到节点上。

tolerations:
- key: "key1"
  operator: "Exists"
  effect: "NoSchedule"

管理节点标签/污点

  1. 登录集群控制台。
  2. 在左侧导航栏中单击“节点管理”,在节点列表中选择节点,并单击“标签与污点管理”。
  3. 单击按钮,设置节点标签/污点。如需执行多项操作,可多次添加,最多支持10条操作。

    图1 添加标签/污点
    • 选择“添加”“删除”操作。
    • 选择操作对象为“K8S标签”“污点(Taints)”
    • 填写需要增加标签/污点的“键”和“值”。
    • 如选择操作对象为“污点(Taints)”,需选择污点效果,关于污点效果说明请参见污点(Taints)说明

  4. 单击“确定”,对所选节点执行标签/污点操作。