k8s部署gitlab

前提条件是已经部署了k8s环境,采用k8s部署gitlab作为devops的测试环境,更加简洁和方便。

一、 准备工作

安装NFS

服务端:
1、安装服务

yum -y install nfs-utils rpcbind

2、配置exports
#创建共享存储文件夹

mkdir -p /home/k8s-nfs/gitlab/config
mkdir -p /home/k8s-nfs/gitlab/logs
mkdir -p /home/k8s-nfs/gitlab/data

3、配置exports

vim /etc/exports

在/etc/exports写入以下内容

/home/k8s-nfs/gitlab/config *(insecure,rw,async,no_root_squash)
/home/k8s-nfs/gitlab/logs *(insecure,rw,async,no_root_squash)
/home/k8s-nfs/gitlab/data *(insecure,rw,async,no_root_squash)

4、 设置服务开机启动与启动服务

 systemctl enable rpcbind && systemctl start rpcbind
 systemctl enable nfs && systemctl start nfs

5、测试nfs和rpcbind运行状态

systemctl status rpcbind
systemctl status nfs

在这里插入图片描述
6、查看是否成功和可用的nfs地址

showmount -e localhost

正确状态的输出:

[root@k8s-node-1 gitlab]# showmount -e localhost
Export list for localhost:
/home/k8s-nfs/gitlab/data   *
/home/k8s-nfs/gitlab/logs   *
/home/k8s-nfs/gitlab/config *

二、 部署gitlib

2.1 准备部署文件(gitlib-deploy.yaml)

apiVersion: v1
kind: Service
metadata:
  name: gitlab
spec:
  type: NodePort
  ports:
    # Port上的映射端口
    - port: 443
      targetPort: 443
      name: gitlab443
    - port: 80
      targetPort: 80
      name: gitlab80
    - port: 22
      targetPort: 22
      name: gitlab22
  selector:
    app: gitlab

---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: gitlab
spec:
  selector:
    matchLabels:
      app: gitlab
  revisionHistoryLimit: 2
  template:
    metadata:
      labels:
        app: gitlab
    spec:
      containers:
        # 应用的镜像
        - image: gitlab/gitlab-ce
          name: gitlab
          imagePullPolicy: IfNotPresent
          # 应用的内部端口
          ports:
            - containerPort: 443
              name: gitlab443
            - containerPort: 80
              name: gitlab80
            - containerPort: 22
              name: gitlab22
          volumeMounts:
            # gitlab持久化
            - name: gitlab-persistent-config
              mountPath: /etc/gitlab
            - name: gitlab-persistent-logs
              mountPath: /var/log/gitlab
            - name: gitlab-persistent-data
              mountPath: /var/opt/gitlab
      imagePullSecrets:
        - name: devops-repo
      volumes:
        # 使用nfs互联网存储
        - name: gitlab-persistent-config
          nfs:
            server: 192.168.x.x #nfs服务端的ip地址
            path: /home/k8s-nfs/gitlab/config
        - name: gitlab-persistent-logs
          nfs:
            server: 192.168.x.x #nfs服务端的ip地址
            path: /home/k8s-nfs/gitlab/logs
        - name: gitlab-persistent-data
          nfs:
            server: 192.168.x.x #nfs服务端的ip地址
            path: /home/k8s-nfs/gitlab/data

2.2 执行部署

kubectl apply -f gitlib-deploy.yaml

2.3 查看部署结果

kubectl get deploy 
# kubectl get deploy 
NAME     READY   UP-TO-DATE   AVAILABLE   AGE
gitlab   1/1     1            1           134m

以上说明部署完成。

  1. gitlib初始化

3.1 访问登录页面
通过查看service映射的端口:

kubectl get svc -o wide
# kubectl get svc -o wide
NAME         TYPE        CLUSTER-IP      EXTERNAL-IP   PORT(S)                                   AGE    SELECTOR
gitlab       NodePort    10.10.129.28    <none>        443:31326/TCP,80:31320/TCP,22:31515/TCP   137m   app=gitlab

可以看到映射80端口的节点端口为:31320

通过制定端口访问登录页:
在这里插入图片描述
3.2 初始用户名和密码
初始用户名为root,初始密码gitlib自动创建,在如下文件中:

/etc/gitlab/initial_root_password

由于是容器部署,所以,需要进入到容器中

  1. 查看容器名称
[root@k8s-master-1 k8s]# kubectl get pods
NAME                      READY   STATUS    RESTARTS   AGE
gitlab-58d7f866c6-hmw2c   1/1     Running   0          58m
  1. 执行命令
    因为只有一个容器,所以执行以下命令就行:
kubectl exec -it gitlab-58d7f866c6-hmw2c -- /bin/bash
  1. 找到对应文件,拷贝密码进行登录。
cat /etc/gitlab/initial_root_password

文件内容类似:

# WARNING: This value is valid only in the following conditions
#          1. If provided manually (either via `GITLAB_ROOT_PASSWORD` environment variable or via `gitlab_rails['initial_root_passwo
#          2. Password hasn't been changed manually, either via UI or via command line.
#
#          If the password shown here doesn't work, you must reset the admin password following https://docs.gitlab.com/ee/security/
 
Password: HCsr5VFAp28N*****************=
 
# NOTE: This file will be automatically deleted in the first reconfigure run after 24 hours.
  1. 登录信息
    用户名 root
    密码 HCsr5VFAp28N*****************=

  2. 登录以后的主界面
    在这里插入图片描述
    如果不习惯英文界面
    1.点击用户头像
    2.preference
    3.找到language下拉选择中文

  • 9
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值