javascript
SpringCloud 应用在 Kubernetes 上的最佳实践 — 诊断(线上联调)
作者 | 納海? 阿里巴巴高級開發工程師
**導讀:**上篇我們介紹了應用成功上云后,面對應用的管理,如何做可灰度的線上發布,那么當云上的應用行為不符合預期的時候,您會怎么處理呢?修改代碼,打包,部署,然后查看日志?或者開遠程調試端口遠程調試?
相關文章推薦:
- 《SpringCloud 應用在 Kubernetes 上的最佳實踐 —— 開發篇》
- 《SpringCloud 應用在 Kubernetes 上的最佳實踐 — 部署篇(開發部署)》
- 《SpringCloud 應用在 Kubernetes 上的最佳實踐 — 部署篇(工具部署)》
- 《SpringCloud 應用在 Kubernetes 上的最佳實踐 — 線上發布(可灰度)》
前言
當云上的應用行為不符合預期的時候,您會怎么處理呢?修改代碼,打包,部署,然后查看日志?或者開遠程調試端口遠程調試?
這些步驟都比較繁瑣?,F在 EDAS 提供了端云聯調的工具,讓您在本地就可以啟動應用并且能跟云端服務聯調。只需三個步驟,您就可以在本地獲得跟云端服務聯調的能力,下面我們一起來體驗吧!
打開調試開關
默認情況下,EDAS 端云聯調功能是關閉的,只有打開命名空間中的調試開關后,本地服務才能跟云端聯調。您可以只對開發環境的命名空間開啟端云聯調,而對其他環境保持關閉,這樣既方便本地開發,也保證其他環境服務穩定。
EDAS 命名空間的默認關閉狀態如下所示,打開開關即可啟用此功能:
準備可遠程訪問的節點
EDAS 端云聯調只需一個可遠程 SSH 的 Kubernetes 集群節點即可,如果您已具備這樣的節點可跳過此節,否則可參考如下步驟來進行配置。
在 Kubernetes 集群內任意選擇一個機器節點,進入 ECS 實例詳情,綁定一個彈性公網 IP:
綁定彈性公網 IP 后,需要設置實例安全組規則以放通 SSH 端口的流量。進入實例安全組,設置入方向規則允許訪問 SSH 的 22 端口:
上圖中的授權對象 0.0.0.0/0 表示 22 端口對公網開放,您可以根據本地網絡的公網出口 IP 來設置授權對象,只允許您所在的網絡訪問實例的 22 端口,進一步提升安全系數。
最后,設置實例登錄密碼并重啟即可完成 SSH 配置:
配置插件
現在我們來配置 IDE 插件來啟用端云聯調。此功能支持 Intellij IDEA 和 Eclipse 兩種 IDE ,配置流程相同,下面以 Intellij IDEA 來說明配置參數。
打開 IDE 配置頁面,選擇 Alibaba Cloud Toolkit -> EDAS 頁面,勾選 Join EDAS Registry 選項,如下所示:
參數說明如下:
- Region:您的 Kubernetes 集群及服務所在區域;
- Namespace:EDAS命名空間,如未看到所需的命名空間,請參考上面的《打開調試開關》小節打開端云聯調功能;
- Gateway Host:可遠程 SSH 的節點,請參考上面的《準備可遠程訪問的節點》小節來配置;
- Username:可遠程 SSH 的賬號名。這里可填入一個不存在的賬號,插件會進行檢測,如不存在則進行創建;
- Password:可遠程 SSH 的賬號密碼。如果賬號不存在,則插件使用此密碼來創建賬號;
- Server Port:您的 Spring Cloud 項目服務端口。
填入以上信息后,點擊頁面上的 Add SSH Rule 按鈕進行配置,插件會提示授予 root 權限來進行代理配置:
授予 root 權限,點擊 Add 完成配置。至此,您已完成全部的配置流程,團隊成員可直接復用上述配置的 SSH 的節點、賬號和密碼,無需重新配置。
啟動應用進行聯調
現在我們跟平常一樣啟動本地應用,IDE 會提示當前處于端云聯調狀態:
在此狀態下,本地服務能正常調用云端服務,云端服務也能調用本地服務。另外,您也可以使用 IDE 的調試模式來啟動本地應用,端云聯調同樣生效。
結語及后續
在本篇文章中,我們介紹了 EDAS 端云聯調工具,借助此工具本地服務能跟云端服務進行聯調。端云聯調對于可重現的問題來說是一個非常高效的解決方案,但不適用于如下問題:
- 已發生的問題;
- 不能穩定重現的問題;
對于這樣的問題,我們有更好用的解決方案:APM 監控。通過 APM 監控,您可以方便的查看分析系統異常、服務異常、接口異常等各種異常信息,下一講我們將詳細介紹《APM 監控》。
首屆云原生微服務大會
首屆云原生微服務大會 PC 端地址:https://developer.aliyun.com/topic/microservices2020#/
“阿里巴巴云原生關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦云原生流行技術趨勢、云原生大規模的落地實踐,做最懂云原生開發者的公眾號。”
總結
以上是生活随笔為你收集整理的SpringCloud 应用在 Kubernetes 上的最佳实践 — 诊断(线上联调)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 视频需求超平常数 10 倍,却节省了 6
- 下一篇: 减少运维工作量,如何通过 ROS 轻松实