本文中含有需要您注意的重要提示信息,忽略該信息可能對您的業務造成影響,請務必仔細閱讀。
SAE支持基于K8s ServiceName的多語言服務注冊發現功能,通過ServiceName做服務間調用。您可以為應用配置一個SAE集群內可以訪問的固定域名,解決每次部署以后實例IP變化的問題。本文介紹如何通過SAE控制臺,為應用配置基于K8s ServiceName的服務訪問。
背景信息
在分布式微服務框架下,當服務上下線變更時,通過服務注冊與服務發現功能,實現服務端和調用端的正常通信。
服務注冊:針對服務端。服務實例把自身的服務信息注冊到注冊中心后,調用端從注冊中心讀取并訂閱相關信息。
服務發現:針對調用端。注冊中心對服務下的實例地址和元數據進行探測,并以預先定義的接口提供給調用端進行查詢。服務實例向注冊中心發起請求,在獲取依賴的服務信息后,再通過這些信息去請求提供的服務。
使用限制
該域名僅支持訪問SAE應用內的實例,不支持其他實例或者集群通過該域名訪問SAE,例如FC、ACK、ECS。如果其他產品需要訪問SAE,建議您綁定一個私網/公網CLB來提供訪問。更多信息,請參見基于CLB配置應用服務訪問。
該域名不支持使用ping命令訪問K8s ServiceName,您可以在代碼里通過ServiceName以TCP或者UDP的方式進行訪問。建議您使用ping命令,測試應用的Pod IP來排查網絡是否聯通。
應用Pod無法通過ServiceName訪問到應用Pod自身。
Job不支持通過K8s ServiceName的方式訪問應用。
如果服務端應用與客戶端應用想要進行互相調用,兩者都需要先配置K8s ServiceName。
在創建應用過程中配置服務注冊發現功能
登錄SAE控制臺。
在左側導航欄,選擇
,在頂部菜單欄選擇目標地域,然后在應用列表頁面單擊創建應用。在應用基本信息配置向導,配置相關信息,然后單擊下一步:高級設置。
展開高級設置配置向導頁面的服務注冊發現區域,打開啟用基于K8s Service服務注冊發現開關,配置相關信息。
配置項
說明
服務名稱
自定義服務名稱。必須保證同一用戶地域內唯一,創建成功后不允許修改。
端口
在文本框輸入端口,取值范圍為[1,65535]。
說明最多支持添加5條端口與協議的配置信息。
協議
在下拉列表選擇目標協議。支持協議如下:
TCP
UDP
單擊創建應用。
驗證配置是否生效。
在應用基礎信息頁面的應用訪問設置區域,單擊基于K8s Service Name訪問頁簽,查看服務發現的配置信息。如果該區域顯示已配置的服務名稱、端口與協議,表示應用部署成功,配置已生效。
在部署應用過程中配置服務注冊發現功能
重新部署應用后,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。
更新應用配置的路徑因實例數的不同而不同。本文以實例數大于等于1為例,介紹如何配置目標功能。當實例數等于0時的操作路徑,請參見更新應用。
登錄SAE控制臺。
在左側導航欄,選擇
,在頂部菜單欄選擇目標地域。在應用列表頁面,選擇目標命名空間,然后單擊目標應用名稱。
在目標應用的基礎信息頁面,單擊部署應用。
在部署應用頁面,展開服務注冊發現區域,單擊基于K8s Service服務注冊發現頁簽,打開啟用基于K8s Service服務注冊發現開關,配置相關信息。
配置項
說明
服務名稱
自定義服務名稱。必須保證同一用戶地域內唯一,創建成功后不允許修改。
端口
在文本框輸入端口,取值范圍為[1,65535]。
說明最多支持添加5條端口與協議的配置信息。
協議
在下拉列表選擇目標協議。支持協議如下:
TCP
UDP
配置完成后,單擊確認。
驗證配置是否生效。
在應用基礎信息頁面的應用訪問設置區域,單擊基于K8s Service Name訪問頁簽,查看服務發現的配置信息。如果該區域顯示已配置的服務名稱、端口與協議,表示應用部署成功,配置已生效。