1. 实践概述
本实践介绍如何使用华为云DevCloud,以Docker容器部署的方式,部署一个简单的Web应用。
1.1 关于容器
容器是操作系统内核自带能力,是基于Linux内核实现的轻量级高性能资源隔离机制。Docker 是容器技术之一, 核心在于实现应用与运行环境整体打包以及打包格式统一。
Docker的英文本意是搬运工,这种搬运工搬运的是集装箱(Container),Docker把App(叫Payload)装在Container内,通过Linux Container技术的包装将App变成一种标准化的、可移植的、自管理的组件。
容器的关键价值:
• 快速交付和部署:一站式部署/运维容器应用,一键式滚动升级
• 提升资源利用率:更细粒度地划分资源,提高资源利用率
• 保障业务高可用:秒级弹性扩容,快速响应并发高峰
• 复杂系统管理简单:单一重型应用解耦拆分为多个轻量模块,每个模块升级、伸缩更加灵活,轻松应对市场变化
1.2 关于DevCloud
DevCloud是集华为研发实践、前沿研发理念、先进研发工具为一体的研发云平台;面向开发者提供研发工具服务,让软件开发简单高效。
华为云DevCloud官网:
2. 环境准备
本次实践将使用云容器引擎集群(包含1个2核4G以上节点、弹性公网IP)。若已有相应资源,可重复使用。
领取免费资源请点击
2.1 购买云容器引擎集群
进入云容器引擎CCE主页,右击新标签页打开:
点击 购买Kubernetes集群 ,按照页面提示完成集群购买。
•节点 选择 2核4GB 以上
•镜像 选择 Linux 操作系统镜像
•绑定/购买弹性公网IP,带宽选择 1Mbit/s 以上
3. 获取示例项目源码
3.1 创建DevCloud项目
访问华为云软件开发服务DevCloud官网:
点击立即使用
完成华为云账号登录后进入DevCloud,点击右上角创建项目
选择 空白项目>Scrum 输入项目名称,示例:Docker-Demo,点击确定
3.2 下载项目源码
下载本实践所需的示例源码:
访问文档末附件:Docker-Demo-master.zip,下载至本地并完成解压。
3.3 创建代码仓库
在3.1创建好的项目中,点击上方菜单代码>代码托管,点击新建,选择普通新建
输入代码仓库名称,其他设置项保持默认
点击仓库名称,进入代码仓,点击克隆/下载,复制SSH/HTTPS克隆地址,将3.2下载的项目源码使用Git Bash、TortoiseGit等工具软件推送至代码仓中
具体操作步骤可参照:
4. 执行编译构建
4.1 创建编译构建任务
进入3.1创建好的项目中,点击上方菜单构建&发布>编译构建点击新建任务
•构建任务名称:dockerbuild
•选择代码源:保持默认
•构建模板:选择Maven
构建步骤各原子操作的配置可参照以下配置:
Maven构建
•保持默认,或按需修改
增加制作镜像并推送到SWR仓库
•步骤显示名称:默认
•工具版本:默认
•镜像仓库:华为云镜像仓库SWR
•组织: 选择SWR中已创建的组织(若无请参考下文)
•镜像名字:dockerdemo
•镜像标签:v1.1
•工作目录:保持默认
•Dockerfile路径:保持默认
若无镜像组织,请右击新标签页打开:
点击 立即使用 ,访问:总览>创建组织,输入 组织名称 ,点击确定。
上传软件包到软件发布库
•步骤显示名称:保持默认
•构建包路径:target/intro.war
•发布版本号:1.0.0
•包名:intro
点击确认。
4.2 执行编译构建任务
构建任务创建成功后,点击右上角执行,等待构建任务执行成功。
5. 创建并执行应用部署
在DevCloud新建项目中,点击上方菜单构建&发布>部署点击新建任务
•构建任务名称:dockerdeploy
•部署模板:容器应用部署(CCE/CCI)
部署步骤中各配置字段参考如下:
•步骤显示名称:默认
•选择源类型:CCE应用
•集群名称:选择已创建好的CCE集群
•命名空间名称:default
•负载名称:点击右侧图标,输入dockerdemo后,点击✔确认
•实例数量:1
•镜像名称:选择构建任务生成的镜像文件dockerdemo
•镜像版本:默认
•更新策略:默认
•升级方式:默认
•CPU申请配额:0.5
•CPU限制配额:0.5
•内存申请配额:512
•内存限制配额:512
•高级设置>访问设置:点击添加服务,选择节点访问(NodePort),填写容器和访问端口,如下图:
•其他选项:保持默认
以上配置完成后,点击保存,在弹出页面中点击执行,等待部署完成。
6. 应用结果验证
部署任务执行成功后,进入CCE控制台:
访问工作负载>无状态,查看dockerdemo外部访问地址,在地址后加/intro,
访问应用路径如:http://ip:port/intro 查看部署结果: