場景描述
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.在“實例詳情”頁面的“接入點信息”區域,單擊“添加路由策略”,接入類型選擇“跨VPC訪問”獲取Kafka實例的網卡地址(listeners IP)和對應的Node ID。
圖3 Kafka實例的網卡地址(listeners IP)和對應的節點的Node ID
6.在“實例詳情”頁面的“網絡”區域,查看Kafka實例所在的VPC名稱。
圖4 查看Kafka實例所在的VPC名稱
7.單擊VPC名稱,進入VPC基本信息頁簽,獲取VPC ID。
圖5 獲取VPC ID
8.調用VPC終端節點的API創建終端節點服務,API詳情請參考。
POST?//{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傳入)(1-65535),這里的端口需要和第5點圖3選擇的端口保持一致
- endpointPort:節點端口(用于創建rule傳入)(1-65535),這里的端口需要和第5點圖3選擇的端口保持一致
- 參數示例:
記錄響應信息中的“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訪問”,advertiesd.listeners IP為“購買終端節點第7和第8”章節中記錄的節點IP。修改完后,單擊“保存”。
4.2024-08-10前開通的實例,需要重啟實例才能生效
圖9 修改advertised.listeners IP
驗證接口連通性
參考安全接入點接入,測試是否可以生產和消費消息。
測試接口連通性時,注意以下幾點:
- 連接Kafka實例的地址為“advertiesd.listeners IP:9011”,以9為例,連接Kafka實例的地址為“XX.XX.XX.XX1:xxx,XX.XX.XX.XX2:xxx,XX.XX.XX.XX3:xxx”。
- 在Kafka實例安全組的入方向規則中放通xxx端口,以及 XX.XX.XX.0/16網段的地址。
說明XX.XX.XX.0/16是為VPC終端節點分配的網段,使用VPC終端節點需要放通此網段。