K8s上安装gitlab-ce

文章目录

K8s上安装gitlab-ce

前言

  使用pv-pvc来持久化gitlab的数据,配置,日志文件。

  pod启动后需要需要修改external_url然后重启pod。

操作如下

shell 复制代码
mkdir -p /mnt/data01/gitlab
ctr -n k8s.io i pull docker.io/gitlab/gitlab-ce:latest
kubectl label node [node_name] app=devops
kubectl apply -f gitlab-deployment.yml

如果镜像拉取不下来,可以

shell 复制代码
wget -c http://117.72.10.233/file/gitlab-ce.tgz
ctr -n k8s.io i import gitlab-ce.tgz

Pod起来之后,修改 /mnt/data01/gitlab/conf/gitlab.rb 文件,修改配置然后重启Pod

shell 复制代码
cat >> /mnt/data01/gitlab/conf/gitlab.rb << 'eof'
external_url 'http://123.60.108.111:30080'  ## ip需要修改为访问地址
gitlab_rails['gitlab_ssh_host'] = '123.60.108.111'  ## ip需要修改为访问地址
gitlab_rails['gitlab_shell_ssh_port'] = 30022
gitlab_rails['time_zone'] = 'Asia/Shanghai'
gitlab_rails['smtp_enable'] = true
gitlab_rails['smtp_address'] = "smtp.qq.com"
gitlab_rails['smtp_port'] = 465
gitlab_rails['smtp_user_name'] = "1391578633@qq.com"
gitlab_rails['smtp_password'] = "yasfadsfafddfdj"  ## 密码为qq的smtp授权码
gitlab_rails['smtp_domain'] = "smtp.qq.com"
gitlab_rails['smtp_authentication'] = "login"
gitlab_rails['smtp_enable_starttls_auto'] = true
gitlab_rails['smtp_tls'] = true
gitlab_rails['gitlab_email_enabled'] = true
gitlab_rails['gitlab_email_from'] = '1391578633@qq.com'
gitlab_rails['gitlab_email_display_name'] = 'gitlab'
gitlab_rails['gitlab_email_reply_to'] = '1391578633@qq.com'
gitlab_rails['gitlab_email_subject_suffix'] = '[gitlab]'
eof
kubectl get pods -n devops
kubectl delete pod [上面的gitlab的podname] -n devops


最后浏览器访问ip:30080即可访问gitlab,账号是root,密码是初始密码执行grep 'Password' /mnt/data01/gitlab/conf/initial_root_password

gitlab-deployment.yml

yaml 复制代码
apiVersion: v1
kind: Namespace
metadata:
  name: devops
---
apiVersion: v1
kind: PersistentVolume
metadata:
  name: gitlab-pv
spec:
  accessModes:
  - ReadWriteOnce
  capacity:
    storage: 50Gi
  storageClassName: gitlab-ce
  hostPath:
    path: /mnt/data01/gitlab
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: gitlab-pvc
  namespace: devops
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 2Gi
    limits:
      storage: 50Gi
  storageClassName: gitlab-ce
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: gitlab-deployment
  namespace: devops
spec:
  replicas: 1
  selector:
    matchLabels:
      app: gitlab-ce
  template:
    metadata:
      labels:
        app: gitlab-ce
    spec:
      nodeSelector:
        app: devops
      containers:
      - name: gitlab-ce
        image: docker.io/gitlab/gitlab-ce:latest
        imagePullPolicy: IfNotPresent
        volumeMounts:
        - name: gen-dir
          mountPath: /var/opt/gitlab
          subPath: data
        - name: gen-dir
          mountPath: /etc/gitlab
          subPath: conf
        - name: gen-dir
          mountPath: /var/log/gitlab
          subPath: logs
        - name: localtime
          mountPath: /etc/localtime
      volumes:
      - name: gen-dir
        persistentVolumeClaim:
          claimName: gitlab-pvc
      - name: localtime
        hostPath:
          path: /etc/localtime
---
apiVersion: v1
kind: Service
metadata:
  name: gitlab-svc
  namespace: devops
spec:
  ports:
  - name: http
    port: 30080
    targetPort: 30080
    nodePort: 30080
  - name: https
    port: 443
    targetPort: 443
    nodePort: 30443
  - name: ssh
    port: 22
    targetPort: 22
    nodePort: 30022
  type: NodePort
  selector:
    app: gitlab-ce
相关推荐
张忠琳7 小时前
【NVIDIA】k8s-device-plugin v0.19.3 标签管理模块 (internal/lm) 深度分析之六
云原生·容器·架构·kubernetes·nvidia
小匠石钧知7 小时前
02_在多个RockyLinux10虚拟机上安装k8s集群
云原生·容器·kubernetes·k8s
霁月的小屋9 小时前
Docker 工程化实践(六):Docker Compose 管理多容器应用
运维·docker·容器
江湖有缘9 小时前
Docker实战 | 使用Docker部署EasyNode服务器面板工具
服务器·docker·容器
心机之蛙qee10 小时前
Docker Compose 多容器编排
java·docker·容器
上海安当技术11 小时前
老系统零改造接入:旁路代理统一认证实战
java·servlet·架构·kubernetes·jenkins
ShiXZ21311 小时前
Docker 安装 Elasticsearch 7.17.6 完整教程
elasticsearch·docker·容器
名字还没想好☜12 小时前
Kubernetes Pod 调度实战:nodeSelector、亲和性与 taint/toleration 把 Pod 放到指定节点
运维·云原生·容器·kubernetes·调度
念何架构之路12 小时前
moby-BuildKit(builder-next)
学习·docker·容器
风曦Kisaki12 小时前
Kubernetes(K8s)笔记Day04:控制器(ReplicaSet 与Deployment),滚动更新及回滚,滚动更新策略,Pod 的 DNS 策略
linux·运维·笔记·docker·容器·kubernetes