帶你上手一款下載超 10 萬次的 IDEA 插件

做者 | 倪超(銀時) 阿里雲開發者工具產品專家html

本文整理自 11 月 7 日社羣分享,每個月 2 場高質量分享,點擊加入社羣。node

導讀:Cloud Toolkit 是本地 IDE 插件,幫助開發者更高效地開發、測試、診斷並部署應用。經過插件,能夠將本地應用一鍵部署到任意服務器,甚至雲端(ECS、EDAS、Kubernetes 和 小程序雲 等);而且還內置了 Arthas 診斷、Dubbo工具、Terminal 終端、文件上傳和 MySQL 執行器等工具。web

Cloud Toolkit 功能清單

  • 一鍵部署本地 IDE 內項目到任意遠程服務器
  • 一鍵部署本地 IDE 內項目到阿里雲 EDAS、SAE 和 Kubernetes
  • 本地 Docker Image 打包和倉庫推送工具
  • 遠程服務器實時日誌查看
  • 阿里雲小程序開發工具
  • 阿里雲函數計算開發工具
  • 阿里雲 RDS 內置 SQL 執行器
  • 內置 Terminal 終端
  • 文件上傳
  • Apache Dubbo 框架項目模板&代碼生成
  • Java 程序診斷工具
  • RPC 服務端雲聯調

知識點 1:提高部署效率

file

如上圖所示,開發者本地編寫的應用程序,在圖形化界面上進行配置,便可持續便利的部署到任意服務器,或者阿里雲的 ECS 服務器上;在 IDEA 或 Eclipse 中完成編碼後,無須在 Maven 、Git 以及其餘運維腳本和工具的之間切換,藉助 Cloud Toolkit,在 IDE 的圖形界面上選擇一個或若干個實例,便可將應用程序部署至指定目錄。docker

針對阿里雲 EDAS 和 SAE 產品的開發者,咱們也在插件上打通了本地應用程序和雲端部署,在 IDE 中完成編碼後,將項目工程關聯上 EDAS 和 SAE 的應用,便可實現快速部署。小程序

針對阿里雲容器服務 Kubernetes 產品的開發者,咱們也在插件上打通了本地應用程序和雲端 Kubernetes 部署,在 IDE 中完成編碼後,將項目工程關聯上容器服務 Kubernetes,便可實現快速部署。tomcat

file

知識點 2:本地 Docker Image 打包和倉庫推送工具

Cloud Toolkit 提供了圖形化的 Docker Image 打包工具,可以幫助開發者即便在不熟悉 Docker 的狀況下,也能夠快速打包鏡像,並推送到阿里雲鏡像倉庫 ACR 。服務器

file

知識點 3:內置終端 Terminal

file

  • IDE 內,開發者能夠直接經過內置的終端 Terminal,快速登陸遠程服務器;
  • 不只僅用於阿里雲服務器 ECS,全部支持標準 SSH 協議的機器均可以。

知識點 4:文件上傳

file

Cloud Toolkit 幫助開發者在 IDE 內,一鍵將本地或者遠程 URL 文件上傳到服務器指定目錄下去,無需在各類 FTP、SCP 工具之間頻繁切換。更爲重要的是,文件上傳完畢後,還支持命令執行,好比:文件解壓縮、程序啓動等。
微信

手把手 1:部署應用到服務器

第一步:安裝插件

略過,請讀者自行前往各個平臺的插件市場下載「Alibaba Cloud Toolkit」。網絡

第二步:添加服務器

file

上圖所示,在菜單 Tools - Alibaba Cloud - Alibaba Cloud View - Host 中打開機器視圖界面,以下圖:app

file

點擊右上角 Add Host 按鈕,出現添加機器界面:

file

第三步:部署

file

在 IntelliJ IDEA 中,鼠標右鍵項目工程名,在出現的菜單中點擊 【Alibaba Cloud - Deploy to Host...】,會出現以下部署窗口:

file

在 Deploy to Host 對話框設置部署參數,而後單擊 Deploy,便可執行初次部署。

部署參數說明

  • Deploy File:部署文件包含兩種方式;
    • Maven Build:若是當前工程採用 Maven 構建,可使用 Cloud Toolkit 直接構建並部署;
    • Upload File:若是當前工程並不是採用 Maven 構建,或者本地已經存在打包好的部署文件,能夠選擇並直接上傳本地的部署文件;
  • Target Deploy host:在下拉列表中選擇 Tag,而後選擇要部署的服務器;

  • Deploy Location :輸入在 ECS 上部署路徑,如 /root/tomcat/webapps;

  • Commond:輸入應用啓動命令,如 sh /root/restart.sh。表示在完成應用包的部署後,須要執行的命令 —— 對於 Java 程序而言,一般是一句 Tomcat 的啓動命令。

手把手 2:部署應用到容器服務 Kubernetes

第一步:配置插件首選項

安裝完插件以後,按照路徑進行首選項配置:頂部菜單 - Tools - Alibaba Cloud Toolkit - Preferences。

出現以下界面,配置阿里雲帳號的 AK 和 SK,便可完成首選項配置。(若是是子帳號,則填寫子帳號的 AK 和 SK)

file

設置本地 Docker 鏡像打包:頂部菜單 - Tools - Alibaba Cloud Toolkit - Preferences - Alibaba Cloud Toolkit - Docker

file

第二步:部署

file

在 Intellij IDEA 中,鼠標右鍵項目工程名,在出現的菜單中點擊 Alibaba Cloud - Deploy to CS Kubernetes...,可會出現以下部署窗口。

設置說明 1

file

  • 在 Image 標籤頁中,選擇本地應用程序的 Context Directory 和 Dockerfile(一般會根據您本地的應用工程自動識別並設置);

  • 選擇容器鏡像服務的地域、命名空間和鏡像倉庫,而後單擊 Container 標籤頁。

說明:若是您尚未鏡像倉庫,在對話框右上角單擊 Create a new repository 跳轉到容器鏡像倉庫建立鏡像倉庫。建立步驟請參考容器鏡像倉庫文檔

設置說明 2

file

在 Container 標籤頁,選擇容器服務 Kubernetes 的 Clusters(集羣)、Namespace(命名空間)和 Deployment(部署),以及其中指定的 Container(容器)。

說明:若是您尚未建立容器服務 Kubernetes 的 Deployment,在對話框右上角單擊 Create a new Kubernetes deployment,跳轉到容器服務 Kubernetes 控制檯建立 Deployment。建立步驟請參考容器服務 Kubernetes 版文檔

點擊 Run 按鈕以後,便可完成本地應用程序向容器服務 Kubernetes 的部署。

file

Q & A

Q1:K8s 各組件,好比 etcd,建議部署在容器內仍是物理機?有什麼區別或者優劣嗎?
A1:etcd 能夠部署在容器裏,物理機的話就是性能更好一點。

Q2:若是登陸是堡壘機,而且是動態密碼,那個配置保存必需要密碼,因此不方便吧!能動態密碼登錄局域網服務器嗎?
A2:這是個很是好的建議,咱們須要在後續的版本中開發這些能力。

Q3:如何在本地電腦(如 mac )部署 K8s 玩玩,以及寫 Go 代碼增刪改查 K8s 資源,這塊有啥玩一玩的優良經驗嘛?目的是想本地開發測試 K8s,更加去熟悉 K8s 內部機制。
A3:本地 mac 要玩 K8s 能夠去搜一下 minikube。

Q4:K8s 網絡組件 calico 和自帶的 flannel,請問建議採用哪個?
A4:簡單上手選 flannel,看重功能選 calico。

Q5:有哪些開源的管理 K8s Web UI 軟件,這樣能夠部署在公司內,全部團隊直接在該軟件內傻瓜式操做 K8s 資源,本身部署上線代碼?
A5:K8s 自帶的 dashboard 能夠試試。

Q6:我想深刻學 K8s,可是 K8s 內部使用了 etcd/coredns,以及監控這塊使用 prometheus,這些技術是否是須要先深刻學習下,再去深刻學習 K8s 呢?畢竟 K8s 太大了,一上來就深刻會容易找不到門路,這塊大大有啥經驗沒?
A6:建議從 K8s 核心開始學習,再學習周邊組件,按照從中心到外圍的順序。推薦學習下阿里雲和 CNCF 聯合開發的免費雲原生技術公開課。連接:https://edu.aliyun.com/roadmap/cloudnative

Q7:若 K8s 集羣服務器宕機,請問如何快速恢復集羣能力(除拉起 kubelet 等待其餘組件自動拉起,是否還有其餘方式)?
A7:配置 3master 高可用可下降宕機帶來的損失,另外備份組件的配置文件。

Q8:Master 節點若是同時做爲 node 節點,請問存在哪些風險?
A8:Master 節點不宜做爲 node 節點部署應用,會致使集羣不穩定。

Q9:請問老師,假設升級 K8s 集羣版本,有什麼地方須要注意的?另外升級過程各個組件前後順序有要求嗎?謝謝。
A9:作好各個組件的備份,通常先升級 master,再升級 worker。

歡迎加入釘釘交流羣

file

「阿里巴巴雲原生微信公衆號(ID:Alicloudnative)關注微服務、Serverless、容器、Service Mesh等技術領域、聚焦雲原生流行技術趨勢、雲原生大規模的落地實踐,作最懂雲原生開發者的技術公衆號。」

相關文章
相關標籤/搜索