在以前的一篇文章中,咱們介紹了 如何將一個本地的 Java 應用程序直接部署到阿里雲 ECS ,有很多讀者反饋,若是目前已經在使用阿里雲容器服務 Kubernetes 了,那該如何配合這個插件部署應用呢?在本文中,咱們來介紹 部署應用程序到阿里雲容器服務 Kubernetes 。html
容器服務 Kubernetes 版提供高性能可伸縮的容器應用管理能力,支持企業級 Kubernetes 容器化應用的全生命週期管理。容器服務 Kubernetes 版簡化集羣的搭建和擴容等工做,整合阿里雲虛擬化、存儲、網絡和安全能力,打造雲端最佳的 Kubernetes 容器化應用運行環境。(java
本文采用一個極其基礎的樣例《在 Web 頁面打印 HelloWorld 的 Java Servlet 》爲例,作代碼工程的參考。web
public class IndexServlet extends HttpServlet {
private static final long serialVersionUID = -112210702214857712L;
@Override
public void doGet( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException {
PrintWriter writer = resp.getWriter();
//Demo:經過 Cloud Toolkit ,高效的將本地應用程序代碼修改,部署到雲上。
writer.write("Deploy from Alibaba Cloud Toolkit. 2018-12-17");
return;
}
@Override
protected void doPost( HttpServletRequest req, HttpServletResponse resp ) throws ServletException, IOException {
return;
}}複製代碼
源代碼下載tomcat
上述代碼就是一個標準的 Java 工程,用於在 Web 頁面上打印一串「Hello World」的文案。安全
編寫一個 Dockerfile 文件(下載),放置於工程根目錄下bash
FROM tomcat:8.5.34-jre8
COPY target/javademo.war /usr/local/tomcat/webapps/複製代碼
阿里雲提供了基於 Intellij IDEA 的插件,以方便開發人員可以高效的將本地 IDE 中編寫的應用程序,極速部署到 容器服務 Kubernetes 中去。
插件主頁:www.aliyun.com/product/clo…網絡
阿里雲的這個 Intellij IDEA 插件的安裝過程,和普通的插件大同小異,這裏再也不贅述,讀者請自行安裝。app
安裝完插件以後,按照以下路徑進行首選項配置webapp
頂部菜單 - Tools - Alibaba Cloud Toolkit - Preferenceside
出現以下界面,配置阿里雲帳號的 AK 和 SK,便可完成首選項配置。
設置本地 Docker 鏡像打包
頂部菜單 - Tools - Alibaba Cloud Toolkit - Preferences - Alibaba Cloud Toolkit - Docker
在 Intellij IDEA 中,鼠標右鍵項目工程名,在出現的菜單中點擊 Alibaba Cloud - Deploy to CS Kubernetes...,可會出現以下部署窗口:
在 Image 標籤頁中,選擇本地應用程序的 Context Directory 和 Dockerfile (一般會根據您本地的應用工程自動識別並設置);
選擇容器鏡像服務的地域、命名空間和鏡像倉庫,而後單擊 Container 標籤頁。
說明:若是您尚未鏡像倉庫,在對話框右上角單擊 Create a new repository 跳轉到容器鏡像倉庫建立鏡像倉庫。建立步驟請參考容器鏡像倉庫文檔。
在 Container 標籤頁,選擇容器服務 Kubernetes 的 Clusters(集羣)、Namespace(命名空間)和 Deployment(部署),以及其中指定的 Container(容器)。
說明:若是您尚未建立容器服務 Kubernetes 的 Deployment,在對話框右上角單擊 Create a new Kubernetes deployment,跳轉到容器服務-Kubernetes 控制檯建立 Deployment。建立步驟請參考容器服務 Kubernetes 版文檔。
點擊 Run 按鈕以後,便可完成本地應用程序向容器服務 Kubernetes 的部署。