2019独角兽企业重金招聘Python工程师标准>>>
版本管理是云原生服务平台的重要组成部分,不仅提供代码管理,更重要的是提供各种配置参数的版本化管理,从而能够快速部署和修改、回滚、迁移相关的服务。
1、GitLab是什么
目前,可以使用Github.com、oschina.net等提供的git企业服务来管理自己的私有项目,也可以使用GitLab来自建服务管理专用的一些代码和配置参数。GitLab往往与Harbor和Jenkins联合使用,实现配置管理、容器仓库、容器构建的DevOps完整流程。
- GitLab介绍,https://about.gitlab.com/
- GitLab-软件项目管理和代码托管平台
- Harbor快速部署到Kubernetes集群及登录问题解决
GitLab 部署有多种方式,包括裸机部署、容器部署和Kubernetes部署。
2、Helm Chart部署GitLab
在Kubernetes中优先考虑Helm Chart方式安装,更为简单。
目前,GitLab的Hel chart有以下几个项目:
- https://github.com/helm/charts/stable/gitlab
- https://github.com/lwolf/gitlab-chart
- gitlab的容器镜像: https://hub.docker.com/r/gitlab/gitlab-ce/tags/
具体安装过程,参考:
- Kubernetes代码仓库-GitLab的Helm部署
具体包括:
(1)添加helm repo。
- https://www.ibm.com/support/knowledgecenter/SSBS6K_2.1.0.3/app_center/add_int_helm_repo_to_cli.html
(2)更新repo仓库。
help repo update
(3)执行helm chart安装。
helm install --name gitlab --namespace gitlab ~/openthings/gitlab \
--set global.hosts.externalIP=10.1.1.202 \
--set global.hosts.domain=core.gitlab.zettariver \
--set [email protected]
(4)查看helm安装,执行命令 helm list。
3、Docker部署GitLab
但在部署后,我的Kubernetes集群(版本1.13.3)上GitLab总是启动失败。
最后,转为Docker方式直接部署,成功。命令如下:
sudo docker run --detach \
--hostname podc01.zettariver \
--publish 4443:443 --publish 880:80 --publish 222:22 \
--name gitlab \
--restart always \
--volume /srv/gitlab/config:/etc/gitlab \
--volume /srv/gitlab/logs:/var/log/gitlab \
--volume /srv/gitlab/data:/var/opt/gitlab \
gitlab/gitlab-ce:latest
其中,需要指定三个存储目录,将80和443端口映射为其它的,以免与其它服务冲突。
部署完成后,访问Git页面,如下:
4、GitLab的Kubernetes Operator
操作器(Operator)是一种新的Kubernetes应用管理的模式,通过调用Kubernetes API来实现扩展服务,可以提供复杂应用的动态管理机制。GitLab的最新版本已经提供了构建、部署等多种DevOps服务,也提供了自己的Operator对多种服务的部署和运行提供管理。不过,目前GitLab Operator还在开发之中,不建议生产环境下使用。
- 关于Operator的概念和应用,请参考:
- https://github.com/samsung-cnct/gitlab-operator
- https://github.com/operator-framework/operator-sdk
- Kubernetes Operator,SDK与OperatorHub
- https://www.operatorhub.io/
5、更多参考资料
- 基于Kubernetes的持续交付平台
- 快速建立Kubernetes集群,从零开始