作者 | 倪超(銀時) 阿里云開發者工具產品專家
本文整理自 11 月 7 日社群分享,每月 2 場高質量分享,點擊加入社群,
導讀:Cloud Toolkit 是本地 IDE 插件,幫助開發者更高效地開發、測驗、診斷并部署應用,通過插件,可以將本地應用一鍵部署到任意服務器,甚至云端(ECS、EDAS、Kubernetes 和 小程式云 等);并且還內置了 Arthas 診斷、Dubbo工具、Terminal 終端、檔案上傳和 MySQL 執行器等工具,
Cloud Toolkit 功能清單
- 一鍵部署本地 IDE 內專案到任意遠程服務器
- 一鍵部署本地 IDE 內專案到阿里云 EDAS、SAE 和 Kubernetes
- 本地 Docker Image 打包和倉庫推送工具
- 遠程服務器實時日志查看
- 阿里云小程式開發工具
- 阿里云函式計算開發工具
- 阿里云 RDS 內置 SQL 執行器
- 內置 Terminal 終端
- 檔案上傳
- Apache Dubbo 框架專案模板&代碼生成
- Java 程式診斷工具
- RPC 服務端云聯調
知識點 1:提升部署效率

如上圖所示,開發者本地撰寫的應用程式,在圖形化界面上進行配置,即可持續便利的部署到任意服務器,或者阿里云的 ECS 服務器上;在 IDEA 或 Eclipse 中完成編碼后,無須在 Maven 、Git 以及其他運維腳本和工具的之間切換,借助 Cloud Toolkit,在 IDE 的圖形界面上選擇一個或若干個實體,即可將應用程式部署至指定目錄,
針對阿里云 EDAS 和 SAE 產品的開發者,我們也在插件上打通了本地應用程式和云端部署,在 IDE 中完成編碼后,將專案工程關聯上 EDAS 和 SAE 的應用,即可實作快速部署,
針對阿里云容器服務 Kubernetes 產品的開發者,我們也在插件上打通了本地應用程式和云端 Kubernetes 部署,在 IDE 中完成編碼后,將專案工程關聯上容器服務 Kubernetes,即可實作快速部署,

知識點 2:本地 Docker Image 打包和倉庫推送工具
Cloud Toolkit 提供了圖形化的 Docker Image 打包工具,能夠幫助開發者即使在不熟悉 Docker 的情況下,也可以快速打包鏡像,并推送到阿里云鏡像倉庫 ACR ,

知識點 3:內置終端 Terminal

- IDE 內,開發者可以直接通過內置的終端 Terminal,快速登錄遠程服務器;
- 不僅僅用于阿里云服務器 ECS,所有支持標準 SSH 協議的機器都可以,
知識點 4:檔案上傳

Cloud Toolkit 幫助開發者在 IDE 內,一鍵將本地或者遠程 URL 檔案上傳到服務器指定目錄下去,無需在各種 FTP、SCP 工具之間頻繁切換,更為重要的是,檔案上傳完畢后,還支持命令執行,比如:檔案解壓縮、程式啟動等,
- 立即點擊下載
- 官網
手把手 1:部署應用到服務器
第一步:安裝插件
略過,請讀者自行前往各個平臺的插件市場下載「Alibaba Cloud Toolkit」,
第二步:添加服務器

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

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

第三步:部署

在 IntelliJ IDEA 中,滑鼠右鍵專案工程名,在出現的選單中點擊 【Alibaba Cloud - Deploy to Host...】,會出現如下部署視窗:

在 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)

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

第二步:部署

在 Intellij IDEA 中,滑鼠右鍵專案工程名,在出現的選單中點擊 Alibaba Cloud - Deploy to CS Kubernetes...,可會出現如下部署視窗,
設定說明 1

-
在 Image 標簽頁中,選擇本地應用程式的 Context Directory 和 Dockerfile(通常會根據您本地的應用工程自動識別并設定);
-
選擇容器鏡像服務的地域、命名空間和鏡像倉庫,然后單擊 Container 標簽頁,
說明:如果您還沒有鏡像倉庫,在對話框右上角單擊 Create a new repository 跳轉到容器鏡像倉庫創建鏡像倉庫,創建步驟請參考容器鏡像倉庫檔案,
設定說明 2

在 Container 標簽頁,選擇容器服務 Kubernetes 的 Clusters(集群)、Namespace(命名空間)和 Deployment(部署),以及其中指定的 Container(容器),
說明:如果您還沒有創建容器服務 Kubernetes 的 Deployment,在對話框右上角單擊 Create a new Kubernetes deployment,跳轉到容器服務 Kubernetes 控制臺創建 Deployment,創建步驟請參考容器服務 Kubernetes 版檔案,
點擊 Run 按鈕之后,即可完成本地應用程式向容器服務 Kubernetes 的部署,

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,
歡迎加入釘釘交流群

“阿里巴巴云原生微信公眾號(ID:Alicloudnative)關注微服務、Serverless、容器、Service Mesh等技術領域、聚焦云原生流行技術趨勢、云原生大規模的落地實踐,做最懂云原生開發者的技術公眾號,”
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/55387.html
標籤:其他
