openshift 平台上部署 gitlab代码仓库服务

背景:
本文档将以在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界面部署:

  1. 给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服务完成!

posted @ 2020-07-29 10:42  南风不知我意  阅读(887)  评论(0编辑  收藏  举报