记录一下在k3s快速创建gitlab

废话不多说,直接上配置文件

需要修改的地方(备注都有写):

1.命名空间 namespace

  1. claimName 文件挂载

Deployment

复制代码
kind: Deployment
apiVersion: apps/v1
metadata:
  name: gitlab
  namespace: cicd  # 替换为您的命名空间
  labels:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: gitlab
  annotations: {}
spec:
  replicas: 1
  selector:
    matchLabels:
      k8s.kuboard.cn/layer: svc
      k8s.kuboard.cn/name: gitlab
  template:
    metadata:
      creationTimestamp: null
      labels:
        k8s.kuboard.cn/layer: svc
        k8s.kuboard.cn/name: gitlab
      annotations:
        kubectl.kubernetes.io/restartedAt: '2025-01-16T09:08:15+08:00'
    spec:
      volumes:
        - name: gitlab-data
          persistentVolumeClaim:
            claimName: gitlab-pvc  # 替换为您的 PVC 名称
      containers:
        - name: gitlab
          image: 'gitlab/gitlab-ce:14.3.5-ce.0'
          envFrom:
            - configMapRef:
                name: gitlab-env
          env:
            - name: TZ
              value: Asia/Shanghai
            - name: GITLAB_OMNIBUS_CONFIG
              valueFrom:
                configMapKeyRef:
                  name: gitlab-env
                  key: gitlab-config
          resources: {}
          volumeMounts:
            - name: gitlab-data
              mountPath: /var/opt/gitlab
              subPath: data/gitlab/data
            - name: gitlab-data
              mountPath: /var/log/gitlab
              subPath: data/gitlab/logs
            - name: gitlab-data
              mountPath: /etc/gitlab
              subPath: data/gitlab/config
          terminationMessagePath: /dev/termination-log
          terminationMessagePolicy: File
          imagePullPolicy: IfNotPresent
      restartPolicy: Always
      terminationGracePeriodSeconds: 30
      dnsPolicy: ClusterFirst
      securityContext: {}
      schedulerName: default-scheduler
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 25%
      maxSurge: 25%
  revisionHistoryLimit: 10
  progressDeadlineSeconds: 600

注意:gitlab/gitlab-ce:14.3.5-ce.0 其中的版本,如果更换可以不可以没试过哈。

Service

复制代码
kind: Service
apiVersion: v1
metadata:
  name: gitlab
  namespace: cicd  # 替换为您的命名空间
  labels:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: gitlab
spec:
  ports:
    - name: http
      protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30009  # 根据需要调整
    - name: https
      protocol: TCP
      port: 443
      targetPort: 443
      nodePort: 30718  # 根据需要调整
    - name: ssh
      protocol: TCP
      port: 22
      targetPort: 22
      nodePort: 30256  # 根据需要调整
  selector:
    k8s.kuboard.cn/layer: svc
    k8s.kuboard.cn/name: gitlab
  type: NodePort
  sessionAffinity: None
  externalTrafficPolicy: Cluster
  ipFamilies:
    - IPv4
  ipFamilyPolicy: SingleStack
  internalTrafficPolicy: Cluster

ConfigMap

复制代码
kind: ConfigMap
apiVersion: v1
metadata:
  name: gitlab-env
  namespace: cicd  # 替换为您的命名空间
data:
  gitlab-config: |-
    external_url 'http://gitlab.yourdomain.com'  # 替换为您的 GitLab 外部访问地址
    gitlab_rails['gitlab_shell_ssh_port'] = 2222

PersistentVolumeClaim 与 PersistentVolume

稍微给一个demo(可不用哈)

复制代码
kind: PersistentVolumeClaim
apiVersion: v1
metadata:
  name: gitlab-pvc  # PVC 名称
  namespace: cicd  # 替换为您的命名空间
spec:
  accessModes:
    - ReadWriteMany
  resources:
    requests:
      storage: 100Gi  # 根据需求调整存储大小
  storageClassName: nfs-class  # 使用您的 NFS 存储类

apiVersion: v1
kind: PersistentVolume
metadata:
  annotations:
    pv.kubernetes.io/provisioned-by: nfs-nfs-class
  finalizers:
    - kubernetes.io/pv-protection
  name: gitlab-pv
  resourceVersion: '5781171'
spec:
  accessModes:
    - ReadWriteMany
  capacity:
    storage: 100Gi
  claimRef:
    apiVersion: v1
    kind: PersistentVolumeClaim
    name: gitlab-pvc
    namespace: cicd
  nfs:
    path: /k3s/gitlab
    server: 192.168.1.x
  persistentVolumeReclaimPolicy: Retain
  storageClassName: nfs-class
  volumeMode: Filesystem

部署成功

查看密码(初始密码)

控制台输入命令

复制代码
cat /etc/gitlab/initial_root_password

密码就是上面的那一串位置。

修改密码


博主新推出 的gitee免费开源项目(商城+APP+小程序+H5),有兴趣的小伙伴可 以了解一下。

生鲜商城kxmall-小程序 + App + 公众号H5: kxmall-生鲜商城+APP+小程序+H5。同时支持微信小程序、H5、安卓App、苹果App。支持集群部署,单机部署。可用于B2C商城,O2O外卖,社区超市,生鲜【带配套骑手端配送系统】。kxmall使用uniapp编码。使用Java开发,SpringBoot 2.1.x框架,MyBatis-plus持久层框架、Redis作为缓存、MySql作为数据库。前端vuejs作为开发语言。https://gitee.com/zhengkaixing/kxmall

相关推荐
callJJ4 小时前
从 0 开始理解 Spring 的核心思想 —— IoC 和 DI(2)
java·开发语言·后端·spring·ioc·di
wangjialelele4 小时前
Linux中的线程
java·linux·jvm·c++
谷咕咕4 小时前
windows下python3,LLaMA-Factory部署以及微调大模型,ollama运行对话,开放api,java,springboot项目调用
java·windows·语言模型·llama
没有bug.的程序员4 小时前
MVCC(多版本并发控制):InnoDB 高并发的核心技术
java·大数据·数据库·mysql·mvcc
在下村刘湘5 小时前
maven pom文件中<dependencyManagement><dependencies><dependency> 三者的区别
java·maven
不务专业的程序员--阿飞6 小时前
JVM无法分配内存
java·jvm·spring boot
李昊哲小课6 小时前
Maven 完整教程
java·maven
Lin_Aries_04216 小时前
容器化简单的 Java 应用程序
java·linux·运维·开发语言·docker·容器·rpc
脑花儿6 小时前
ABAP SMW0下载Excel模板并填充&&剪切板方式粘贴
java·前端·数据库
岁岁种桃花儿6 小时前
详解 Kubernetes 命令:kubectl exec -it nginx -- bash 及实战场景
运维·nginx·kubernetes