Gitlab----基于Kubernetes安装Gitlab

news2024/9/21 2:44:01

【原文链接】Gitlab----基于Kubernetes安装Gitlab

(1)创建命名空间gitlba

kubectl create namespace gitlab

(2)然后创建Gitlab用的PVC,编写yaml配置文件如下

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  namespace: gitlab
  name: gitlab-data
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 40Gi

然后使用如下命令创建

kubectl apply -f pvc-gitlab.yaml

(3)创建Postgre用的PVC的配置文件 pvc-postsql.yaml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: postsql
  namespace: gitlab
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi

然后执行如下命令

kubectl apply -f pvc-postsql.yaml

(4)为redis创建pvc,文件名 pvc-redis.yaml

kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: redis-data
  namespace: gitlab
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 5Gi

然后执行如下命令创建供redis使用的pvc

kubectl apply -f pvc-redis.yaml

(5)编写创建postgresql的yaml配置文件

apiVersion: apps/v1
kind: Deployment
metadata:
  name: postgresql
  namespace: gitlab
  labels:
    name: postgresql
spec:
  selector:
    matchLabels:
       name: postgresql
  template:
    metadata:
      labels:
        name: postgresql
    spec:
      containers:
      - name: postgresql
        image: sameersbn/postgresql:10
        imagePullPolicy: IfNotPresent
        env:
        - name: DB_USER
          value: gitlab
        - name: DB_PASS
          value: gitlab
        - name: DB_NAME
          value: gitlab_production
        - name: DB_EXTENSION
          value: pg_trgm
        ports:
        - name: postgres
          containerPort: 5432
        volumeMounts:
        - mountPath: /var/lib/postgresql
          name: data
        livenessProbe:
          exec:
            command:
            - pg_isready
            - -h
            - localhost
            - -U
            - postgres
          initialDelaySeconds: 30
          timeoutSeconds: 5
        readinessProbe:
          exec:
            command:
            - pg_isready
            - -h
            - localhost
            - -U
            - postgres
          initialDelaySeconds: 5
          timeoutSeconds: 1
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: postsql
---
apiVersion: v1
kind: Service
metadata:
  name: postgresql
  namespace: gitlab
  labels:
    name: postgresql
spec:
  ports:
    - name: postgres
      port: 5432
      targetPort: postgres
  selector:
      name: postgresql

然后执行如下命令创建Pod

kubectl apply -f pvc-redis.yaml

(6)编写redis的yaml配置文件


apiVersion: apps/v1
kind: Deployment
metadata:
  name: redis
  namespace: gitlab
  labels:
    name: redis
spec:
  selector:
    matchLabels:
      name: redis
  template:
    metadata:
      name: redis
      labels:
        name: redis
    spec:
      containers:
      - name: redis
        image: sameersbn/redis
        imagePullPolicy: IfNotPresent
        ports:
        - name: redis
          containerPort: 6379
        volumeMounts:
        - mountPath: /var/lib/redis
          name: data
        livenessProbe:
          exec:
            command:
            - redis-cli
            - ping
          initialDelaySeconds: 30
          timeoutSeconds: 5
        readinessProbe:
          exec:
            command:
            - redis-cli
            - ping
          initialDelaySeconds: 5
          timeoutSeconds: 1
      volumes:
      - name: data
        persistentVolumeClaim:
          claimName: redis-data
---
apiVersion: v1
kind: Service
metadata:
  name: redis
  namespace: gitlab
  labels:
    name: redis
spec:
  ports:
    - name: redis
      port: 6379
      targetPort: redis
  selector:
    name: redis

然后执行如下命令即可创建

kubectl apply -f redis.yaml

(7)编写创建gitlab的yaml配置文件


apiVersion: apps/v1
kind: Deployment
metadata:
  name: gitlab
  namespace: gitlab
  labels:
    name: gitlab
spec:
  selector:
    matchLabels:
        name: gitlab
  template:
    metadata:
      name: gitlab
      labels:
        name: gitlab
    spec:
      containers:
      - name: gitlab
        image: sameersbn/gitlab:11.8.1
        imagePullPolicy: IfNotPresent
        env:
        - name: TZ
          value: Asia/Shanghai
        - name: GITLAB_TIMEZONE
          value: Beijing
        - name: GITLAB_SECRETS_DB_KEY_BASE
          value: long-and-random-alpha-numeric-string
        - name: GITLAB_SECRETS_SECRET_KEY_BASE
          value: long-and-RANDOM-ALPHA-NUMERIc-string
        - name: GITLAB_SECRETS_OTP_KEY_BASE
          value: long-and-random-alpha-numeric-string
        - name: GITLAB_ROOT_PASSWORD
          value: admin321
        - name: GITLAB_ROOT_EMAIL
          value: hitredrose@163.com  ##这里填自己的邮箱
        - name: GITLAB_HOST
          value: 192.168.16.40   ##这里填gitlab的host地址,可以是主节点的ip
        - name: GITLAB_PORT
          value: "32765"       # 与下面Service中配置的nodePort一致
        - name: GITLAB_SSH_PORT  # 与下面Service中配置的nodePort一致
          value: "32766"
        - name: GITLAB_NOTIFY_ON_BROKEN_BUILDS
          value: "true"
        - name: GITLAB_NOTIFY_PUSHER
          value: "false"
        - name: GITLAB_BACKUP_SCHEDULE
          value: daily
        - name: GITLAB_BACKUP_TIME
          value: 01:00
        - name: DB_TYPE
          value: postgres
        - name: DB_HOST
          value: postgresql
        - name: DB_PORT
          value: "5432"
        - name: DB_USER
          value: gitlab
        - name: DB_PASS
          value: gitlab
        - name: DB_NAME
          value: gitlab_production
        - name: REDIS_HOST
          value: redis
        - name: REDIS_PORT
          value: "6379"
        ports:
        - name: http
          containerPort: 80
        - name: ssh
          containerPort: 22
        volumeMounts:
        - mountPath: /home/git/data
          name: data
        livenessProbe:
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 360  #这个值可以设置大一点,gitlab在启动时比较慢会处于一段时间的502,如果探测时间超过会进行重启,这样gitlab会一直处于重启状态
          timeoutSeconds: 50
        readinessProbe:
          httpGet:
            path: /
            port: 80
          initialDelaySeconds: 360
          timeoutSeconds: 50
      volumes:
      - name: data
        persistentVolumeClaim:
         claimName: gitlab-data
---
apiVersion: v1
kind: Service
metadata:
  name: gitlab
  namespace: gitlab
  labels:
    name: gitlab
spec:
  ports:
    - name: http
      port: 80
      targetPort: http
      nodePort: 32765
    - name: ssh
      port: 22
      nodePort: 32766
      targetPort: ssh
  selector:
    name: gitlab
  type: NodePort

然后执行如下命令创建gitlab

kubectl apply -f gitlab.yaml

(8)此时执行如下命令查看gitlab命名空间中的pod的状态,如下都为running,表示正常

[root@master gitlab]# kubectl get pod -n gitlab
NAME                         READY   STATUS    RESTARTS   AGE
gitlab-855b5b7b7b-8hr97      1/1     Running   0          23m
postgresql-b75d769dd-dn2pt   1/1     Running   0          17h
redis-6c976f56dc-z7fsb       1/1     Running   0          55m
[root@master gitlab]#

(9)然后通过Kubernetesmaster节点的ip地址和设置的端口比如这里32765,就可以访问gitlab了

(10)然后使用gitlab中设置的管理员密码,比如这里admin321,用户名root,就可以登录了,如下所示,为一个全新的gitlab

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/536393.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

002 - STM32固件库GPIO(一)操作LED灯

STM32固件库操作LED灯 1、创建板级支持包文件 在User目录下创建LED文件夹,包含bsp_led.c及头文件bsp_led.h,之后在Keil中将bsp_led.c加入 2、程序代码 bsp_led.c #include ".\LED\bsp_led.h" //相对路径访问,可以在工程配置内…

LeetCode 199. 二叉树的右视图

199. 二叉树的右视图 描述 给定一个二叉树的 根节点 root,想象自己站在它的右侧,按照从顶部到底部的顺序,返回从右侧所能看到的节点值。 示例 示例1 输入:[1,2,3,null,5,null,4] 输出:[1,3,4] 示例2 输入&#xf…

【笔试强训选择题】Day14.习题(错题)解析

作者简介:大家好,我是未央; 博客首页:未央.303 系列专栏:笔试强训选择题 每日一句:人的一生,可以有所作为的时机只有一次,那就是现在!!! 文章目录…

Linux环境搭建与历史

目录 前言 1.操作系统是什么 2. 为什么我们要选择Linux 3.Linux操作系统发展历史 4.企业应用现状 Linux在服务器领域的发展 Linux在桌面领域的发展 Linux在移动嵌入式领域的发展 Linux在云计算/大数据领域的发展 5.发行版本 6. Linux环境配置 6.1 Linux搭建的方式 …

程序员挣够了钱,到中年你还害怕失业吗?

最近一刷知乎全部都是大龄程序员失业危机 真的有这么可怕吗? 程序员35岁就真的到了瓶颈期? 我不这么认为 挣够了钱,当然不可怕,问题是没挣够啊~!!! 按题主的算法是,大城市薪资1…

C++基础STL-map容器

map容器介绍: 作为关联式容器的一种,map 容器存储的都是 pair 对象,也就是用 pair 类模板创建的键值对。其中,各个键值对的键和值可以是任意数据类型,包括 C基本数据类型(int、double 等&#xff0…

快速入门matlab——变量练习

学习目标:1.掌握matlab编程中最常用的几种变量类型 2.对变量类型的属性有所熟悉,不要求记忆,知道了解即可 3.要求熟练运用这几种变量类型创建自己的变量 clear all; % 清除Workspace中的所有…

服务网格:优化微服务通信与保障系统安全性的架构利器

文章目录 服务网格:优化微服务通信与保障系统安全性的架构利器1. 什么是服务网格?微服务架构概述:服务网格的定义和作用: 2. 服务网格的特点:透明性:无需修改应用代码服务发现与负载均衡:动态发…

GPT3.5 VS GPT-4写领导讲话稿,谁是最强笔杆子?

正文共 1240 字,阅读大约需要 5 分钟 文秘/公务员必备技巧,您将在5分钟后获得以下超能力: 快速生成领导讲话稿 Beezy评级 :B级 *经过简单的寻找, 大部分人能立刻掌握。主要节省时间。 推荐人 | Kim 编辑者 | Linda ●…

redis持久化配置

回顾:rpcbind111 nfs2049 redis高可用高可用是指服务器可以正常访问的时间,衡量的标准是在多长时间内可以提供正常服务(99.9%,99.99%,99.999%等) 还要考虑提供主从分离,快速容灾技术&#…

在 React 中使用 highlight.js 和 Clipboard.js 实现代码块和复制功能

参考链接:https://blog.csdn.net/huangjuan0229/article/details/130319050 在前端开发中,代码块高亮和复制功能是十分常见的需求。而在 React 中,常用的代码高亮库是 highlight.js,常用的复制库是 Clipboard.js。本篇文章将介绍…

新版 钥证书模式加签模式支付宝官方支付对接·错误代码 missing-signature 错误原因: 缺少签名参数 解决方案

新版密钥证书加签模式支付宝官方支付对接错误代码 missing-signature 错误原因: 缺少签名参数 解决方案 大家好我是优雅草伊凡,最近处理的问题特别多每天忙得不可开交,但是我相信后续要写的内容和记录下的问题是越来越多了,其他同事忙着开发…

10-02 单元化架构核心问题与概念

单元化架构产生的原因 应对增长 传统架构无法处理日益增长的互联网用户需求扩容 需要新架构更近一部提升了系统的扩展能力系统稳定性 新架构需要高可用、相对独立和故障隔离使整体系统更稳定灰度发布 系统和组件都纳入版本管理,按需部署进行灰度发布 核心问题 应…

成都待慕电商:抖音百亿现金扶持商家

新京报贝壳财经讯5月16日,抖音电商在广州举办第三届生态大会。抖音电商总裁魏雯雯透露,过去一年,抖音电商GMV(商品交易总额)同比增长80%,其中,货架场景GMV占比达30%,平台售出超300亿…

公司新招了个字节拿36K的人,让我见识到了什么才是测试扛把子......

5年测试,应该是能达到资深测试的水准,即不仅能熟练地开发业务,而且还能熟悉项目开发,测试,调试和发布的流程,而且还应该能全面掌握数据库等方面的技能,如果技能再高些的话,甚至熟悉分…

【目标检测】基于yolov5的交通标志检测和识别(可识别58种类别,附代码和数据集)

写在前面: 首先感谢兄弟们的订阅,让我有创作的动力,在创作过程我会尽最大能力,保证作品的质量,如果有问题,可以私信我,让我们携手共进,共创辉煌。 文末附项目代码和数据集,请看检测效果: 1. 介绍 YOLOv5是一种用于目标检测的深度学习算法,它能够在高速和高精度的情…

Spring中的@Value注解详解

Spring中的Value注解详解 概述 本文配置文件为yml文件 在使用spring框架的项目中,Value是经常使用的注解之一。其功能是将与配置文件中的键对应的值分配给其带注解的属性。在日常使用中,我们常用的功能相对简单。本文使您系统地了解Value的用法。 Value…

人工智能的新时代:讯飞星火大模型Vs ChatGPT

近日,科大讯飞召开了星火认知大模型成果发布会,会上表示讯飞星火大模型将突破开放式问答,对标ChatGPT,在中文能力上超过ChatGPT,在英文能力上与ChatGPT相当。对此,你怎么看? 一、你有使用过这种…

在 Golang 中执行 Shell 命令

原文标题:Executing Shell Commands in Golang 作者:Soham Kamani 之前自己也写过 os/exec 包执行 Shell 命令的文章,但是没有这篇讲的详细,感兴趣可以看看,点此处。 在本教程中,我们将学习如何在 Golang …

融云 WICC 2023 定档!「出海嘉年华」穂城来袭!

集赞获纸质版《作战地图》 阔别一年,通信行业年度盛会 WICC 即将重磅回归。移步【融云全球互联网通信云】回复“地图”免费领 6 月 2 日(周五),融云与白鲸出海联合主办、以“聚势突围,布局全球”为主题的“WICC 社交…