场景描述
Kafka客户端和Kafka实例在同一区域的不同VPC中,由于VPC之间的逻辑隔离使得Kafka客户端和实例之间不能直接通信。您可以通过以下方式实现跨VPC访问:
● 创建VPC对等连接,将两个VPC间的网络打通,实现跨VPC访问。具体步骤请参考对等连接。
● 利用VPC终端节点在不同VPC间建立跨VPC的连接通道,实现Kafka客户端通过内网跨VPC访问Kafka实例。
操作场景
本章节主要介绍通过VPC终端节点实现跨VPC访问的方法。
VPC终端节点由“终端节点服务”和“终端节点”两种资源实例组成。
● 终端节点服务:将Kafka实例配置为VPC终端节点支持的服务,可以被终端节点连接和访问。
● 终端节点:用于在VPC和终端节点服务之间建立便捷、安全、私密的连接通道。
图1 跨VPC访问Kafka实例原理图
操作流程
图2 跨VPC访问Kafka实例流程图
创建终端节点服务
1.登录管理控制台。
2.在管理控制台左上角单击,选择区域(请选择Kafka实例所在的区域)。
3.在管理控制台左上角单击,选择“企业中间件 > 分布式消息服务Kafka版”,进入分布式消息服务Kafka控制台页面。
4.单击Kafka集群名称,进入实例详情页面。
5.在“实例详情”页面的“高级配置”区域,点击“添加路由策略”按钮,获取Kafka实例的VPC地址(listeners IP)和对应的Node ID。
图3 Kafka实例的VPC地址(listeners IP)和对应的Node ID




6.在“实例详情”页面的“网络”区域,查看Kafka实例所在的VPC名称。
图4 查看Kafka实例所在的VPC名称
7.单击VPC名称,进入VPC基本信息页签,获取VPC ID。
图5 获取VPC ID
8.调用VPC终端节点的API创建终端节点服务,API详情请参考创建终端节点服务。
POST https://{endpoint}/v4/vpce/create-endpoint-service
请参考以下说明设置请求参数,其他参数根据实际情况设置。
- clientToken:客户端存根,用于保证订单幂等性, 长度 1 - 64。
- regionID:资源池ID。
- vpcID:所属的专有网络id。
- type:接口还是反向,interface:接口,reverse:反向,默认为 interface。
- name:支持拉丁字母、中文、数字,下划线,连字符,中文 / 英文字母开头,不能以 http: / https: 开头,长度 2 - 32。
- description:支持拉丁字母、中文、数字, 特殊字符:!@#$%^&*()_-+= <>?:{},./;'[,]·!@#¥%……&*() —— -+={},。
- instanceType:服务后端实例类型,vm:虚机类型,bm:物理机,vip:vip类型,lb:负载均衡类型, 这里需要填vm。
- instanceID:第5点展示的Node ID。
- subnetID:服务后端子网id。
- autoConnection:是否自动连接,true 表示自动链接,这里需要填true。
- rules:节点服务规则。
- protocol:协议,TCP:TCP协议,UDP:UDP协议。
- serverPort:服务端口(用于创建backend传入),这里根据需要填写,端口范围:9011-9020、10001-18000。
- endpointPort:节点端口(用于创建rule传入),这里根据需要填写,端口范围:9011-9020、10001-18000。
- 参数示例:
记录响应信息中的“endpointServiceID”参数值,此参数表示终端节点服务的ID,也可以在VPC终端节点服务里面看到(在管理控制台左上角单击,选择“网络 > VPC终端节点”,进入”终端节点服务“页面)
9.参考8,为5中其他节点创建终端节点服务,并记录终端节点服务的ID。
购买终端节点
1.在管理控制台左上角单击,选择“网络 > VPC终端节点”,进入终端节点页面。
2.单击“创建终端节点”,进入“创建终端节点”页面。
3.设置如下参数。
- 区域:与Kafka实例保持一致。
- 服务类型:选择“按实例服务ID查找服务”。
- 服务名称:输入第8点中记录的终端节点服务名称,单击“验证”。显示“已找到服务”后,继续后续操作。
- 虚拟私有云:选择Kafka客户端所属的VPC。
- 子网:选择Kafka客户端所属的子网。
- 其他参数保持默认,如果想要了解更多的参数信息,请参考购买终端节点。
图6 终端节点参数设置
4.单击“下一步”,进入规格确认页面。
5.确认无误后,点击“确认下单”。
6.购买成功后,返回终端节点页面,查看终端节点状态是否为“已接受”,“已连接”表示终端节点已成功连接至终端节点服务。
图7 查看终端节点状态
7.单击终端节点ID,在“基本信息”页签,查看并记录节点IP。
您可以使用节点IP访问终端节点服务,进行跨VPC资源通信。
图8 查看节点IP
8.参考1~7,为9中创建的终端节点服务购买终端节点,查看并记录节点IP。
修改Kafka连接地址
1.在管理控制台左上角单击,选择“企业间件 > 分布式消息服务Kafka版”,进入分布式消息服务Kafka控制台页面。
2.单击Kafka集群名称,进入实例详情页面。
3.在“实例详情”页面的“高级配置”区域,单击“添加路由策略”,选择接入类型为跨VPC访问,填入advertised.listeners IP和Port端口,advertised.listeners IP为7和8中记录的节点IP,8为创建终端节点服务时填入的端口。修改完后,单击“保存”。其中dvertised.listeners IP中可填入域名,需客户端支持域名解析。
4.2024-08-10前开通的实例,需要重启实例才能生效
图9 修改advertised.listeners IP
验证接口连通性
参考安全接入点接入,测试是否可以生产和消费消息。
测试接口连通性时,注意以下几点:
- 连接Kafka实例的地址为“advertiesd.listeners IP:port”,以图9为例,连接Kafka实例的地址为“10.254.0.74:9011,10.254.0.75:9011,10.254.0.88:9011”。
- 在Kafka实例安全组的入方向规则中放通对应端口,以及 XX.XX.XX.0/16网段的地址。
说明XX.XX.XX.0/16是为VPC终端节点分配的网段,使用VPC终端节点需要放通此网段。