zoukankan      html  css  js  c++  java
  • Gitlab部署到K8S上

    k8s1.17安装gitlab

     

    Kubernets项目:k8s1.17安装gitlab

    仅供测试,没有持久化存储

    1、环境

    k8s集群
    kubectl 1.17.4

    2、gitlab-redis部署

    cat gitlab-redis.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: redis
      namespace: kube-ops
      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: 10
              timeoutSeconds: 5
          volumes:
          - name: data
            hostPath:
              path: /data1/docker/xinsrv/redis
    
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: redis
      namespace: kube-ops
      labels:
        name: redis
    spec:
      ports:
        - name: redis
          port: 6379
          targetPort: redis
      selector:
        name: redis
    

    kubectl apply -f gitlab-redis.yaml

    3、gitlab-postgresql部署

    cat gitlab-postgresql.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: postgresql
      namespace: kube-ops
      labels:
        name: postgresql
    spec:
      selector:
        matchLabels:
          name: postgresql
      template:
        metadata:
          name: postgresql
          labels:
            name: postgresql
        spec:
          containers:
          - name: postgresql
            image: sameersbn/postgresql
            imagePullPolicy: IfNotPresent
            env:
            - name: DB_USER
              value: gitlab
            - name: DB_PASS
              value: passw0rd
            - 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
            hostPath:
              path: /data1/docker/xinsrv/postgresql
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: postgresql
      namespace: kube-ops
      labels:
        name: postgresql
    spec:
      ports:
        - name: postgres
          port: 5432
          targetPort: postgres
      selector:
        name: postgresql
    

    kubectl apply -f gitlab-postgresql.yaml

    4、gitlab部署

    4.1、手动创建Secret

    创建一个secret.yaml文件,内容用base64编码

    $ echo -n 'admin' | base64
    YWRtaW4=
    $ echo -n 'admin.1231' | base64
    YWRtaW4uMTIzMQ==
    

    cat secret-gitlab.yaml

    apiVersion: v1
    kind: Secret
    metadata:
      namespace: kube-ops
      name: git-user-pass
    type: Opaque
    data:
      username: YWRtaW4=
      password: YWRtaW4uMTIzMQ==
    

    创建:kubectl create -f ./secret-gitlab.yaml

    base64解码:

    $ echo 'YWRtaW4uMTIzMQ==' | base64 --decode
    admin.1231
    

    4.2、gitlab资源配置部署

    • 本地ip地址访问

    cat gitlab.yaml

    apiVersion: apps/v1
    kind: Deployment
    metadata:
      name: gitlab
      namespace: kube-ops
      labels:
        name: gitlab
    spec:
      selector:
        matchLabels:
          name: gitlab
      template:
        metadata:
          name: gitlab
          labels:
            name: gitlab
        spec:
          containers:
          - name: gitlab
            image: sameersbn/gitlab:12.1.6
            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
              valueFrom:
                secretKeyRef:
                  name: git-user-pass
                  key: password
            - name: GITLAB_ROOT_EMAIL
              value: 245329924@qq.com
            - name: GITLAB_HOST
              value: gitlab.xin.com
            - name: GITLAB_PORT
              value: "80"
            - name: GITLAB_SSH_PORT
              value: "30022"
            - 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: passw0rd
            - 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: 180
              timeoutSeconds: 5
            readinessProbe:
              httpGet:
                path: /
                port: 80
              initialDelaySeconds: 5
              timeoutSeconds: 1
          volumes:
          - name: data
            hostPath:
              path: /data1/docker/xinsrv/gitlab
    ---
    apiVersion: v1
    kind: Service
    metadata:
      name: gitlab
      namespace: kube-ops
      labels:
        name: gitlab
    spec:
      ports:
        - name: http
          port: 80
          nodePort: 30080
        - name: ssh
          port: 22
          targetPort: ssh
          nodePort: 30022
      type: NodePort
      selector:
        name: gitlab
    
    ---
    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: gitlab
      namespace: kube-ops
      annotations:
        kubernetes.io/ingress.class: traefik
    spec:
      rules:
      - host: gitlab.xin.com
        http:
          paths:
          - backend:
              serviceName: gitlab
              servicePort: http
    

    创建:kubectl apply -f gitlab.yaml

    5、部署完成

    kubectl get pod -n kube-ops
    NAME                        READY   STATUS    RESTARTS   AGE
    gitlab-5969dcdbfc-tsvdq     1/1     Running   0          151m
    postgresql-6c7f6c89-kk45q   1/1     Running   0          21h
    redis-86d4bb9677-zwbjh      1/1     Running   0          21h
    

    6、登录

    使用用户名 root,和部署的时候指定的超级用户密码GITLAB_ROOT_PASSWORD=admin.1231即可登录进入到首页,访问端口:30080

     
  • 相关阅读:
    LeetCode "Median of Two Sorted Arrays"
    LeetCode "Distinct Subsequences"
    LeetCode "Permutation Sequence"

    LeetCode "Linked List Cycle II"
    LeetCode "Best Time to Buy and Sell Stock III"
    LeetCode "4Sum"
    LeetCode "3Sum closest"
    LeetCode "3Sum"
    LeetCode "Container With Most Water"
  • 原文地址:https://www.cnblogs.com/Python-K8S/p/14145356.html
Copyright © 2011-2022 走看看