快速构建 Gitlab 持续集成环境|学习笔记

本文涉及的产品
函数计算FC,每月15万CU 3个月
简介: 快速学习 快速构建 Gitlab 持续集成环境

开发者学堂课程【Serverless 容器从入门到精通: Serverless Kubernetes:快速构建 Gitlab 持续集成环境】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/646/detail/10734


快速构建 Gitlab 持续集成环境


目录:

一、 Serverless Kubernetes(ASK)

二、 Gitlab CI on ASK

三、 Gitlab CI on ASK 实践演示

四、 Gitlab Cl on ASK 成本

 

一、 Serverless Kubernetes(ASK)

1. 优势: 适用场景:

1) 降低使用 k8s 门槛,无需管理 Node 节点;

2) 无需考虑节点容量规划;

3) 以 Pod 为单位进行计费,不运行不计费;

4) 宕机故障影响面小。

2. 适用场景

1) 在线业务弹性(视频直播、在线教育);

2) 大数据计算 (spark);

3) 定时任务;

4) CI/CD 持续集成。

 

二、 Gitlab CI on ASK

1. 服务高可用(Deployment+PVC);

2. 无需维护 k8s Master、Node 节点,在没有任何构建任务的情况下,只需要运行一个Pod(gitlab-runner);

3. 触发一个构建任务,启动一个 Pod,按需计费;

4. 宕机故障只会影响以 Pod 为单位。

 

三、 Gitlab CI on ASK 实践演示

1. 在阿里云 ASK 集群上运行 gitlab-runner

2. 通过 gitlab CICD Pipeline 部署 java 应用到 ASK 集群中

3. 知识点:

通过 configMap 保存 gitlab runner 和 executor 的配置

通过 secret 保存 ASK 集群的访问凭证和镜像仓库的密钥

通过 PVC 缓存 runner cache 和 maven 仓库

通过 imageCache 缓存容器镜像

l 配置文件 yaml 地址:

https://github.com/aliyuneci/BestPractice-Serverless-Kubernetes/tree/master/eci-gitlab-runner

1. 准备 ASK 集群

https://cs.console.aliyun.com/?spm=5176.eciconsole.0.0.68254a9cNV12zh#/k8s/cluster/createV2/serverless 容器服务控制台创建标准

serverless k8s 集群

2. 准备 PV/PVC

准备两个 nas 盘,一个做 gitlab runner cache,一个做 maven 仓库,请自行替换nas server 地址和 path

kubectl apply -f mvn-pv.yaml

kubectl apply -f mvn-pvc.yaml

kubectl apply -f nas-ov.yaml

kubectl apply -f nas-pvc.yaml

3. 准备 Secret

1) kubeconfig 里的证书公私钥拷贝到 secret 中,secret.yaml

kubectl apply -f secret.yaml

2) docker-registry 的认证信息,ECI 支持免密拉取,但是 push docker image 还是要用到

kubectl create secret docker-registry registry-auth-secret try.cn-hangzhoualiyuncs.com --docker-username-$(xxx)

3) 查看生成的 secret 可以用以下命令

kubectl get secret registry-auth-secret --output=yaml

4. 准备 ConfigMap

把 gitlab runner 的url、token,ask 集群的 api server 地址拷贝到 config.yaml

kubectl apply -f config-map.yaml

5. 准备 imageCache(可选,节省镜像拉取时间)

目前 ASK 默认安装了  imagecache-crd,可以用以下命令查询,如果没有可以自己安装

#查看 image cache crd 是否安转

kubect1get crd

安装 inage cache crd

kubectl apply-f imagecache-crd.yaml

#制作 inagecache

kubectlapply -f imagecache.yaml

6. 部署 gitlab runner

kubectl apply -f gitlab-runner-deployment.yaml

7. 导入 git repo,java demo 见 java-demo 目录

 

四、 Gitlab Cl on ASK 成本

1. 一台预付费 ECS 2c4g:201 元/月

2. 一台 ECI 1c2g:0.221 元/小时,用作 gitlab-runner Deployment 的部署,一个月159 元。

3. 201-159=42 元:每次用 1c2g 跑一个 CICD 任务,190h=3800*3min=> 每月3800 个任务(126/天)

l 欢迎使用 ASK+ECI J 阿里云

阿里云 ASK  帮助文档:

https://help.aliyun.com/documentdetail/86366.html?spm=a2c4g.11186623.6.867.880b1c74m6gscH

阿里云 ECI 帮助文档:

https://help.aliyun.com/product/87486.html?spm=a2c4g.750001.list.10.4cc17b13pUUEtE

相关实践学习
通过Ingress进行灰度发布
本场景您将运行一个简单的应用,部署一个新的应用用于新的发布,并通过Ingress能力实现灰度发布。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
3月前
|
缓存 Devops jenkins
专家视角:构建可维护的测试架构与持续集成
【10月更文挑战第14天】在现代软件开发过程中,构建一个可维护且易于扩展的测试架构对于确保产品质量至关重要。本文将探讨如何设计这样的测试架构,并将单元测试无缝地融入持续集成(CI)流程之中。我们将讨论最佳实践、自动化测试部署、性能优化技巧以及如何管理和扩展日益增长的测试套件规模。
60 3
|
3月前
|
Java Maven Docker
gitlab-ci 集成 k3s 部署spring boot 应用
gitlab-ci 集成 k3s 部署spring boot 应用
|
2天前
|
人工智能 数据挖掘 API
R2R:开源的 RAG 集成系统,支持多模态处理、混合搜索、知识图谱构建等增强检索技术
R2R 是一款先进的 AI 检索增强生成平台,支持多模态内容处理、混合搜索和知识图谱构建,适用于复杂数据处理和分析的生产环境。
27 3
R2R:开源的 RAG 集成系统,支持多模态处理、混合搜索、知识图谱构建等增强检索技术
|
18天前
|
人工智能 数据可视化 JavaScript
NodeTool:AI 工作流可视化构建器,通过拖放节点设计复杂的工作流,集成 OpenAI 等多个平台
NodeTool 是一个开源的 AI 工作流可视化构建器,通过拖放节点的方式设计复杂的工作流,无需编码即可快速原型设计和测试。它支持本地 GPU 运行 AI 模型,并与 Hugging Face、OpenAI 等平台集成,提供模型访问能力。
92 14
NodeTool:AI 工作流可视化构建器,通过拖放节点设计复杂的工作流,集成 OpenAI 等多个平台
|
3天前
|
运维 监控 Cloud Native
构建深度可观测、可集成的网络智能运维平台
本文介绍了构建深度可观测、可集成的网络智能运维平台(简称NIS),旨在解决云上网络运维面临的复杂挑战。内容涵盖云网络运维的三大难题、打造云原生AIOps工具集的解决思路、可观测性对业务稳定的重要性,以及产品发布的亮点,包括流量分析NPM、网络架构巡检和自动化运维OpenAPI,助力客户实现自助运维与优化。
|
24天前
|
DataWorks 数据挖掘 大数据
方案实践测评 | DataWorks集成Hologres构建一站式高性能的OLAP数据分析
DataWorks在任务开发便捷性、任务运行速度、产品使用门槛等方面都表现出色。在数据处理场景方面仍有改进和扩展的空间,通过引入更多的智能技术、扩展数据源支持、优化任务调度和可视化功能以及提升团队协作效率,DataWorks将能够为企业提供更全面、更高效的数据处理解决方案。
|
2月前
|
机器学习/深度学习 算法 Python
随机森林算法是一种强大的集成学习方法,通过构建多个决策树并综合其结果进行预测。
随机森林算法是一种强大的集成学习方法,通过构建多个决策树并综合其结果进行预测。本文详细介绍了随机森林的工作原理、性能优势、影响因素及调优方法,并提供了Python实现示例。适用于分类、回归及特征选择等多种应用场景。
60 7
|
2月前
|
关系型数据库 MySQL PHP
PHP与MySQL的无缝集成:构建动态网站的艺术####
本文将深入探讨PHP与MySQL如何携手合作,为开发者提供一套强大的工具集,以构建高效、动态且用户友好的网站。不同于传统的摘要概述,本文将以一个生动的案例引入,逐步揭示两者结合的魅力所在,最终展示如何通过简单几步实现数据驱动的Web应用开发。 ####
|
2月前
|
消息中间件 Java Kafka
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
Spring Boot 与 Apache Kafka 集成详解:构建高效消息驱动应用
57 1
|
2月前
|
存储 Prometheus 运维
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案
在云原生环境中,阿里云ARMS与Prometheus的集成提供了强大的应用实时监控解决方案。该集成结合了ARMS的基础设施监控能力和Prometheus的灵活配置及社区支持,实现了全面、精准的系统状态、性能和错误监控,提升了应用的稳定性和管理效率。通过统一的数据视图和高级查询功能,帮助企业有效应对云原生挑战,促进业务的持续发展。
48 3

热门文章

最新文章