在以前的一篇文章中,咱们介绍了 如何将一个本地的 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 的部署。