tencent cloud

文档反馈

超级节点相关

最后更新时间:2022-05-24 11:08:18

    如何禁止 Pod 调度到某个按量计费超级节点?

    默认情况下,TKE 普通集群添加了按量计费超级节点节点池后,会在 Node 资源不足时,自动向按量计费超级节点调度 Pod。弹性集群则会自动在多个按量计费超级节点随机调度 Pod。

    此时如果您不希望向某按量计费超级节点(代表某子网/可用区)调度,可通过以下两种方式封锁按量计费超级节点实现禁止调度:

    • 通过 容器服务控制台 对节点进行封锁操作,详情可参见 封锁节点
    • 通过命令行执行如下命令实现禁止调度:
      $kubectl cordon $按量计费超级节点名称
      

    如何禁止 TKE 普通集群在资源不足时自动调度到按量计费超级节点?

    需要在 kube-system 命名空间下,新建名为 eks-config 的 configmap。执行命令如下:

    $kubectl create configmap eks-config --from-literal=AUTO_SCALE_EKS=false
    

    将 AUTO_SCALE_EKS 的 value 设置为 false,即可关闭 TKE 普通集群向按量计费超级节点的自动调度机制。

    如何手动调度 Pod 到按量计费超级节点?

    默认按量计费超级节点会自动添加 Taints 以降低调度优先级,如需手动调度 Pod 到按量计费超级节点或指定按量计费超级节点,通常需要为 Pod 添加对应的 Tolerations。但并非所有的 Pod 均可以调度到按量计费超级节点上,详情请参见 超级节点调度说明。为方便使用,您可以在 Pod Spec 中指定 nodeselector 。示例如下:

    spec:    
      nodeSelector:
        node.kubernetes.io/instance-type: eklet
    

    或在 Pod Spec 指定 nodename。示例如下:

    spec:
      nodeName: $按量计费超级节点名称
    

    TKE 的管控组件会判断该 Pod 是否可以调度到按量计费超级节点,若不支持则不会调度到按量计费超级节点。

    如何强制调度 Pod 到按量计费超级节点,无论按量计费超级节点是否支持该 Pod?

    注意:

    强制调度到按量计费超级节点,Pod 可能会创建失败,失败原因可参见 如何手动调度 Pod 到按量计费超级节点

    如需强制调度 Pod 到按量计费超级节点,除了为 Pod 指定 nodeselector 或 nodename,也必须添加对应的 Tolerations。

    1. 为 Pod Spec 中指定 nodeselector。示例如下:

      spec:    
        nodeSelector:
          node.kubernetes.io/instance-type: eklet
      

      或在 Pod Spec 指定 nodename。示例如下:

      spec: 
        nodeName: $按量计费超级节点名称
      
    1. 为 Pod 添加 Tolerations。示例如下:
      spec: 
        tolerations: 
        - effect: NoSchedule
          key: eks.tke.cloud.tencent.com/eklet
          operator: Exists
      

    如何自定义按量计费超级节点 DNS?

    弹性容器服务 EKS 支持按量计费超级节点特性,您可通过在 yaml 中定义 annotation 的方式,实现自定义 DNS 等能力。详情可参见 按量计费超级节点 annotation 说明

    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持