天天看點

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 診斷(線上聯調)前言打開調試開關準備可遠端通路的節點配置插件啟動應用進行聯調結語及後續首屆雲原生微服務大會

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 診斷(線上聯調)前言打開調試開關準備可遠端通路的節點配置插件啟動應用進行聯調結語及後續首屆雲原生微服務大會

作者 | 納海  阿裡巴巴進階開發工程師

導讀:上篇我們介紹了應用成功上雲後,面對應用的管理,如何做可灰階的線上釋出,那麼當雲上的應用行為不符合預期的時候,您會怎麼處理呢?修改代碼,打包,部署,然後檢視日志?或者開遠端調試端口遠端調試?

相關文章推薦:

前言

當雲上的應用行為不符合預期的時候,您會怎麼處理呢?修改代碼,打包,部署,然後檢視日志?或者開遠端調試端口遠端調試?

這些步驟都比較繁瑣。現在 EDAS 提供了端雲聯調的工具,讓您在本地就可以啟動應用并且能跟雲端服務聯調。隻需三個步驟,您就可以在本地獲得跟雲端服務聯調的能力,下面我們一起來體驗吧!

打開調試開關

預設情況下,EDAS 端雲聯調功能是關閉的,隻有打開命名空間中的調試開關後,本地服務才能跟雲端聯調。您可以隻對開發環境的命名空間開啟端雲聯調,而對其他環境保持關閉,這樣既友善本地開發,也保證其他環境服務穩定。

EDAS 命名空間的預設關閉狀态如下所示,打開開關即可啟用此功能:

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 診斷(線上聯調)前言打開調試開關準備可遠端通路的節點配置插件啟動應用進行聯調結語及後續首屆雲原生微服務大會

準備可遠端通路的節點

EDAS 端雲聯調隻需一個可遠端 SSH 的 Kubernetes 叢集節點即可,如果您已具備這樣的節點可跳過此節,否則可參考如下步驟來進行配置。

在 Kubernetes 叢集内任意選擇一個機器節點,進入 ECS 執行個體詳情,綁定一個彈性公網 IP:

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 診斷(線上聯調)前言打開調試開關準備可遠端通路的節點配置插件啟動應用進行聯調結語及後續首屆雲原生微服務大會

綁定彈性公網 IP 後,需要設定執行個體安全組規則以放通 SSH 端口的流量。進入執行個體安全組,設定入方向規則允許通路 SSH 的 22 端口:

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 診斷(線上聯調)前言打開調試開關準備可遠端通路的節點配置插件啟動應用進行聯調結語及後續首屆雲原生微服務大會

上圖中的授權對象 0.0.0.0/0 表示 22 端口對公網開放,您可以根據本地網絡的公網出口 IP 來設定授權對象,隻允許您所在的網絡通路執行個體的 22 端口,進一步提升安全系數。

最後,設定執行個體登入密碼并重新開機即可完成 SSH 配置:

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 診斷(線上聯調)前言打開調試開關準備可遠端通路的節點配置插件啟動應用進行聯調結語及後續首屆雲原生微服務大會

配置插件

現在我們來配置 IDE 插件來啟用端雲聯調。此功能支援 Intellij IDEA 和 Eclipse 兩種 IDE ,配置流程相同,下面以 Intellij IDEA 來說明配置參數。

打開 IDE 配置頁面,選擇 Alibaba Cloud Toolkit -> EDAS 頁面,勾選 Join EDAS Registry 選項,如下所示:

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 診斷(線上聯調)前言打開調試開關準備可遠端通路的節點配置插件啟動應用進行聯調結語及後續首屆雲原生微服務大會

參數說明如下:

  • Region:您的 Kubernetes 叢集及服務所在區域;
  • Namespace:EDAS命名空間,如未看到所需的命名空間,請參考上面的《打開調試開關》小節打開端雲聯調功能;
  • Gateway Host:可遠端 SSH 的節點,請參考上面的《準備可遠端通路的節點》小節來配置;
  • Username:可遠端 SSH 的賬号名。這裡可填入一個不存在的賬号,插件會進行檢測,如不存在則進行建立;
  • Password:可遠端 SSH 的賬号密碼。如果賬号不存在,則插件使用此密碼來建立賬号;
  • Server Port:您的 Spring Cloud 項目服務端口。

填入以上資訊後,點選頁面上的 Add SSH Rule 按鈕進行配置,插件會提示授予 root 權限來進行代理配置:

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 診斷(線上聯調)前言打開調試開關準備可遠端通路的節點配置插件啟動應用進行聯調結語及後續首屆雲原生微服務大會

授予 root 權限,點選 Add 完成配置。至此,您已完成全部的配置流程,團隊成員可直接複用上述配置的 SSH 的節點、賬号和密碼,無需重新配置。

啟動應用進行聯調

現在我們跟平常一樣啟動本地應用,IDE 會提示目前處于端雲聯調狀态:

SpringCloud 應用在 Kubernetes 上的最佳實踐 — 診斷(線上聯調)前言打開調試開關準備可遠端通路的節點配置插件啟動應用進行聯調結語及後續首屆雲原生微服務大會

在此狀态下,本地服務能正常調用雲端服務,雲端服務也能調用本地服務。另外,您也可以使用 IDE 的調試模式來啟動本地應用,端雲聯調同樣生效。

結語及後續

在本篇文章中,我們介紹了 EDAS 端雲聯調工具,借助此工具本地服務能跟雲端服務進行聯調。端雲聯調對于可重制的問題來說是一個非常高效的解決方案,但不适用于如下問題:

  • 已發生的問題;
  • 不能穩定重制的問題;

對于這樣的問題,我們有更好用的解決方案:APM 監控。通過 APM 監控,您可以友善的檢視分析系統異常、服務異常、接口異常等各種異常資訊,下一講我們将詳細介紹《APM 監控》。

首屆雲原生微服務大會

首屆雲原生微服務大會 PC 端位址:

https://developer.aliyun.com/topic/microservices2020#/
阿裡巴巴雲原生 關注微服務、Serverless、容器、Service Mesh 等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,做最懂雲原生開發者的公衆号。”