凌云时刻 · 技术

导读:上一章开发,我们讲到通过使用两个工具,可以很轻松的将一个 SpringCloud 应用从初始化到本地运行,本篇,我们将介绍如何将上一讲中提到的应用在云上跑起来。

作者 | 孤弋

来源 | 凌云时刻(微信号:linuxpk)

初始化集群

为了将应用运行在云端,首先我们需要一个 Kubernetes 集群,在 EDAS 中使用 Kubernetes 集群目前最快的方式,是将一个阿里云容器集群中的 Kubernetes 集群( ACK 集群 ),导入到 EDAS 中来。

如果还没有ACK集群的话,您可以通过以下两种方式来创建一个:

  1. 直接进入容器服务的控制台进行创建。

  1. 如果您已经有一个在云上建好的集群,或者有一个在其他 IDC 或友商中有的集群,也可以在容器服务这边通过“注册已有集群”的方式,导入到容器服务中来。

等到 Kubernetes 集群就绪之后,在 EDAS 上需要进行一次集群“导入”,导入方式如下图所示:

在导入集群时,EDAS 会做以下操作:

  1. 初始化 EDAS 的集群控制器和相关资源,主要包含:基于开放云原生应用标准的 OAM Controller、日志采集的 Agent、监控链路中的 Arms 环境信息等;其中大部分控制器运行时不会占用用户集群的资源,而会运行在 EDAS 托管的一个管控集群中,由 EDAS 来负责维护。

  1. 根据用户的规划,划分好此集群与 EDAS 中命名空间的关系。EDAS 中的命名空间是用来隔离服务与配置的,简单的可以理解成开发、测试、线上这样的日常研发中的环境。集群导入的同时也确定了该 Kubernetes 集群是用于哪套环境。

初始化应用

在准备好集群之后,我们需要初始化一个云端的应用,进入 EDAS 中的创建应用的向导之后,选择刚刚创建的集群进行应用创建,在需要选择的应用应用运行环境处,会看到有 "自定义"、"Java" 、"Tomcat"、"EDAS Container" 四类,如下图所示:

这里需要特殊说明一下,因为一个应用一旦一开始确定了部署类型,以后将不能被修改,其中:

  1. Java/Tomcat/EDAS Container 类型的的环境:如果选择这中运行环境,文件上传之后,EDAS 将把文件与相应的基础镜像一起打成应用的镜像使用。

  1. 自定义环境:选择镜像的运行环境之后,意味着每一次的部署均通过指定的自定义镜像进行部署,其中,自定义镜像需要满足一定的规范,具体内容可以参考阿里云帮助文档《制作应用容器 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 的其他工具来构建部署流程。

END

往期精彩文章回顾

SpringCloud x Kubernetes(一):开发篇

云原生五大趋势预测,K8s 安卓化位列其一

eBPF Up & Running: Overview

容器技术在企业落地的最佳实践

节约服务器成本50%以上,独角兽完美日记电商系统容器化改造历程

投入产出比增长2倍以上!银泰抛弃传统数据库转投阿里云PolarDB

阿里云SAE助力百富旅行实现Serverless+微服务完美结合

关于Kubernetes规划的灵魂N问

饿了么四年、阿里两年:研发路上的一些总结与思考

再启程,Service Mesh 前路虽长,尤可期许

长按扫描二维码关注凌云时刻

每日收获前沿技术与科技洞见

SpringCloud 应用在 Kubernetes 上的最佳实践(二):部署篇 (开发部署)相关推荐

  1. SpringCloud 应用在 Kubernetes 上的最佳实践 —— 高可用(容量评估)

    作者 | 牛兔 导读:本文是<SpringCloud 应用在 Kubernetes 上的最佳实践>系列文章的第 11 篇,从前面两期开始我们进入到了高可用专题,分别介绍了流量防护和故障演练 ...

  2. SpringCloud 应用在 Kubernetes 上的最佳实践 — 高可用(熔断)

    作者 | 宿何 导读:前几篇我们主要站在应用发布的场景,描述在发布过程中会遇到的灰度.监控.回滚.优雅上下线等保障发布能顺利进行的注意事项.作为一个程序员 GG,可灰度的发布顺利上线往往意味着准点下班 ...

  3. SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(优雅上下线)

    作者 | 骄龙 导读:本篇是<SpringCloud 应用在 Kubernetes 上的最佳实践>系列文章的第八篇,主要介绍了如何做到流量的无损上/下线.更多相关文章阅读可查看文末. 前言 ...

  4. SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可回滚)

    作者 | 长门 **导读:**本篇是<SpringCloud 应用在 Kubernetes 上的最佳实践>系列文章的第七篇,主要介绍了新功能上线时,如何尽快减少对线上用户的影响?发布系统需 ...

  5. SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可监控)

    作者 | 骐羽 阿里巴巴技术专家 导读:本篇是"SpringCloud 应用在 Kubernetes 上的最佳实践"系列文章的第六篇,主要介绍了如何保障生产环境服务稳定,做到随时发 ...

  6. SpringCloud 应用在 Kubernetes 上的最佳实践 — 诊断(线上联调)

    作者 | 纳海  阿里巴巴高级开发工程师 **导读:**上篇我们介绍了应用成功上云后,面对应用的管理,如何做可灰度的线上发布,那么当云上的应用行为不符合预期的时候,您会怎么处理呢?修改代码,打包,部署 ...

  7. SpringCloud 应用在 Kubernetes 上的最佳实践 — 线上发布(可灰度)

    作者 | 白寂  阿里云开发工程师 导读:前三篇文章我们介绍了应用的开发和部署,那么在应用成功上云后,我就要面对应用的管理话题了,这一篇我们来看看如何做线上发布,并且是可灰度的. 相关文章推荐: &l ...

  8. SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(工具部署)

    作者 | 孤弋  阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作. 导读:上一篇文章<SpringCloud 应用在 Kubernetes 上的最佳实践 - 部署篇(开发部署)&g ...

  9. SpringCloud 应用在 Kubernetes 上的最佳实践 —— 高可用(弹性伸缩)

    作者 | 三未 前言 弹性伸缩是一种为了满足业务需求.保证服务质量.平衡服务成本的重要应用管理策略.弹性伸缩让应用的部署规模能够根据实时的业务量产生动态调整,在业务高峰期扩大部署规模,保证服务不被业务 ...

  10. SpringCloud 应用在 Kubernetes 上的最佳实践 — 部署篇(开发部署)

    作者 | 孤弋  阿里云高级技术专家,负责 EDAS 的开发和用户体验优化工作. 导读:在上一篇文章<SpringCloud 应用在 Kubernetes 上的云上实践 - 开发篇>中讲到 ...

最新文章

  1. ECMAScript 引用类型
  2. 效果提升7%、速度增加220%,OCR开源神器PaddleOCR再迎升级
  3. SQLSERVER排查CPU占用高的情况
  4. 微信公众号接口权限表汇总
  5. 足够应付面试的Spring事务源码阅读梳理
  6. 函数调用关系图如何画_乌鲁木齐126中一校三址关系图出炉!佳源和绿谷应该如何选择?...
  7. 同级中断可以嵌套吗_这可能是最通俗易懂的方式讲解ARM中断原理以及中断嵌套...
  8. Mysql5.7中文乱码
  9. idea 背景色修改_IDEA使用调优配置
  10. cmd命令删除计算机密码,怎么用DOS命令查询或消除电脑登陆密码?
  11. 关于华为2019全联接大会,精华内容都在这里!
  12. bandizip关闭自动更新提示的方法步骤
  13. [BZOJ4199][NOI2015]品酒大会(后缀数组+单调栈+ST表)
  14. BufferedImage类、Image类、Graphics类
  15. hadoop2提交到Yarn: Mapreduce执行过程分析1
  16. 人工智能大战苹果缺席 保护用户隐私拖慢其步伐
  17. c++实现三国杀小游戏
  18. 在建工程直接费用化_​在建工程资本化费用化区别
  19. 【软件服务外包概论】软件服务外包概论知识点整理
  20. 开源 cocos2d-html5版 五彩连珠.

热门文章

  1. (76) Clojure: Why would someone learn Clojure? - Quora
  2. 对华为系统软件的战略思考(上)(完)
  3. 上传图片至fastdfs显示连接超时
  4. ABAP 练习用航班数据
  5. 如何在Java应用中提交Spark任务?
  6. 判断网页是否是微信浏览器打开
  7. 在MEF中实现延迟加载部件(转)
  8. 新增四则运算用户选择功能小程序
  9. HDU 3709 Balanced Number 枚举+数位DP
  10. MFC中手工创建控件