多构建集群
平台中添加的不同集群后,用户可同时配置集群是否具备CI/CD的能力,以达到满足客户现场将不同集群进行网络隔离后CI/CD的需求。
(可选)MySQL服务安装
(1) 平台系统租户平台管理(system-tce),进入[容器服务/容器应用/应用]界面创建应用。
(2) 先安装CI/CD使用的MySQL服务(如提供MySQL服务则不需要安装MySQL服务),配置页面如下图所示。
基本信息配置完成后,单击<添加容器>按钮,进入容器组配置页面。
向容器组添加容器,并配置各容器参数,同一容器组内一般部署强相关的组件,比如应用程序组件和代理组件等,同一容器组内的容器始终一起调度,并可以使用本地通信。
(3) 添加如下环境变量,提供CI/CD服务连接,设置MYSQL_ROOT_PASSWORD,MYSQL_USER,MYSQL_PASSWORD。
(4) 所需参数配置完成后,根据业务需要配置所需的高级设置参数,参数说明如下所示。
(5) 在常用设置配置页面点击“添加存储卷”,添加数据路径挂载的存储,存储大小根据需求调整。
现有的MySQL镜像有两个版本,版本不同存储卷挂载的数量不同,详细说明如下所示。
- MySQL 5. 7. 21 只需挂载一个存储卷,挂载容器目录为/var/lib/mysql。
- MySQL 8. 0. 20 需要挂载三个存储卷,配置详情如下所示。
- 挂载data存储所在路径的,挂载容器目录为/var/lib/mysql。
- 挂载配置信息所在路径的,挂载容器目录为/etc/mysql/conf.d。
- 挂载自定义信息所在路径的,挂载容器目录为/etc/mysql/custom。
(6) 常用设置配置完成后,单击<创建>按钮,应用服务创建成功,点击“去配置”路由策略链接,进入路由策略配置页面。
(7) 配置CI/CD和外部MySQL可以访问的路由规则。
(8) 创建后在应用页面可以查看生成的路由,查看页面如下图所示。
为确保cicd-mysql确实正常运行,需要进入cicd-mysql对应的终端内部,执行如下所示的命令。如果无法正常登录,有可能是对应harbor镜像内部有问题,建议从dockerhub上拉取对应tag的镜像,覆盖harbor上,重启部署,生成新的Pod之后再尝试一遍。
mysql-uroot-p
password:[root的密码]
确保root账户可以在本地和远程环境都能正常登录,需要进入MySQL终端,先执行env|grep-ipassword找到用户名和密码,然后命令行执行。
usemysql;
ALTERUSER'root'@'%'IDENTIFIEDWITHmysql_native_passwordBY'tenxcloud';
安装CI/CD服务
(1) 平台系统租户平台管理(system-tce),进入[容器服务/容器应用/应用]界面,点击创建或选择已创建的应用添加服务,配置页面如下图所示。
(2) 点击<下一步>进入,选择CI/CD镜像、配置MySQL环境变量。要确保cicd-server对应的镜像是最新的。
(3) 设置CI/CDMySQL的连接信息,DB_HOST,DB_PORT设置为cicd-mysqlservice中定义的ClusterIP和暴露的端口。
(4) 应用创建完成后,配置对应的访问路由,对https( 443 )http( 80 )端口的出口,如下图所示。
(5) 浏览器访问创建的CI/CD路由时可以查看到服务正常运行,CI/CD客户端部署完成。
(6) 服务端口创建以后需要修改cicd-server的环境变量。
- CICD_AUTH_URL填写外部可以访问的TCE的访问URL。
- DEVOPS_EXTERNAL_PROTOVOL填写:https。
- DEVOPS_EXTERNAL_HOST填写:外部的host地址。
(7) 为cicd-server的Deployment添加配置项,目前它需要的配置项包含有configMap:cicd.conf,cicd.location;secret:paas-secret。在服务配置的普通配置项,配置页面如下所示。
(8) 再在“加密配置”中设置secret,配置页面如下所示。
(9) 创建完配置项后,在Deployment详情界面为cicd-server的deployment添加如下所示的配置。
(10)创建完之后,Configmap和Secret会以volume的形式绑定到Deployment对应的Pod上。
volumes:name:paas-secret
secret:
secretName:paas-secret
defaultMode: 420
name:cicd-nginx-config
configMap:
name:cicd-nginx-config
defaultMode: 420
容器内会挂载如下所示的存储卷。
volumeMounts:name:paas-secret
readOnly:true
mountPath:/etc/paas-keys
name:cicd-nginx-config
mountPath:/etc/nginx/conf.d
cicd-server的yaml中imagePullPolicy要改为 Always
。
集群绑定CI/CD服务
CI/CD服务环境变量添加API_SERVER_URL,为APIServer地址,如下的集群环境的API Server列表中拷贝并复制到环境变量,CI/CD服务将自动注册到服务。
(1) 全局租户里选择集群管理进入集群设置,可查看该集群绑定的CI/CD服务地址。
(2) CI/CD服务地址填写完成后,单击<保存>按钮。
(3) 服务重启后浏览器访问https:// 192. 168. 0. 109 : 60999 /api/v 2 /devops页面显示一下内容说明以上相应配置成功为正常。
集群和CI/CD服务要做到一对一对应,多对一或多对多会引起数据冲突。