本文以spring-hello为例,为您介绍如何基于ACR和云效快速部署应用,包括通过云效管理代码,使用ACR基于云效代码库来构建自有镜像,然后在ACK Serverless集群中使用自有镜像快速部署应用。
前提条件
已创建ACK Serverless集群。具体操作,请参见创建集群。
已创建ACR实例,且ACR实例和ACK Serverless集群处于同一地域。具体操作,请参见创建个人版实例或创建企业版实例。
说明ACR分为个人版和企业版,本文以个人版实例作为示例,企业版实例的操作类似。关于个人版实例与企业版实例的差异,请参见个人版和企业版实例差异化说明。
步骤一:准备代码并上传到云效代码库
在本地准备代码。
将代码存放到目标文件夹下(例如:D:\doctest),然后解压至文件夹spring-hello。
创建云效代码库。
登录云效Codeup控制台,在页面右上角单击新建代码库。
在弹出的对话框中完成代码库设置,然后单击确定。
本文使用的代码库名称示例codebasetest,其他参数保持默认。更多信息,请参见新建第一个代码库。
将代码上传到云效平台。
完成Git全局设置。
进入codebasetest代码库,在命令行指引区域,给出了Git全局设置的代码。复制代码,并在Git中执行。
执行如下命令,关联本地文件夹。更多信息,请参见关联本地文件夹。
# existing_folder是代码文件所在实际位置。 cd existing_folder git init # https://codeup.xxxx.git是新建代码库的地址,在新建代码库页面右上角或者命令行指引区域可获取。 git remote add origin https://codeup.xxxx.git git add . git commit -m 'init' git push -u origin master
请将本地代码所在的文件路径,以及云效代码库的地址替换为实际值。示例如下:
cd D:\doctest cd spring-hello git init git remote add origin https://codeup.aliyun.com/6731aa97cc7f222f53c8****/codebasetest.git git add . git commit -m 'init' git push -u origin master
重要执行
git push
命令时,会要求输入用户名和密码。您可以在云效平台右上角单击账号头像,选择个人设置,在HTTPS 密码页面获取克隆账号和密码。更多信息,请参见配置 HTTPS 克隆账号密码。确认代码已上传成功。
在codebasetest代码库中存在如下文件,则表示代码上传成功。
步骤二:绑定代码库到ACR实例并构建镜像
绑定云效代码库到ACR实例
登录云效Codeup控制台,创建并记录访问令牌。
单击右上角的账号头像,选择个人设置。
在个人设置页面的左侧导航栏,单击个人访问令牌。
在个人访问令牌页面,单击右上角的新建令牌。
完成令牌配置,然后单击新建。
名称和到期时间可自定义设置,权限请按最小权限设置。以下为ACR访问云效代码库所需的最小权限。
权限类别
权限
基础服务
组织成员:只读
组织部门:只读
代码管理
代码仓库:只读
代码组:读写
分支:只读
标签:只读
Webhook:读写
创建完成后,记录访问令牌。
重要请务必记录创建的访问令牌,您只可见一次。
在云效Codeup控制台,获取克隆账号。
单击右上角的账号头像,选择个人设置。
在个人设置页面的左侧导航栏,单击HTTPS 密码。
记录克隆账号。
登录容器镜像服务控制台,为ACR实例绑定云效代码库。
在顶部菜单栏,选择地域,然后在实例列表页面找到并单击目标ACR实例。
在ACR实例详情页的左侧导航栏,选择
。单击云效Codeup对应的绑定账号。
在弹出的对话框中填写用户名称和访问令牌,然后单击确定。
用户名称处请输入在云效平台查询的HTTPS克隆账号;个人访客令牌处请输入在云效平台创建的访问令牌。
在代码源页面确认已经绑定成功。
在ACR实例中基于云效代码库构建镜像
创建镜像仓库。
在ACR实例详情页的左侧导航栏,选择
。单击创建镜像仓库。
在弹出的对话框中完成仓库信息和代码源配置,然后单击创建镜像仓库。
以下为主要配置项,其余配置项保持默认即可。
配置向导页
配置项
说明
示例
仓库信息
命名空间
选择任意一个命名空间。
image_***
仓库名称
自定义您的镜像仓库名称。
myrepository
摘要
填写摘要。
不涉及
代码源
代码源
选择Codeup,然后选择步骤一创建的云效代码库。
codebasetest
在镜像仓库中构建镜像。
单击镜像仓库名称进入镜像仓库详情页面。
在左侧导航栏,单击构建。
在构建规则设置区域,单击添加规则。
规则示例如下:
类型:Branch
Branch/Tag:master
构建上下文目录:/
Dockerfile文件名:Dockerfile
镜像版本:v1
在规则所在行,单击立即构建。
在构建日志区域,确认镜像构建成功。
等待几分钟,然后刷新页面,待构建状态显示成功,说明镜像构建成功。
说明如果构建失败,可查看日志确认失败原因。
步骤三:在ACK Serverless集群中部署spring-hello应用
登录容器服务管理控制台,在左侧导航栏选择集群列表。
在集群列表页面,单击目标ACK Serverless集群名称,然后在左侧导航栏,选择 。
在无状态页面,单击使用镜像创建,参见下表配置应用信息并创建应用。
下表仅介绍主要配置项,其余配置项保持默认即可。更多信息,请参见使用镜像创建无状态应用。
配置向导页
配置项
说明
示例
应用基本信息
应用名称
输入应用名称。
spring-test
容器配置
镜像名称
单击选择镜像,然后选择ACR镜像仓库,找到并选中步骤二构建的镜像。
crpi-ryysqpkzyvk8****-vpc.cn-hangzhou.personal.cr.aliyuncs.com/image-***/myrepository:v1
所需资源
为容器设置资源额度。
1 Core,2 GB
端口
单击新增,开放8080端口。
名称:hello
容器端口:8080
协议:TCP
高级配置
服务
创建一个负载均衡类型的服务,并增加一条端口映射。
服务类型:负载均衡 (LoadBalancer)
端口映射:
名称:hello
服务端口:8080
容器端口:8080
协议:TCP
返回无状态页面,确认应用创建成功。
步骤四:访问测试网站
获取服务地址。
在无状态页面,单击应用名称。
在应用详情页面,单击访问方式页签。
找到Service,在其外部端点处获取地址。
打开浏览器输入
http://外部端点/hello
(例如http://121.40.XX.XX:8080/hello
),访问应用。如果可以正常访问,页面显示
Hello, Aliyun
,表示spring-hello应用部署成功。
释放资源
完成本教程体验后,建议及时删除资源,避免资源持续计费,造成额外资损。
删除创建的Deployment和Service
在容器服务管理控制台的集群列表页面,单击目标集群名称。
删除Deployment。
在集群管理页的左侧导航栏,选择
。找到创建的spring-test应用,在右侧操作列选择
。
删除Service。
在集群管理页的左侧导航栏,选择
找到并选中创建的服务,单击底部的删除。
删除集群
ACK Serverless集群目前处于公测中,可免费试用。但是在使用ACK Serverless集群过程中用到的其他阿里云云产品资源,您需要按照各云产品规定的计费规则,为您使用的资源付费,费用由各云产品收取。完成教程后,请参考以下场景处理集群: