Skip to content

快速上手

假设代码储存于集团gitlab,按照下面步骤即可实现静态代码->运行的应用

一、从代码到镜像

(Docker)镜像是容器世界中应用的标准化封装方式,换言之,代码必须先制作成镜像,才能运行成容器。

1 获取个人的gitlab Access Tokens

  1. 在gitlab上有代码仓项目pull权限的人员,登录gitlab,在右上角选中Settings,点击Access Tokens,进入个人token生成页面;

  2. 一般不要填写Expires at,即永久有效;

  3. Scopes勾选全部的授权范围;

  4. 点击Create personal access token绿色按钮

    devops-quick-start-get-gitlab-token

  5. 点击复制按钮将生成的token保存下来,以备下一步使用。

    devops-quick-start-get-gitlab-token2

2 关联代码仓库,激活代码源

  1. 信云+上切换到CI/CD-代码仓库,点击关联代码仓库

  2. 选择Gitlab,点击添加gitlab

  3. 代码源地址处输入http://gitlab.hisense.com,Private Token输入Step1获得的token,点击确定;

    image-git1

  4. 添加代码源后,在此页面将展示此token对应人员所有有权限的代码源,请对本容器项目所依赖的代码源点击激活

  5. 返回代码仓库菜单首页,将会看到已激活的所有代码源。

3 创建流水线,关联代码源

  1. 信云+上切换到CI/CD-流水线,点击新建流水线

  2. 填写流水线名称,按需选择模板创建(此处假设选择java模板),关联已激活的代码源,按需选择流水线执行通知;

    image-20240325165218294

  3. 点击新建的流水线名称,点击流水线定义,对每一个流水线任务的定义进行检查和修改,如下图

    image-20240325165916052

    image-20240325165930592

    image-20240325165831691

  4. 创建好的流水线,可随时修改、随时执行。

4 执行流水线,生成镜像

  1. 点击立即执行,选择代码分支;

    image-cicd5

  2. 稍等一会流水线初始化,可以在执行记录看到流水线状态为执行中,点击执行记录可见实时日志;

  3. 等待流水线执行完毕,可以在执行记录看到流水线状态为执行成功

    image-cicd6

  4. 信云+上切换到容器服务-镜像仓库,可以看到流水线生成、推送的镜像,如未展示请点击右上方按钮更新Harbor,稍等2分钟再刷新一下。

    image-cicd-7

    image-cicd-8

关于流水线更多功能的介绍,请查看CI/CD章节

二、从镜像到容器服务

使用镜像仓库中的镜像,部署成可访问的容器服务。

1 创建服务

  1. 接上一步,点击镜像的“部署”按钮,或者切换到信云+上切换到容器服务-应用管理-服务,点击创建服务,选择镜像部署,选择镜像名称,点击配置容器

    image-20240325170550586

  2. 配置容器:确认要使用的镜像版本,指定必要的计算资源规格、端口声明、环境变量,点击下一步;

    image-20240325170647857

    image-20240325171148546

  3. 配置服务:指定服务名称,点击下一步;

    image-20240325171350803

  4. 配置节点:保持默认,点击审查提交;

  5. 审核配置:检查后点击提交。

2 观察服务启动

  1. 在1 创建服务中配置服务时,指定了服务实例数(默认为1),配置审核提交后,将按服务的声明自动启动Pod;

  2. 服务列表中可见此服务状态由启动中->已启动;

    image-20240325171350803

  3. 同时,在服务实例列表中可见Pod产生,状态由暂停->运行;

    image-20240325171350803

  4. 可以在事件中,看到服务启动过程发生了哪些事(在节点上给Pod分配网络、拉取镜像到节点、创建容器、启动容器...);

    image-20240325171350803

  5. 启动容器后,可以在日志中看到应用打印到标准输出的日志了。

    image-20240325171350803

3 访问服务

  1. 容器间相互调用,可以使用服务基本信息中服务暴露-服务域名的方式,同一个namespace下还可以省略.后面的内容;

    image-20240325171350803

  2. 比如,登陆一个容器的终端,使用curl等命令调用另一个服务,可以看到调用链路通畅(404是因为没有指定具体接口,server端按实际情况响应404);

    image-20240325171350803

  3. 如果是外部调用容器服务,若为http协议,可在网络管理-7层网关,点击创建网关,填写完后,点击创建

    image-20240325171350803

  4. 使用此主机名即可从外部访问该容器服务。

    image-20240325171350803

4 升级服务

  1. 容器服务-服务列表中,点击编辑,可修改镜像版本为更新的版本,也可同时修改计算资源规格、健康检查、环境变量、配置文件挂载、存储卷挂载等各种配置项;

    image-20240325171350803

    image-20240325171350803

  2. 修改后点击滚动升级,会展示本次修改的所有内容,然后即按照先创建新pod,等新pod就绪再删除老pod的策略滚动升级服务;

    image-20240325171350803

  3. (按需)在信云+上切换到CI/CD-流水线定义,打开流水线的滚动部署任务的开关,并检查完善此任务定义,再执行流水线,能实现每次执行流水线自动升级服务到最新镜像版本的作用。

    image-20240325171350803

关于服务管理更多功能的介绍,请查看容器服务章节