隨著互聯(lián)網(wǎng)時(shí)代的不斷發(fā)展,開發(fā)者可能會(huì)面臨這樣的困境:為了解決問題、提升開發(fā)效率而竭力研發(fā)出來的“創(chuàng)新”,似乎削弱了他們在公司的重要程度,甚至取代了他們原先的地位。比如,在云原生時(shí)代,部分企業(yè)更愿意選擇 K8s 來解決運(yùn)維、彈性的問題,而不是組建一支需要耗費(fèi)大量雇傭資金、管理資金的研發(fā)團(tuán)隊(duì)。
對于 K8s,它的價(jià)值在于不僅能幫助公司降低運(yùn)維成本,同時(shí)還可以帶來彈性、敏捷、可移植能力,但是對于開發(fā)者而言,我們的價(jià)值不應(yīng)該僅僅停留在能與 K8s 解決同樣的問題,而是從困境跳脫出來,思考如何更靈活、更高效地運(yùn)用 K8s 這些 “能為你所用” 的東西,來提升自己的綜合技能。
涉及開發(fā)的技術(shù)人員,永遠(yuǎn)繞不開的就是將應(yīng)用部署到相應(yīng)服務(wù)器上,今天給大家講解,對于容器服務(wù) K8s,怎么實(shí)現(xiàn)真正“一鍵部署“,提高開發(fā)部署效率,在 K8s 的運(yùn)用上做到快人一步。以下是本文提綱:
- 什么是容器服務(wù) K8s
- 如何實(shí)現(xiàn)”一鍵部署“到容器服務(wù) K8s
- 如何實(shí)現(xiàn)”一鍵部署“到 host,開發(fā)部署提速 8 倍
一、 什么是容器服務(wù) K8s

容器服務(wù) K8s 是基于原生 K8s 進(jìn)行適配和增強(qiáng),簡化集群的搭建和擴(kuò)容等工作,提供高性能可伸縮的容器應(yīng)用管理能力,支持企業(yè)級容器化應(yīng)用的全生命周期管理,整合阿里云虛擬化、存儲(chǔ)、網(wǎng)絡(luò)和安全能力,打造云端最佳容器化應(yīng)用運(yùn)行環(huán)境。其中的核心功能為:
- 集群管理:靈活的地域和網(wǎng)絡(luò)環(huán)境選擇,可以根據(jù)自己的需求,選擇不同的地域創(chuàng)建和刪除集群。
- 多種服務(wù)器托管方式:支持授權(quán)容器服務(wù)創(chuàng)建云服務(wù)器加入到指定集群,支持將已購買的云服務(wù)器添加到指定集群。
- 一站式容器生命周期管理:包括網(wǎng)絡(luò)、存儲(chǔ)、日志、監(jiān)控、調(diào)度、路由、權(quán)限。
- 靈活擴(kuò)展調(diào)度策略,輕松打通上下游交付流程:支持服務(wù)級別的親和性策略和橫向擴(kuò)展、跨 AZ 高可用和災(zāi)難恢復(fù)、集群和應(yīng)用管理的 OpenAPI,輕松對接持續(xù)集成和私有部署系統(tǒng)。
二、如何實(shí)現(xiàn)”一鍵部署“到容器服務(wù) K8s
提高開發(fā)部署的效率有很多種方法,今天給大家分享的是一款本地 IDE 插件——Cloud Toolkit,據(jù)說是開發(fā)者用得最多的插件之一,不僅能夠?qū)⒋a開發(fā)到最終部署這整個(gè)流程自動(dòng)化,更是可以部署到任意服務(wù)器 & 云端(ECS、EDAS、K8s 和小程序云等),而且附帶很多功能:Arthas 診斷、Dubbo工具、Terminal 終端、文件上傳和 MySQL 執(zhí)行器等,最重要的一點(diǎn)是:免費(fèi)!免費(fèi)!免費(fèi)!網(wǎng)上很多博客、技術(shù)網(wǎng)站、公眾號都有相關(guān)的測評,大家可以參考看看,或者自己安裝試用,一定要試用【一鍵部署】的功能!下面介紹,如何借助這個(gè)插件,將應(yīng)用一鍵部署到容器服務(wù) k8s 上。

(一)安裝插件
免費(fèi)插件鏈接:https://www.aliyun.com/product/cloudtoolkit
(二)配置插件首選項(xiàng)
點(diǎn)擊:**頂部菜單Tools --> Alibaba Cloud Toolkit --> Preferences-->左邊列表的 Alibaba Cloud Toolkit--> Accounts ,出現(xiàn)如下界面,配置阿里云賬號的 AK 和 SK,即可完成首選項(xiàng)配置。(如果是子賬號,則填寫子賬號的 AK 和 SK)

(三)設(shè)置本地 Docker 鏡像打包
點(diǎn)擊:頂部菜單Tools --> Alibaba Cloud Toolkit --> Preferences --> 左邊列表的 Alibaba Cloud Toolkit --> Docker,如下圖,設(shè)置本地 Docker 鏡像打包。

(三)部署應(yīng)用
在 Intellij IDEA 中,鼠標(biāo)右鍵項(xiàng)目工程名,在出現(xiàn)的菜單中點(diǎn)擊 Alibaba Cloud --> Deploy to CS Kubernetes...,出現(xiàn)如下部署窗口:
第一步:設(shè)置 Image

- 在 Image 標(biāo)簽頁中,選擇本地應(yīng)用程序的 Context Directory 和 Dockerfile (通常會(huì)根據(jù)您本地的應(yīng)用工程自動(dòng)識(shí)別并設(shè)置)。
- 選擇容器鏡像服務(wù)的地域、命名空間和鏡像倉庫,然后單擊 Container 標(biāo)簽頁。
(說明:如果您還沒有鏡像倉庫,在對話框右上角單擊 Create a new repository 跳轉(zhuǎn)到容器鏡像倉庫創(chuàng)建鏡像倉庫,創(chuàng)建步驟請參考容器鏡像倉庫文檔。)
第二步:設(shè)置 Container

- 在 Container 標(biāo)簽頁,選擇容器服務(wù) Kubernetes 的 Deployment(部署)、Clusters(集群)和Namespace(命名空間) 。
- 選擇指定的 Container(容器)。
(說明:如果您還沒有創(chuàng)建容器服務(wù) Kubernetes 的 Deployment,在對話框右上角單擊 Create a new Kubernetes deployment,跳轉(zhuǎn)到容器服務(wù) Kubernetes 控制臺(tái)創(chuàng)建 Deployment,創(chuàng)建步驟請參考容器服務(wù) Kubernetes 版文檔。)
第三步:執(zhí)行部署
點(diǎn)擊 Run 按鈕之后,即可完成本地應(yīng)用程序向容器服務(wù) Kubernetes 的部署。
三、如何實(shí)現(xiàn)”一鍵部署“到 host,開發(fā)部署提速 8 倍
這款插件可以將應(yīng)用部署到 6 種服務(wù)器上,分別是:
- Host (任意服務(wù)器)
- ECS
- CS K8s
- EDAS(包括 EDAS for ECS Application & EDAS for K8s Application)
- Mini Program (小程序云)
- SAE
下面為大家詳細(xì)解說,如何將應(yīng)用一鍵部署到 host。
第一步:添加服務(wù)器
- 點(diǎn)擊:頂部菜單 Tools --> Alibaba Cloud --> Alibaba Cloud View --> Host ,打開機(jī)器視圖界面,如下圖:

- 點(diǎn)擊:右上角 Add Host 按鈕,出現(xiàn)添加機(jī)器界面,如下圖,設(shè)置相關(guān)配置。

第二步:執(zhí)行部署
在 IntelliJ IDEA 中,鼠標(biāo)右鍵項(xiàng)目工程名,在出現(xiàn)的菜單中點(diǎn)擊 Alibaba Cloud --> Deploy to Host...,會(huì)出現(xiàn)如下部署窗口,設(shè)置部署參數(shù),然后單擊 Deploy,即可執(zhí)行初次部署。

部署參數(shù)說明:
- Deploy File:部署文件包含兩種方式:
- Maven Build:如果當(dāng)前工程采用 Maven 構(gòu)建,可以使用 Cloud Toolkit 直接構(gòu)建并部署。
- Upload File:如果當(dāng)前工程并非采用 Maven 構(gòu)建,或者本地已經(jīng)存在打包好的部署文件,可以選擇并直接上傳本地的部署文件。
- Target Deploy host:在下拉列表中選擇 Tag,然后選擇要部署的服務(wù)器。
- Deploy Location :輸入在 ECS 上部署路徑,如 /root/tomcat/webapps。
- Commond:輸入應(yīng)用啟動(dòng)命令,如 sh /root/restart.sh。表示在完成應(yīng)用包的部署后,需要執(zhí)行的命令 —— 對于 Java 程序而言,通常是一句 Tomcat 的啟動(dòng)命令。
最后,希望今天推薦的插件能夠真正幫助大家提高開發(fā)部署的效率,提高對工具運(yùn)用的能力,大家可安裝試用起來,有任何疑問都可以加入社群進(jìn)行提問,聽說他們的客服也是一流,而且不定期有各種有獎(jiǎng)活動(dòng)/排位賽,最近就有 2 個(gè)中獎(jiǎng)率較高的活動(dòng),點(diǎn)擊本鏈接在文末查看具體的活動(dòng)詳情。
歡迎關(guān)注我的公眾號:程序猿DD,獲得獨(dú)家整理的學(xué)習(xí)資源和日常干貨推送。
如果您對我的專題內(nèi)容感興趣,也可以關(guān)注我的博客:didispace.com