Kubernetes 集羣上部署 GitLab 版本管理服務

版本管理是雲原生服務平臺的重要組成部分,不只提供代碼管理,更重要的是提供各類配置參數的版本化管理,從而可以快速部署和修改、回滾、遷移相關的服務。html

一、GitLab是什麼

目前,可使用Github.com、oschina.net等提供的git企業服務來管理本身的私有項目,也可使用GitLab來自建服務管理專用的一些代碼和配置參數。GitLab每每與Harbor和Jenkins聯合使用,實現配置管理、容器倉庫、容器構建的DevOps完整流程。git

GitLab 部署有多種方式,包括裸機部署、容器部署和Kubernetes部署。github

二、Helm Chart部署GitLab

在Kubernetes中優先考慮Helm Chart方式安裝,更爲簡單。docker

目前,GitLab的Hel chart有如下幾個項目:app

具體安裝過程,參考:dom

具體包括:gitlab

(1)添加helm repo。spa

(2)更新repo倉庫。.net

help repo update

(3)執行helm chart安裝。rest

helm install --name gitlab --namespace gitlab ~/openthings/gitlab \
--set global.hosts.externalIP=10.1.1.202 \
--set global.hosts.domain=core.gitlab.zettariver \
--set certmanager-issuer.email=myemail@163.com

(4)查看helm安裝,執行命令 helm list。

三、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頁面,以下:

 

四、GitLab的Kubernetes Operator

操做器(Operator)是一種新的Kubernetes應用管理的模式,經過調用Kubernetes API來實現擴展服務,能夠提供複雜應用的動態管理機制。GitLab的最新版本已經提供了構建、部署等多種DevOps服務,也提供了本身的Operator對多種服務的部署和運行提供管理。不過,目前GitLab Operator還在開發之中,不建議生產環境下使用。

五、更多參考資料

相關文章
相關標籤/搜索