• 沒有找到結果。

操作场景

Kafka客户端和Kafka实例在同一区域的不同VPC中,由于VPC之间逻辑隔离,Kafka客 户端和Kafka实例不能直接通信。您可以通过以下任意一个方式实现跨VPC访问:

● 创建VPC对等连接,将两个VPC的网络打通,实现跨VPC访问。具体步骤请参考

VPC对等连接说明。

● 创建一个云连接实例,然后在创建的云连接实例中加载需要互通的VPC,实现跨 VPC访问。具体步骤请参考同区域同帐号VPC互通。

● 利用VPC终端节点在不同VPC间建立跨VPC的连接通道,实现Kafka客户端通过内 网访问Kafka实例。

本章节主要介绍通过VPC终端节点实现跨VPC访问的方法。

VPC终端节点由“终端节点服务”和“终端节点”两种资源实例组成。

● 终端节点服务:将Kafka实例配置为VPC终端节点支持的服务,可以被终端节点连 接和访问。

● 终端节点:用于在VPC和终端节点服务之间建立便捷、安全、私密的连接通道。

4-15 跨 VPC 访问 Kafka 实例原理图

操作流程

4-16 跨 VPC 访问 Kafka 实例流程图

创建终端节点服务

步骤1 登录管理控制台。

步骤2 在管理控制台左上角单击 ,选择区域。

说明

此处请选择与您的应用服务相同的区域。

步骤3 在管理控制台左上角单击 ,选择“应用中间件 > 分布式消息服务Kafka版”,进入 分布式消息服务Kafka专享版页面。

步骤4 单击Kafka实例名称,进入实例详情页面。

步骤5 获取Kafka实例的地址和对应的Port ID。

4-17 获取 Kafka 实例的地址和对应的 Port ID

步骤6 查看Kafka实例所在的VPC名称。

4-18 查看 Kafka 实例所在的 VPC 名称

步骤7 单击VPC名称,进入VPC基本信息页签,获取VPC ID。

4-19 获取 VPC ID

步骤8 调用VPC终端节点的API创建终端节点服务,API详情请参考创建终端节点服务。

curl -i -k -H 'Accept:application/json' -H 'Content-Type:application/json;charset=utf8' -X POST -H "X-Auth-Token:$token" -d '{"port_id":"38axxxeac","vpc_id":"706xxx888","ports":[{"protocol":"TCP","client_port":

9011,"server_port":9011 }],"approval_enabled":false,"service_type":"interface","server_type":"VM"}' https://

{endpoint}/v1/{project_id}/vpc-endpoint-services

参数说明如下:

● token:Token是系统颁发给IAM用户的访问令牌,承载用户的身份、权限等信 息,获取方法请参考获取用户Token。

● port_id:输入步骤5中获取的其中一个Port ID。

● vpc_id:输入步骤7中获取的VPC ID。

● endpoint:获取VPC终端节点的终端节点,区域必须与Kafka实例保持一致。

● project_id:获取VPC终端节点的项目ID,区域必须与Kafka实例保持一致。

记录响应信息中的“service_name”参数值,此参数表示终端节点服务的名称。

步骤9 参考步骤8,为步骤5中其他Port ID创建终端节点服务,并记录终端节点服务的名称。

----结束

(可选)添加白名单

Kafka客户端和Kafka实例属于不同帐号时,将Kafka客户端所在帐号的ID添加到终端节 点服务的白名单中,完成跨帐号终端节点的访问授权,具体操作步骤请参考添加白名 单。

购买终端节点

步骤1 在管理控制台左上角单击 ,选择“网络 > VPC终端节点”,进入终端节点页面。

步骤2 单击“购买终端节点”,进入“购买终端节点”页面。

步骤3 设置如下参数。

● 区域:与Kafka实例保持一致。

● 服务类别:选择“按名称查找服务”。

● 服务名称:输入步骤8中记录的终端节点服务名称,单击“验证”。显示“已找到 服务”后,继续后续操作。

● 虚拟私有云:选择Kafka客户端所属的VPC。

● 子网:选择Kafka客户端所属的子网。

● 节点IP:选择“自动分配”。

其他参数保持默认,如果想要了解更多的参数信息,请参考购买终端节点。

4-20 终端节点参数设置

步骤4 单击“立即购买”,进入规格确认页面。

步骤5 确认无误后,提交请求。

步骤6 购买成功后,返回终端节点页面,查看终端节点状态是否为“已接受”,“已接受”

表示终端节点已成功连接至终端节点服务。

4-21 查看终端节点状态

步骤7 单击终端节点ID,在“基本信息”页签,查看并记录节点IP。

您可以使用节点IP访问终端节点服务,进行跨VPC资源通信。

4-22 查看节点 IP

步骤8 参考步骤1~步骤7,为步骤9中创建的终端节点服务购买终端节点,查看并记录节点 IP。

----结束

修改 advertised.listeners IP

步骤1 在管理控制台左上角单击 ,选择“应用中间件 > 分布式消息服务Kafka版”,进入 分布式消息服务Kafka专享版页面。

步骤2 单击Kafka实例名称,进入实例详情页面。

步骤3 在“基本信息”页签,修改“跨VPC访问”的advertised.listeners IP,

advertised.listeners IP为步骤7和步骤8中记录的节点IP。

须知

节点IP必须与Port ID一一对应,否则会导致网络不通。

4-23 修改 advertised.listeners IP

----结束

验证接口连通性

参考连接未开启SASL的Kafka实例或者连接已开启SASL的Kafka实例,测试是否可以 生产和消费消息。

测试接口连通性时,注意以下两点:

● 连接Kafka实例的地址为“advertised.listeners IP:9011”,以图4-23为例,连接 Kafka实例的地址为

“192.168.0.71:9011,192.168.0.11:9011,192.168.0.21:9011”。

● 在Kafka实例安全组的入方向规则中放通9011端口。

相關文件