tencent cloud

文档反馈

额外节点 Label 的使用

最后更新时间:2022-03-23 18:17:29

    使用场景

    通过额外节点 Label 的使用,您可以直接将请求转发到某个服务下的具有指定 Label 的 Pod,精细需要控制转发的 Pod。

    例如:default 命名空间下,存在 Label 为 app: httpbin 和 version: v1 的 Pod, 也存在 app: httpbin 和 version: v2 的 Pod,存在一个 httpbin 服务(selector 选择的是 app:httpbin)。如果希望 API 网关只转发到 Label 为 app: httpbin 和 version: v1 的 Pod, 可以通过额外节点 Label,加上version: v1的配置,就可以实现。

    操作步骤

    1. 在配置 TKE 通道的服务前提下,再手动输入额外节点 Label。
    2. 单击保存,新建或修改 TKE 通道。
      最终转发的效果如下:

    原理说明

    TKE 集群中,服务本身是有 selector 的配置。例如:httpbin 服务中,selector 的配置是 app: httpbin,但是 API 网关提供的额外节点Label 会与 httpbin 服务中的 selector 合并起来,组合成的 Label 是:app: httpbin 和 version: v1。 因此,改 TKE 通道节点,只会出现 version: v1的 http 的 Pod。

    如果在额外节点 Label 中输入在 httpbin 服务中已经存在的 Label 的键,那么额外节点中输入的该 Label 会被忽略,以 selector 中存在的 Label 的值为准。例如:额外 Label 中输入 app: not-httpbin,这个 Label 与服务 httpbin 的 selector 发生了冲突,app: not-httpbin 将会被忽略。

    httpbin 服务的 YAML 如下:

    apiVersion: v1
    kind: Service
    metadata:
     name: httpbin
     labels:
       app: httpbin
       service: httpbin
    spec:
     ports:
     - name: http
       port: 8000
       targetPort: 80
     selector:
       app: httpbin
    

    注意事项

    • 额外节点 Label 是高级功能,需要用户输入的时候确认 Label 的存在。如果输入错误的 Label,会导致 TKE 通道的节点数量变为0.
    • 如果服务的 selector 和额外节点 Label 出现同一个键的时候,会以 selector 中的配置为准。
    • 如果服务的端口(port)发生更改(例如从80改为8080),需要在 API 网关中同步修改;如果端口(port)没有修改,仅仅修改了目标端口(target port),API 网关会自动同步,不需要在 API 网关修改。
    联系我们

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

    技术支持

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

    7x24 电话支持