赞
踩
在Kubernetes里安装GitLab服务
Gitlab的持续集成功能依赖于Gitlab Runner
组件完成,gitlab runner作为Gitlab这个中控机
的执行者,按照代码仓库里面.gitlab-ci.yaml
文件里面预定义的任务job
按照指定的顺序或并发的执行完成系列的编译、测试、部署等操作,也就是说只要按照.gitlab-ci.yaml的配置格式[1]将写好的.gitlab-ci.yml文件放在代码仓库内,待下一次代码提交commit
的时候就会自动的触发仓库绑定的Gitlab Runner
去按照.gitlab-ci.yml里面配置的指定的执行。
总结一下,在Gitlab进行CICD,需要简单的做几步, Gitlab runner运行的架构下图所示:
安装Gitlab Runner
把代码仓库与Gitlab Runner进行绑定
在代码仓库里面配置.gitlab-ci.yml
在.gitlab-ci.yml
文件里面定义好编译、单元测试、部署等任务(jobs)
触发Gitlab Runner执行自动化操作
上一篇,我们将Gitlab服务安装在我们的ACK(阿里云的kubernetes)里面,下面我们也将在Kubernetes里面安装部署Gitlab Runner[2],给Gitlab增加持续集成的功能,这里有两种方式安装,一种通过helm(省事简单),一种手动安装,第一种方式这里简单的说明一下,我们使用第二种进行部署Gitlab Runner.
如果你已经准备好了Helm
的话,可以参考此种方式,获取gitlab runner 的helm chat
- git clone https://github.com/haoshuwei/gitlab-runner.git
- cd gitlab-runner
- #修改values.yaml里面的gitlabUrl和runnerRegistrationToken,runnerRegistrationToken可以从Admin Area>Overview>Runner处获取Runner的Token.修改完成之后,通过helm进行打包,然后安装到k8s环境
- ☸️ ACK???? devops ~/v1.11.5/Runner-toml/gitlab-runner master ● ???? ???? helm package .
- Successfully packaged chart and saved it to: /Users/marionxue/v1.11.5/Runner-toml/gitlab-runner/gitlab-runner-0.1.37.tgz
- ☸️ CKA???? devops ~/v1.11.5/Runner-toml/gitlab-runner master ● ???? ???? helm install gitlab-runner *.tgz #安装到当前的devops空间下
如果你使用的是阿里云的ACK的话,可以参考阿里云的文档:https://www.alibabacloud.com/help/zh/doc-detail/106968.htm
此部分参考Edenmal[3]的笔记,手动安装Gtilab Runner到K8s集群内,首先声明一个Configmap gitlab-runner.configmap.yaml
来为Gitlab Runner提供需要的环境变量以及一些资源约束信息:
在向 ConfigMap 添加新的环境变量,需要删除已有的
GitLab CI Runner Pod
。因为我们是使用envFrom
来注入上面的这些环境变量而不是直接使用env
的(envFrom 通过将环境变量放置到ConfigMaps
或Secrets
来帮助减小清单文件。
- apiVersion: v1
- data:
- REGISTER_NON_INTERACTIVE: "true"
- REGISTER_LOCKED: "false"
- METRICS_SERVER: "0.0.0.0:9100"
- CI_SERVER_URL: "http://gitlab.devops.svc.cluster.local/ci" # k8s内gitlab服务的通信地址格式:svc.namespace.svc.cluster.local, 同时加上/ci这个prefix,这里也可以使用外网访问地址
- RUNNER_REQUEST_CONCURRENCY: "4"
- RUNNER_EXECUTOR: "kubernetes"
- KUBERNETES_NAMESPACE: "devops" # 服务运行的namespace
- KUBERNETES_PRIVILEGED: "true"
- KUBERNETES_CPU_LIMIT: "1"
- KUBERNETES_MEMORY_LIMIT: "
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。