背景:
本文檔將以在openshift 平台上部署 gitlab 服務來驗證集群各個服務組件的可用性以及熟悉openshift的使用方法。服務部署方式可以多種多樣,靈活部署。本篇以常見的鏡像部署方式來實現。
准備工作:
1.打開瀏覽器輸入網址: https://hub.docker.com/r/gitlab/gitlab-ee
2.在一台可以聯網下載docke image的linux 虛機上輸入命令:
#docker pull gitlab/gitlab-ee:latest
3.查看鏡像是否已存在。
#dockers images | grep gitlab
4.把鏡像保存成tar包並導出。
# docker save docker.io/gitlab/gitlab-ee:latest >/root/gitlab.tar.gz
從虛機Linux上通過xftp 拷貝/root/gitlab.tar.gz 至本地, 再上傳至 openshift平台的堡壘機節點中。
開始在openshift平台部署:
1.登錄堡壘機節點 解壓tar包 的image
#docker load -i gitlab.tar.gz
2.在堡壘機節點上 tag 生成的image,並push 生成的image,可在harbor倉庫上看到上傳好的鏡像
#docker tag docker.io/gitlab/gitlab-ee:latest registry.example.com:5000/gitlab/gitlab-ee:latest
#docker push registry.example.com:5000/gitlab/gitlab-ee:latest
3.使用oc命令行客戶端登錄openshift平台,創建新項目 gitlab
#oc login https://openshift.example.com:8443
#oc new-project gitlab
或者登錄openshift界面創建:
4.使用鏡像部署gitlab容器,並等待容器運行成功。
#oc run gitlab --image=registry.example.com:5000/gitlab/gitlab-ee:latest -n gitlab
或者登錄openshift界面部署:
- 給gitlab 容器使用root用戶的權限
#oc adm policy add-scc-to-user anyuid -z default
注意:若遇到如下報錯說明容器未使用root權限,則需要加上如上命令。
6.為gitlab創建services,使用下面的services-gitlab.yaml 文件
#oc create –f services-gitlab.yaml –n gitlab
apiVersion: v1
kind: Service
metadata:
labels:
app: gitlab-ee
name: gitlab-ee
spec:
ports:
- name: 22-tcp
port: 22
protocol: TCP
targetPort: 22
- name: 80-tcp
port: 80
protocol: TCP
targetPort: 80
- name: 443-tcp
port: 443
protocol: TCP
targetPort: 443
selector:
deploymentconfig: gitlab-ee
sessionAffinity: None
type: ClusterIP
status:
loadBalancer: {}
或者登錄openshift界面創建:
7.為gitlab的services創建route地址
8.為pod動態創建pvc(注意使用的sc)
創建3個pvc
9.給pod掛載持久化存儲,共掛載三個位置
使用rbd存儲需要先在項目中 創建ceph-sercret密鑰用來掛載
apiVersion: v1
data:
key: QVRzh5VmQwRWo1JBQUcvRjJLalUyU3dvRzlWc9PQ==
kind: Secret
metadata:
name: ceph-secret
type: kubernetes.io/rbd
secret創建好之后,開始創建對應的pvc,如下是volume 名字和pod掛載路徑的對應關系
Mount: gitlab-ee-3 → /var/opt/gitlab read-write
Mount: gitlab-ee-1 → /etc/gitlab read-write
Mount: gitlab-ee-2 → /var/log/gitlab read-write
修改dc的yaml文件給pod掛載pvc
等待pod running查看details狀態信息
可以看到pod運行成功。
服務驗證:
訪問route的hostname打開gitlab界面。(用戶名 root 密碼 ********(登錄前需要自己設置) )
服務正常,openshift平台部署gitlab服務完成!