共计 1970 个字符,预计需要花费 5 分钟才能阅读完成。
作者 | 孤弋 阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作。
导读 :在上一篇文章《SpringCloud 利用在 Kubernetes 上的云上实际 – 开发篇》中讲到能够通过两个工具,轻松地将一个 SpringCloud 利用从初始化到本地运行。本篇文章,咱们将介绍如何将上一篇文章中提到的利用在云上跑起来。
初始化集群
为了将利用运行在云端,首先咱们须要一个 Kubernetes 集群,在 EDAS 中应用 Kubernetes 集群目前最快的形式,是将一个阿里云容器集群中的 Kubernetes 集群 (ACK 集群),导入到 EDAS 中来。
如果还没有 ACK 集群的话,您能够通过以下两种形式来创立一个:
- 间接进入容器服务的控制台进行创立;
- 如果您曾经有一个在云上建好的集群,或者有一个在其余 IDC 或友商中有的集群,也能够在容器服务这边通过“注册已有集群”的形式,导入到容器服务中来。
等到 Kubernetes 集群就绪之后,在 EDAS 上须要进行一次集群“导入”,导入形式如下图所示:
在导入集群时,EDAS 会做以下操作:
- 初始化 EDAS 的集群控制器和相干资源,次要蕴含:基于凋谢云原生利用规范的 OAM Controller、日志采集的 Agent、监控链路中的 Arms 环境信息等;其中大部分控制器运行时不会占用用户集群的资源,而会运行在 EDAS 托管的一个管控集群中,由 EDAS 来负责保护;
- 依据用户的布局,划分好此集群与 EDAS 中命名空间的关系。EDAS 中的命名空间是用来隔离服务与配置的,简略的能够了解成开发、测试、线上这样的日常研发中的环境。集群导入的同时也确定了该 Kubernetes 集群是用于哪套环境。
初始化利用
在筹备好集群之后,咱们须要初始化一个云端的利用,进入 EDAS 中的创立利用的向导之后,抉择刚刚创立的集群进行利用创立,在须要抉择的利用利用运行环境处,会看到有 “ 自定义 ”、”Java”、”Tomcat”、”EDAS Container” 四类,如下图所示:
这里须要非凡阐明一下,因为一个利用一旦一开始确定了部署类型,当前将不能被批改,其中:
- Java/Tomcat/EDAS Container 类型的的环境 :如果抉择这中运行环境,文件上传之后,EDAS 将把文件与相应的根底镜像一起打成利用的镜像应用;
- 自定义环境 :抉择镜像的运行环境之后,意味着每一次的部署均通过指定的自定义镜像进行部署,其中,自定义镜像须要满足肯定的标准,具体内容能够参考阿里云帮忙文档《制作利用容器 Docker 镜像》。其中外围的内容是以下两行代码:
# 继承 EDAS 的官网镜像
FROM apaas/edas
# 将文件下载至 /home/admin/app 中
ADD http://your.domain.com/file/location.jar /home/admin/app/
注 :EDAS 中的利用,运行时就是被 OAM 控制器管控下的 Kubernetes 的 Deployment,因而除了通过上述形式创立 EDAS 利用之外,EDAS 也能将集群中的 Deployment 读取进去,您能够将这些 Deployment 间接转成一个 EDAS 利用。这里如果有敌人对 EDAS 利用 与 Deployment 之间的转换感兴趣的话,咱们在专门的章节中细讲。
通过 IDE 插件间接部署 Kubernetes 利用
在初始化好利用之后,咱们就能在开发时通过 IDE 将利用打包并间接部署下来了。和抉择的 运行环境 无关,在插件中进行部署时,咱们也会有相应的选项,如图:
如果是在开发环境中,为了晋升开发效率,咱们举荐应用非自定义镜像的形式用 IDE 插件进行部署,因为插件中文件上传比在控制台中上传的速度要快 3 倍以上,对于体积偏大的部署包来说十分好用!而且相比从新构建 / 推送镜像后再进行部署而言,间接提交 war/jar 的部署也要快很多。
对于如何在 IDE 插件中部署,能够在阿里云官网文档上搜寻《应用 Cloud Toolkit 疾速部署利用至 EDAS》进行具体理解。
结语及其后续
本篇咱们还是站在开发者的视角,介绍了如何将一个开发好的利用包部署到云上的 EDAS 利用中,在开发环境下,面对泛滥的部署 Kubernetes 集群的形式中,咱们举荐的最佳形式是应用 war/jar 间接从插件中上传部署,在所有形式中这是最快的部署形式。接下来咱们将介绍站在运维的角度,如何应用 EDAS 的其余工具来构建部署流程。
首届 KubeCon 2020 线上峰会
7 月 30 日 – 8 月 1 日,阿里巴巴云原生专场,点击链接预约有礼:https://developer.aliyun.com/topic/alibabacloudnative/kubecon2020
“阿里巴巴云原生关注微服务、Serverless、容器、Service Mesh 等技术畛域、聚焦云原生风行技术趋势、云原生大规模的落地实际,做最懂云原生开发者的公众号。”