當您需要可視化監控服務間的互動時,可以開啟網格拓撲功能。通過網格拓撲圖,您可以即時監測服務的健康狀態,分析服務間的延遲和通訊問題,瞭解流量在服務間的分布和流轉,以便您快速發現和解決問題,確保服務的可靠性和高效能水平。
功能介紹
網格拓撲作為一個服務網格可觀測性工具,能夠提供網格流量的強大可視化功能,將即時請求流量與網格配置資訊相結合,提供對服務調用行為及健康狀態的即時洞察,協助您快速查明問題。網格拓撲主要提供以下能力:
流量調用拓撲圖:網格拓撲提供強大的網格流量可視化功能,將即時請求流量以拓撲圖形式展示。
網格配置可視化:網格拓撲能夠根據服務網格中各項配置,對拓撲圖上的節點進行修飾,協助您一目瞭然地瞭解當前生效的配置。這些配置包括對等身份認證、虛擬服務、目標規則、ASM熔斷限流等等。
健康狀態可視化:網格拓撲以節點或邊的顏色代表格服務或請求的健康狀態,協助您快速找到出現問題的節點或請求。
流量重放:流量重放允許您重放過去選中時間段內的流量狀況,這使您有能力徹底檢查感興趣的時間段內的應用流量。
步驟一:啟用網格拓撲
方式一:建立ASM執行個體
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊建立新網格。
在可觀測性地區,選中開啟採集 Prometheus 監控指標,按需選擇Prometheus類型並進行相關操作。
Prometheus類型
操作
可觀測監控Prometheus版
選中使用可觀測監控Prometheus版採集監控指標,然後選中啟用ASM網格拓撲提升網格可觀測。關於如何整合可觀測監控Prometheus版和計費說明,請參見整合可觀測監控Prometheus版實現網格監控和產品計費。
自建Prometheus
選中整合自建Prometheus實現監控,然後選中啟用ASM網格拓撲提升網格可觀測,輸入ASM網格拓撲使用的Prometheus服務地址(即自建Prometheus服務的訪問地址)。關於如何整合自建Prometheus,請參見整合自建Prometheus實現網格監控。
說明選中開啟採集 Prometheus 監控指標,表示開啟採集Service Mesh執行個體指標功能,不會自動建立ARMS執行個體或者自建的Prometheus執行個體。
取消選中開啟採集 Prometheus 監控指標和啟用ASM網格拓撲提升網格可觀測,表示關閉網格拓撲。
配置相關資訊,仔細閱讀並選中服務合約,然後在頁面下方,單擊建立服務網格。
關於配置項的說明,請參見建立ASM執行個體。
將ACK叢集添加到建立的ASM執行個體。具體操作,請參見添加叢集到ASM執行個體。
方式二:使用已有ASM執行個體
請確保ASM執行個體已添加ACK叢集。具體操作,請參見添加叢集到ASM執行個體。
ASM版本為1.12.4.50以下
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇
,然後在頁面右側,單擊功能設定。在功能設定更新面板,選中開啟採集 Prometheus 監控指標,按需選擇Prometheus類型並進行相關操作。
Prometheus類型
操作
可觀測監控Prometheus版
選中使用可觀測監控Prometheus版採集監控指標,然後選中啟用ASM網格拓撲提升網格可觀測。關於如何整合可觀測監控Prometheus版和計費說明,請參見整合可觀測監控Prometheus版實現網格監控和產品計費。
自建Prometheus
選中整合自建Prometheus實現監控,然後選中啟用ASM網格拓撲提升網格可觀測,輸入ASM網格拓撲使用的Prometheus服務地址(即自建Prometheus服務的訪問地址)。關於如何整合自建Prometheus,請參見整合自建Prometheus實現網格監控。
配置完成後,在功能設定更新面板下方,單擊確定。
ASM版本為1.12.4.50及以上
網格拓撲依賴Service Mesh整合Prometheus監控指標。如果您尚未整合Prometheus實現網格監控,請先對Prometheus進行整合。具體操作,請參見整合可觀測監控Prometheus版實現網格監控和整合自建Prometheus實現網格監控。關於可觀測監控Prometheus版的計費說明,請參見產品計費。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇
,在啟用ASM網格拓撲地區,按照ASM版本進行以下操作。ASM版本為1.18.2.112以下:單擊開始啟用。
ASM版本為1.18.2.112及以上:任選以下部署模式。關於兩種模式的差異以及如何配置託管模式,請參見開啟託管模式的網格拓撲。
單擊資料面Kubernetes叢集內部署模式,輸入ASM網格拓撲使用的Prometheus服務地址,單擊開始啟用。
單擊託管模式,單擊開始啟用,在彈出的對話方塊,配置相關資訊,單擊確定。
步驟二:訪問網格拓撲
您可以通過以下三種方式訪問網格拓撲。直接存取網格拓撲的方式需ASM版本為1.12.4.50及以上;自訂方式訪問網格拓撲的方式需ASM版本為1.16.4.5及以上。
方式一:直接存取網格拓撲
如果您的ASM版本為1.12.4.50及以上,您可以選擇自動建立CLB訪問ASM網格拓撲,並直接存取網格拓撲服務。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇
。在訪問方式地區,按ASM執行個體版本選擇以下操作。
ASM版本為1.15.3.120以下:選中自動建立公網負載平衡CLB訪問ASM網格拓撲。
ASM版本為1.15.3.120及以上,1.17.2.19以下:開啟自動建立公網負載平衡CLB訪問ASM網格拓撲右側的開關,在彈出的對話方塊,單擊確定。
ASM版本為1.17.2.19及以上:開啟建立負載平衡CLB訪問ASM網格拓撲右側的開關,在彈出的對話方塊,按需進行相關配置,然後單擊確定。
開啟訪問網格拓撲後,Service Mesh將進入短暫的更新狀態。
查看Service Mesh是否更新完成。
在左側導覽列,選擇
。在基本資料地區,查看Service Mesh的狀態。
若狀態為更新中,表示正在更新;若狀態為運行中,表示更新完成。
在網格拓撲頁面的訪問方式地區,單擊點擊此處在新頁面訪問ASM網格拓撲或者複製Token並在新頁面開啟ASM網格拓撲,進入網格拓撲的登入頁面。
方式二:使用ASM網關訪問網格拓撲
建立入口網關,並為入口網關添加支援網格拓撲訪問的連接埠配置。具體操作,請參見建立入口網關服務或使用KubeAPI管理入口網關。
連接埠配置的YAML樣本如下。
- name: http-kiali port: 20001 protocol: TCP targetPort: 20001
使用以下YAML,建立網關規則。具體操作,請參見管理網關規則。
apiVersion: networking.istio.io/v1alpha3 kind: Gateway metadata: name: kiali-gateway namespace: istio-system spec: selector: istio: ingressgateway servers: - hosts: - '*' port: name: http number: 20001 protocol: HTTP
使用以下YAML,建立虛擬服務。具體操作,請參見管理虛擬服務。
apiVersion: networking.istio.io/v1alpha3 kind: VirtualService metadata: name: kiali-vs namespace: istio-system spec: gateways: - kiali-gateway hosts: - '*' http: - route: - destination: host: kiali port: number: 20001
登入網格拓撲。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇
。在配置資訊地區,單擊啟用ASM網格拓撲右側的通過入口網關訪問,進入網格拓撲的登入頁面。
方式三:自訂方式訪問網格拓撲
在啟用網格拓撲後,網格拓撲將在Kubernetes叢集的istio-system命名空間下建立名為Kiali的Service。您可以通過為該Service建立代理服務等方式訪問網格拓撲。例如,為Kiali Service建立一個Nginx反向 Proxy,並通過Nginx訪問網格拓撲。您可以通過自訂訪問方式設定來設定訪問Kiali Service的具體方法。該方式需ASM版本為1.16.4.5及以上。關於升級ASM版本的具體操作,請參見升級ASM執行個體。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在登入鑒權方式地區下方,單擊展開進階選項,然後在自訂訪問方式設定地區,配置相關資訊,單擊儲存網格拓撲配置。
配置項
說明
自訂訪問網域名稱
定義網格拓撲所服務的自訂網域名。如果您在訪問網格拓撲時使用自訂網域名,建議您配置此項,否則可能影響網格拓撲的OIDC登入流程。當您通過OIDC方式登入網格拓撲時,網格拓撲會將Redirect URI中的網域名稱替換為您的自訂網域名,以保證和OIDC應用的正常對接。
自訂訪問連接埠
定義網格拓撲服務監聽的連接埠,預設為20001。當您設定此項時,網格拓撲服務將監聽您指定的自訂連接埠。
自訂訪問服務根路徑
定義網格拓撲所服務的根路徑,預設為/。當您設定此項時,網格拓撲將以您設定的路徑為根路徑提供服務。當您在訪問網格拓撲時,需要在原有訪問地址中添加自訂的根路徑。
自訂訪問協議(https/http)
定義網格拓撲所服務的協議,僅支援填寫http或https。如果您在訪問網格拓撲時使用HTTPS協議,建議您配置此項,否則可能影響網格拓撲的OIDC登入流程。當您通過OIDC方式登入網格拓撲時,網格拓撲會將Redirect URI中的協議部分替換為您的自訂協議,以保證和OIDC應用的正常對接。
步驟三:登入網格拓撲
您可以通過以下三種方式登入網格拓撲。OIDC的方式登入需ASM版本為1.15.3.120及以上;阿里雲帳號身份的方式需ASM版本為1.16.4.5及以上。
方式一:通過Token方式登入網格拓撲
ASM版本為1.12.4.50以下
您可以登入ACK控制台擷取Token,然後通過Token方式登入網格拓撲。
登入Container Service管理主控台,在左側導覽列單擊叢集。
在叢集列表頁面,單擊目的地組群名稱,然後在左側導覽列,選擇
。在保密字典頁面,命名空間選擇istio-system,單擊kiali-service-account-token-****,然後單擊token行的表徵圖,複製Token。
在網格拓撲的登入頁面,粘貼Token,單擊Log in,進入網格拓撲控制台。
ASM版本為1.12.4.50及以上
您可以登入ASM控制台擷取Token,然後通過Token方式登入網格拓撲。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇
。在網格拓撲頁面的訪問方式地區,單擊複製Token並在新頁面開啟ASM網格拓撲。
在網格拓撲的登入頁面,粘貼Token,單擊登入,進入網格拓撲控制台。
方式二:通過OIDC方式登入網格拓撲
OIDC(OpenID Connect)是一種身份認證與授權的協議,通常用於實現單點登入(SSO)。您可以通過OIDC協議與IdP(身份供應商)對接,登入網格拓撲。使用該方式,ASM版本需為1.15.3.120及以上。關於升級ASM版本的具體操作,請參見升級ASM執行個體。
配置IdP。具體操作,請參見ASM整合阿里雲IDaaS實現網格內應用單點登入的步驟一和步驟二。
將登入 Redirect URI配置為網格拓撲的負載平衡CLB的IP訪問地址(直接通過CLB訪問網格拓撲)或者ASM網關的地址(使用ASM網關訪問網格拓撲)。配置樣本如下:
如果通過CLB訪問網格拓撲,且網格拓撲的負載平衡CLB的IP為
xxx.xxx.xxx.xxx
,則登入 Redirect URI配置為http://xxx.xxx.xxx.xxx:20001
。20001
末尾不能攜帶/
或/xxx
等路徑。如果通過ASM網關訪問網格拓撲,且ASM網關的IP為
yyy.yyy.yyy.yyy
,則登入 Redirect URI配置為http://yyy.yyy.yyy.yyy:20001
。20001
末尾不能攜帶/
或/xxx
等路徑。
通過OIDC方式登入網格拓撲。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇
。在登入鑒權方式地區,選中OIDC登入,配置相關資訊,單擊儲存網格拓撲配置,然後單擊在新頁面開啟ASM網格拓撲。
在網格拓撲的登入頁面,單擊Log In with OpenID,跳轉到OIDC應用的登入頁面進行登入。
方式三:通過阿里雲帳號身份登入網格拓撲
您可以通過OIDC協議與阿里雲RAM OAuth應用對接,實現通過阿里雲帳號身份登入網格拓撲。更多資訊,請參見Web應用登入阿里雲。
使用此方式時,服務網格ASM將自動為您建立名稱以asm-kiali開頭的阿里雲RAM OAuth應用,並將此應用與網格拓撲進行整合。該方式需ASM版本為1.16.4.5及以上。關於升級ASM版本的具體操作,請參見升級ASM執行個體。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在登入鑒權方式地區,選中阿里雲帳號身份登入,在彈出的對話方塊中,單擊添加回調地址,輸入回調地址,然後單擊確定。
網格將進行短暫的更新,請等待網格更新完成後進行下一步操作。
說明回調地址格式請參見方式二:通過OIDC方式登入網格拓撲頁簽中的登入 Redirect URI。
若您採用直接存取網格拓撲的訪問方式,回調地址會自動填寫。
在網格拓撲的登入頁面,單擊Log In with OpenID,以阿里雲帳號身份進行登入。
FAQ
為什麼使用ARMS Prometheus採集監控指標,網格拓撲無法載入?
如果您的Service MeshASM選擇使用ARMS Prometheus採集監控指標,並為ARMS Prometheus執行個體開啟了鑒權Token,網格拓撲將會無法訪問您的ARMS Prometheus執行個體,造成網格拓撲無法載入。您可以任選以下兩種方案進行處理。更多資訊,請參見將Prometheus的監控資料接入本地Grafana。
方案一:在ARMS控制台的設定頁面關閉Token。更多資訊,請參見使用HTTP API地址對接Grafana或自建應用中接入Prometheus資料。
方案二:將ARMS Prometheus鑒權Token配置到網格拓撲,以對接ARMS Prometheus執行個體。
說明該操作需ASM版本為1.15.3.120及以上。
登入ASM控制台,在左側導覽列,選擇 。
在網格管理頁面,單擊目標執行個體名稱,然後在左側導覽列,選擇 。
在對接ARMS Prometheus監控執行個體地區的文字框,輸入ARMS Prometheus配置的鑒權Token,然後單擊儲存網格拓撲配置,為網格拓撲配置訪問ARMS Prometheus執行個體的鑒權Token。
為什麼網格拓撲只能看到部分流量?
您可以按照如下步驟進行排查。
配置問題
確認ASM網格拓撲觀測是否在流量顯示設定中選擇了正確類型的流量,例如gRPC、HTTP、TCP。未選中這些選項可能導致無法查看全部流量資訊。
命名空間限制
在網格拓撲中,確認是否選擇了正確的命名空間,部分流量可能位於未被選擇的命名空間內。
資料擷取與更新
確認Prometheus執行個體的指標採集是否正常,ASM可能只顯示已成功收集到的資料,部分流量資料可能由於各種原因(如延遲、丟包等)未能及時顯示在拓撲圖上。
確認叢集中的所有工作負載是否都注入了網格代理,只有注入了網格代理的工作負載會上報流量監控指標資料。
確認網格拓撲頁面是否即時重新整理,或者嘗試手動重新整理以擷取最新的流量資料。
Sidecar代理配置、流量配置影響
某些流量可能受到ASM內的Sidecar代理配置或Sidecar代理流量配置的影響,導致其不通過網格代理因而無法被觀測。檢查Sidecar代理配置中是否配置了按連接埠或地址來禁用Sidecar代理,或者Sidecar流量配置中是否配置了正確的出入站流量目標。
相關文檔
如果您發現某些請求耗時異常,可以通過訪問日誌定位請求異常延遲的原因。具體操作,請參見通過訪問日誌定位請求異常延遲的原因。
如果您需要在用戶端對一個目標服務的訪問過程中,使流量儘可能的在同一個可用性區域內流轉,以保證服務間的調用延遲最低,可以使用同可用性區域優先路由功能。具體操作,請參見使用網格拓撲觀測同可用性區域優先路由。
如果您需要觀測多個叢集的流量拓撲,可以使用託管模式的網格拓撲功能。整個網格執行個體只需要部署一個網格拓撲服務,減少配置的工作量。具體操作,請參見開啟託管模式的網格拓撲。
Sidecar的請求攔截機制可能會干擾網格內應用的健全狀態檢查,導致檢查失敗。您可以啟用健全狀態檢查重新導向,以確保檢查正確執行。具體操作,請參見為網格內應用開啟健全狀態檢查重新導向。