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自身。
如果服務端應用與用戶端應用想要進行互相調用,兩者都需要先配置K8s ServiceName。
配置指引
功能入口。
建立應用時的配置入口
登入SAE控制台,在左側導覽列選擇,然後選擇目標地區和目標命名空間,最後單擊建立應用。
選擇應用版本,然後單擊建立應用。
在應用基本資料嚮導頁面進行配置後,單擊下一步:進階設定。
在進階設定嚮導頁面找到並展開服務註冊發現地區。
部署應用時的配置入口
警告重新部署應用後,該應用將會被重啟。為避免業務中斷等不可預知的錯誤,請在業務低峰期執行部署操作。
登入SAE控制台,在左側導覽列選擇,然後選擇目標地區和目標命名空間,最後單擊目標應用程式名稱。
在目標應用的基礎資訊頁面,單擊部署應用。
在部署應用嚮導頁面找到並展開服務註冊發現地區。
配置基於K8s Service服務註冊發現功能。
開啟基於K8s Service服務註冊發現開關。
配置服務名稱、連接埠和協議。
配置項
說明
服務名稱
自訂服務名稱。必須保證同一使用者地區內唯一,建立成功後不允許修改。
說明預設的服務名稱為應用程式名稱。
連接埠
輸入連接埠,取值範圍為[1,65535]。
說明最多支援添加5條連接埠與協議的配置資訊。
容器連接埠
輸入容器連接埠。
協議
在下拉式清單選擇目標協議。支援協議如下:
TCP
UDP
查看訪問網域名稱
在目標應用的基礎資訊頁面,在應用訪問設定地區的基於K8s Service Name訪問頁簽查看。
支援以下四種網域名稱:
訪問與該應用相同命名空間內的應用,使用服務名稱(本樣本中為demo)即可進行訪問。
跨命名空間訪問,需要使用以下網域名稱進行訪問,以下網域名稱只作為樣本說明。
demo.nsfoo
本樣本的命名空間是自訂的,如果目標應用所在的命名空間為預設命名空間,則命名空間ID為default,樣本網域名稱:demo.default。
demo.nsfoo.svc.cluster.local
demo.nsfoo.svc.cluster.local.cn-hangzhou
