在 KubeSphere 上部署 GitLab

GitLab 是一个端到端的开源软件开发平台,具有内置的版本控制、问题追踪、代码审查、CI/CD 等功能。

本教程演示了如何在 KubeSphere 上部署 GitLab。

准备工作

  • 您需要启用 OpenPitrix 系统
  • 您需要为本教程创建一个企业空间、一个项目以及两个帐户(ws-adminproject-regular)。在企业空间中,ws-admin 帐户必须被赋予 workspace-admin 角色,project-regular 帐户必须被赋予 operator 角色。如果还未创建好,请参考创建企业空间、项目、用户和角色

动手实验

步骤 1:添加应用仓库

  1. ws-admin 身份登录 KubeSphere。在企业空间中,访问应用管理下的应用仓库,然后点击添加

  2. 在出现的对话框中,输入 main 作为应用仓库名称,输入 https://charts.kubesphere.io/main 作为应用仓库 URL。点击验证来验证 URL,如果可用,则会在 URL 右侧看到一个绿色的对号。点击确定继续操作。

  3. 仓库成功导入到 KubeSphere 后,会显示在列表里。

步骤 2:部署 GitLab

  1. 登出 KubeSphere,再以 project-regular 登录。在您的项目中,访问应用负载下的应用,然后点击创建

  2. 在出现的对话框中,选择从应用模板

  3. 从下拉菜单中选择 main,然后点击 gitlab

  4. 应用信息选项卡和Chart 文件选项卡,可以看到控制台的默认配置。点击安装继续。

  5. 基本信息页面,可以看到应用名称、应用版本以及部署位置。本教程使用 4.2.3 [13.2.2] 版本。点击下一步继续。

  6. 应用设置页面,使用以下配置替换默认配置,然后点击安装

    1. global:
    2. hosts:
    3. domain: demo-project.svc.cluster.local
    4. gitlab-runner:
    5. install: false
    6. gitlab:
    7. webservice:
    8. helmTests:
    9. enabled: false

    备注

    demo-project 指的是部署 GitLab 的项目名称,请确保使用您自己的项目名称。

  7. 等待 GitLab 正常运行。

  8. 访问工作负载,可以看到为 GitLab 创建的所有部署和有状态副本集。

    备注

    可能需要过一段时间才能看到所有部署和有状态副本集正常运行。

步骤 3:获取 root 用户的密码

  1. 选择配置 > 保密字典,在搜索栏输入 gitlab-initial-root-password,然后按下键盘上的回车键来搜索密钥。

  2. 点击密钥访问其详情页,然后点击右上角的 icon 查看密码。请确保将密码进行复制。

步骤 4:编辑 hosts 文件

  1. 在本地机器上找到 hosts 文件。

    备注

    对于 Linux,hosts 文件的路径是 /etc/hosts;对于 Windows,则是 c:\windows\system32\drivers\etc\hosts

  2. 将以下条目添加进 hosts 文件中。

    1. 192.168.4.3 gitlab.demo-project.svc.cluster.local

    备注

    • 192.168.4.3demo-project 分别指的是部署 GitLab 的 NodeIP 和项目名称,请确保使用自己的 NodeIP 和项目名称。
    • 您可以使用自己 Kubernetes 集群中任意节点的 IP 地址。

步骤 5:访问 GitLab

  1. 访问应用负载下的服务,在搜索栏输入 nginx-ingress-controller,然后按下键盘上的回车键搜索该服务,可以看到通过端口 31246 暴露的服务,您可以使用该端口访问 GitLab。

    备注

    在不同控制台上显示的端口号可能不同,请您确保使用自己的端口号。

  2. 通过 http://gitlab.demo-project.svc.cluster.local:31246 使用 root 帐户及其初始密码 (root/ojPWrWECLWN0XFJkGs7aAqtitGMJlVfS0fLEDE03P9S0ji34XDoWmxs2MzgZRRWF) 访问 GitLab。

    access-gitlab

    gitlab-console

    备注

    根据您 Kubernetes 集群部署位置的不同,您可能需要在安全组中打开端口,并配置相关的端口转发规则。