Service 跨 VPC 绑定

最近更新时间:2025-04-24 16:34:12

我的收藏

简介

使用公网 CLB 型 Service 时,默认是在当前集群所在 VPC 内的随机可用区生成 CLB,目前 TKE 的公网 CLB Service 已支持指定可用区,包括其他地域的可用区。本文将为您介绍如何通过控制台和 YAML 两种方式为 CLB Service 跨 VPC 绑定和指定可用区。

应用场景

需要支持 CLB 的跨地域接入或跨 VPC 接入,即 CLB 所在的 VPC 和当前集群所在的 VPC 不在同一 VPC 内。
需要指定 CLB 的可用区以实现资源的统一管理。
说明:
1. 跨 VPC 绑定仅支持“带宽上移账户”。若您无法确定账户类型,请参见 判断账户类型
2. 如需使用非本集群所在 VPC 的 CLB,需先通过 云联网 打通当前集群 VPC 和 CLB 所在的 VPC。
2.1 云联网需要提前规划各个地域 VPC 的网段,不能出现冲突。否则冲突的路由规则将不会生效,导致数据面无法转发。
2.2 集群所在 VPC 不能同时加入多个云联网中,否则会出现路由不唯一的情况,导致数据面无法转发。
3. 在确保 VPC 已经打通之后,请 在线咨询 申请使用该功能。
4. 以下 YAML 中,需要您输入地域 ID,您可以通过 地域和可用区 查看地域 ID。

操作步骤

公网 CLB Service 跨 VPC 绑定和指定可用区支持通过控制台和 YAML 两种方式进行操作,操作步骤如下:
控制台方式
YAML 方式
1. 登录 容器服务控制台,选择左侧导航栏中的集群
2. 集群管理页面单击需要创建 Service 的集群 ID,进入集群管理页面。
3. 选择服务与路由 > Service,进入 Service 页面,并单击新建
4. 新建 Service 页面中配置相关可用区规则。配置规则说明如下:
服务访问方式:选择“公网 LB 访问”。



可用区:选择“其他 VPC”。
注意:
仅支持通过 云联网 将当前集群的 VPC 打通的其它 VPC。
5. 其他参数按照 Service 创建时的配置即可。
说明:
1. 如需使用非本集群所在 VPC 的 CLB,需先通过 云联网 打通当前集群 VPC 和 CLB 所在的 VPC。
2. 在确保 VPC 已经打通之后,请 在线咨询 申请使用该功能。

示例1

如果仅需指定本集群所在 VPC 的可用区,例如集群的 VPC 在广州地域,CLB Service 需要指定广州一区的 CLB,可以在 Service 的 YAML 中添加如下 annotation:
service.kubernetes.io/service.extensiveParameters: '{"ZoneId":"ap-guangzhou-1"}'

示例2

如需使用非本集群所在 VPC 内的 CLB,可以在 Service 的 YAML 中添加如下 annotation:
service.cloud.tencent.com/cross-region-id: "ap-guangzhou"
service.cloud.tencent.com/cross-vpc-id: "vpc-646vhcjj"

注意:
如果您还需要指定可用区,需要再添加示例1中的 annotation。

示例3

选择已有负载均衡进行异地接入,示例如下:
service.cloud.tencent.com/cross-region-id: "ap-guangzhou"
service.kubernetes.io/tke-existed-lbid: "lb-342wppll"


示例4

annotation 在 Service YAML 中的写法如下所示:
# 创建异地接入的负载均衡
apiVersion: v1
kind: Service
metadata:
annotations:
service.cloud.tencent.com/cross-region-id: "ap-chongqing"
service.cloud.tencent.com/cross-vpc-id: "vpc-mjekzyps"
name: echo-server-service
namespace: default
spec:
......
---
# 用户复用其他地域负载均衡的场景
apiVersion: v1
kind: Service
metadata:
annotations:
service.cloud.tencent.com/cross-region-id: "ap-chongqing"
service.kubernetes.io/tke-existed-lbid: "lb-o8ugf2wb"
name: echo-server-service
namespace: default
spec:
......

完整 Service Annotation 说明请参见 Service Annotation 说明 文档。