zoukankan      html  css  js  c++  java
  • 优化:在k8s上部署的gitlab

    gitlab组件图

    gitlab在k8s上占用资源

    # kubectl top pods -n default | grep git* 
    gitlab-gitaly-0                             9m           444Mi           
    gitlab-gitlab-exporter-59c6bdb69c-gz9nf     5m           36Mi            
    gitlab-gitlab-shell-547cc48d99-kmrbp        10m          21Mi            
    gitlab-gitlab-shell-547cc48d99-szg74        8m           25Mi            
    gitlab-minio-5746f7f7c7-tdff5               0m           47Mi            
    gitlab-prometheus-server-7d8bcf896d-vm5kq   14m          650Mi           
    gitlab-redis-cd6b45457-2s4cg                9m           17Mi            
    gitlab-registry-6c5df4646f-mbdkr            0m           15Mi            
    gitlab-registry-6c5df4646f-mqkxl            0m           31Mi            
    gitlab-sidekiq-all-in-1-576d89544d-8swmw    28m          967Mi 
    gitlab-unicorn-68f8f8d8d9-6clpv             8m           1510Mi 
    gitlab-unicorn-68f8f8d8d9-xbt8j             10m          1522Mi 
    

    gitlab组件简介

    对比kubectl top pods -n default | grep git* 输出

    1. gitlab-gitaly:Gitaly是一项由GitLab设计的服务,旨在消除在GitLab的分布式部署(请考虑GitLab.com或高可用性部署)中对Git存储使用NFS的需求。从11.3.0开始,此服务处理GitLab中的所有Git级别访问。
    2. gitlab-gitlab-exporter:GitLab Exporter是一个内部设计的流程,允许我们将有关GitLab应用程序内部的度量导出到Prometheus。可以在项目的README中阅读更多内容。
    3. gitlab-gitlab-shell:GitLab ShellGitLab设计的程序,用于处理基于SSH的git会话,并修改授权密钥的列表。GitLab Shell不是Unix Shell,也不是Bash或Zsh的替代品。
    4. gitlab-minio:MinIO是根据Apache License v2.0发布的对象存储服务器。它与Amazon S3云存储服务兼容。它最适合存储非结构化数据,例如照片,视频,日志文件,备份和容器/ VM映像。一个对象的大小范围可以从几个KB到最大5TB。
    5. gitlab-prometheus-server:Prometheus是一个时序工具,可帮助GitLab管理员公开有关用于向GitLab提供服务的各个流程的指标。
    6. gitlab-redis:键值存储/非持久数据库。
    7. gitlab-registry:gitlab自带镜像仓库
    8. gitlab-sidekiq:Sidekiq是Ruby后台作业处理器,可从Redis队列中提取作业并进行处理。后台作业使GitLab通过将工作移至后台来提供更快的请求/响应周期。
    9. gitlab-unicorn:Unicorn是一个Ruby应用程序服务器,用于运行核心的Rails应用程序,该应用程序在GitLab中提供面向用户的功能。通常,过程输出,你会认为这bundle还是config.ru取决于GitLab版本。

    疑问点

    image.png

    目的

    对在k8s上部署的gitlab进行内存优化

    思路:

    1. 寻找限制内存的方法((1)gitlab自身的资源限制策略【最好】,k8s做资源限制【最差】)

    2.删除非必要的应用程序(如删除prometheus【后期会把gitlab迁移到裸机并且对这个集群系统做监控】)。

    策略

    尝试关闭prometheus组件,看是否对gitlab有影响

    查看与gitlab-prometheus有关的资源清单

    # kubectl get svc,pod,ingress,deployment | grep prom
    

    发现没有prometheus的ingress,这说明没有走ingress-nginx代理,也能说明没有人曾访问过!!!

    导出gitlab_prometheus_deployment.yaml

    # kubectl get deployment gitlab-prometheus-server -o yaml > gitlab_prometheus_deployment.yaml
    # cat gitlab_prometheus_deployment.yaml 
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      annotations:
        deployment.kubernetes.io/revision: "1"
      creationTimestamp: "2019-10-21T04:14:50Z"
      generation: 1
      labels:
        app: prometheus
        chart: prometheus-5.5.3
        component: server
        heritage: Tiller
        release: gitlab
      name: gitlab-prometheus-server
      namespace: default
      resourceVersion: "1438304832"
      selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/gitlab-prometheus-server
      uid: 5360e3bf-f3b9-11e9-800a-8ad2fc7e2fa8
    spec:
      progressDeadlineSeconds: 2147483647
      replicas: 1
      revisionHistoryLimit: 2147483647
      selector:
        matchLabels:
          app: prometheus
          component: server
          release: gitlab
      strategy:
        rollingUpdate:
          maxSurge: 1
          maxUnavailable: 1
        type: RollingUpdate
      template:
        metadata:
          creationTimestamp: null
          labels:
            app: prometheus
            component: server
            release: gitlab
        spec:
          containers:
          - args:
            - --volume-dir=/etc/config
            - --webhook-url=http://localhost:9090/-/reload
            image: jimmidyson/configmap-reload:v0.1
            imagePullPolicy: IfNotPresent
            name: prometheus-server-configmap-reload
            resources: {}
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /etc/config
              name: config-volume
              readOnly: true
          - args:
            - --storage.tsdb.retention=15d
            - --config.file=/etc/config/prometheus.yml
            - --storage.tsdb.path=/data
            - --web.console.libraries=/etc/prometheus/console_libraries
            - --web.console.templates=/etc/prometheus/consoles
            - --web.enable-lifecycle
            image: prom/prometheus:v2.2.1
            imagePullPolicy: IfNotPresent
            livenessProbe:
              failureThreshold: 3
              httpGet:
                path: /-/healthy
                port: 9090
                scheme: HTTP
              initialDelaySeconds: 30
              periodSeconds: 10
              successThreshold: 1
              timeoutSeconds: 30
            name: prometheus-server
            ports:
            - containerPort: 9090
              protocol: TCP
            readinessProbe:
              failureThreshold: 3
              httpGet:
                path: /-/ready
                port: 9090
                scheme: HTTP
              initialDelaySeconds: 30
              periodSeconds: 10
              successThreshold: 1
              timeoutSeconds: 30
            resources: {}
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /etc/config
              name: config-volume
            - mountPath: /data
              name: storage-volume
          dnsPolicy: ClusterFirst
          initContainers:
          - command:
            - chown
            - -R
            - 65534:65534
            - /data
            image: busybox:latest
            imagePullPolicy: IfNotPresent
            name: init-chown-data
            resources: {}
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /data
              name: storage-volume
          restartPolicy: Always
          schedulerName: default-scheduler
          securityContext: {}
          serviceAccount: gitlab-prometheus-server
          serviceAccountName: gitlab-prometheus-server
          terminationGracePeriodSeconds: 300
          volumes:
          - configMap:
              defaultMode: 420
              name: gitlab-prometheus-server
            name: config-volume
          - name: storage-volume
            persistentVolumeClaim:
              claimName: gitlab-prometheus-server
    

    导出gitlab_prometheus_svc.yaml

    # kubectl get svc gitlab-prometheus-server  -o yaml > gitlab_prometheus_svc.yaml
    # cat gitlab_prometheus_svc.yaml 
    apiVersion: v1
    kind: Service
    metadata:
      creationTimestamp: "2019-10-21T04:14:50Z"
      labels:
        app: prometheus
        chart: prometheus-5.5.3
        component: server
        heritage: Tiller
        release: gitlab
      name: gitlab-prometheus-server
      namespace: default
      resourceVersion: "144804734"
      selfLink: /api/v1/namespaces/default/services/gitlab-prometheus-server
      uid: 535378f3-f3b9-11e9-800a-8ad2fc7e2fa8
    spec:
      clusterIP: 192.168.247.105
      ports:
      - name: http
        port: 80
        protocol: TCP
        targetPort: 9090
      selector:
        app: prometheus
        component: server
        release: gitlab
      sessionAffinity: None
      type: ClusterIP
    

    大胆删除deployment和svc,能有啥事?

    # kubectl delete -f
    

    手动测试,似乎没得啥问题。

    导出gitlab_exporter_deployment.yaml

    # kubectl get deployment gitlab-gitlab-exporter -o yaml > gitlab_exporter_deployment.yaml
    # cat gitlab_exporter_deployment.yaml 
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      annotations:
        deployment.kubernetes.io/revision: "2"
      creationTimestamp: "2019-10-21T04:14:50Z"
      generation: 2
      labels:
        app: gitlab-exporter
        chart: gitlab-exporter-2.4.6
        heritage: Tiller
        release: gitlab
      name: gitlab-gitlab-exporter
      namespace: default
      resourceVersion: "1399100783"
      selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/gitlab-gitlab-exporter
      uid: 5358e5e4-f3b9-11e9-800a-8ad2fc7e2fa8
    spec:
      progressDeadlineSeconds: 600
      replicas: 1
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: gitlab-exporter
          release: gitlab
      strategy:
        rollingUpdate:
          maxSurge: 25%
          maxUnavailable: 25%
        type: RollingUpdate
      template:
        metadata:
          annotations:
            checksum/config: 158ed2dba0a2fbaa0d3fda906d70cf0eb7a80650e8f01d3046aa9a6fa0bba59a
            prometheus.io/path: /metrics
            prometheus.io/port: "9168"
            prometheus.io/scrape: "true"
          creationTimestamp: null
          labels:
            app: gitlab-exporter
            release: gitlab
        spec:
          affinity:
            podAntiAffinity:
              preferredDuringSchedulingIgnoredDuringExecution:
              - podAffinityTerm:
                  labelSelector:
                    matchLabels:
                      app: gitlab-exporter
                      release: gitlab
                  topologyKey: kubernetes.io/hostname
                weight: 1
          containers:
          - env:
            - name: CONFIG_TEMPLATE_DIRECTORY
              value: /var/opt/gitlab-exporter/templates
            - name: CONFIG_DIRECTORY
              value: /etc/gitlab-exporter
            image: registry.gitlab.com/gitlab-org/build/cng/gitlab-exporter:5.0.1
            imagePullPolicy: IfNotPresent
            lifecycle:
              preStop:
                exec:
                  command:
                  - /bin/bash
                  - -c
                  - pkill -f 'gitlab-exporter'
            livenessProbe:
              exec:
                command:
                - pgrep
                - -f
                - gitlab-exporter
              failureThreshold: 3
              periodSeconds: 10
              successThreshold: 1
              timeoutSeconds: 1
            name: gitlab-exporter
            ports:
            - containerPort: 9168
              name: gitlab-exporter
              protocol: TCP
            readinessProbe:
              exec:
                command:
                - pgrep
                - -f
                - gitlab-exporter
              failureThreshold: 3
              periodSeconds: 10
              successThreshold: 1
              timeoutSeconds: 1
            resources:
              requests:
                cpu: 50m
                memory: 100M
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /var/opt/gitlab-exporter/templates/gitlab-exporter.yml.erb
              name: gitlab-exporter-config
              subPath: gitlab-exporter.yml.erb
            - mountPath: /etc/gitlab
              name: gitlab-exporter-secrets
              readOnly: true
            - mountPath: /etc/ssl/certs/
              name: etc-ssl-certs
              readOnly: true
          dnsPolicy: ClusterFirst
          initContainers:
          - image: registry.gitlab.com/gitlab-org/build/cng/alpine-certificates:20171114-r3
            imagePullPolicy: IfNotPresent
            name: certificates
            resources:
              requests:
                cpu: 50m
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /etc/ssl/certs
              name: etc-ssl-certs
          - command:
            - sh
            - /config/configure
            image: busybox:latest
            imagePullPolicy: Always
            name: configure
            resources:
              requests:
                cpu: 50m
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /config
              name: gitlab-exporter-config
              readOnly: true
            - mountPath: /init-config
              name: init-gitlab-exporter-secrets
              readOnly: true
            - mountPath: /init-secrets
              name: gitlab-exporter-secrets
          restartPolicy: Always
          schedulerName: default-scheduler
          securityContext:
            fsGroup: 1000
            runAsUser: 1000
          terminationGracePeriodSeconds: 30
          volumes:
          - configMap:
              defaultMode: 420
              name: gitlab-gitlab-exporter
            name: gitlab-exporter-config
          - name: init-gitlab-exporter-secrets
            projected:
              defaultMode: 256
              sources:
              - secret:
                  items:
                  - key: postgres-password
                    path: postgres/psql-password
                  name: gitlab-postgresql-password
              - secret:
                  items:
                  - key: secret
                    path: redis/password
                  name: gitlab-redis-secret
          - emptyDir:
              medium: Memory
            name: gitlab-exporter-secrets
          - emptyDir:
              medium: Memory
            name: etc-ssl-certs
    

    资源清单好长,有点不想看 emmmmm 还是分析一波吧

    看过后,删除exporter的资源清单

    # kubectl delete -f gitlab_exporter_deployment.yaml 
    deployment.extensions "gitlab-gitlab-exporter" deleted
    

    导出gitlab-exporter的svc资源清单

    # kubectl get svc gitlab-gitlab-exporter -o yaml > gitlab_exporter_svc.yaml
    [root@mobanji gitlab]# cat gitlab_exporter_svc.yaml 
    apiVersion: v1
    kind: Service
    metadata:
      creationTimestamp: "2019-10-21T04:14:50Z"
      labels:
        app: gitlab-exporter
        chart: gitlab-exporter-2.4.6
        heritage: Tiller
        release: gitlab
      name: gitlab-gitlab-exporter
      namespace: default
      resourceVersion: "219393250"
      selfLink: /api/v1/namespaces/default/services/gitlab-gitlab-exporter
      uid: 534c0460-f3b9-11e9-800a-8ad2fc7e2fa8
    spec:
      clusterIP: 192.168.180.175
      ports:
      - name: gitlab-exporter
        port: 9168
        protocol: TCP
        targetPort: 9168
      selector:
        app: gitlab-exporter
        release: gitlab
      sessionAffinity: None
      type: ClusterIP
    

    分析一下,没发现重要信息,也删了吧

    # kubectl delete -f gitlab_exporter_svc.yaml 
    service "gitlab-gitlab-exporter" deleted
    

    至此,与prometheus有关的资源被从kubernetes上删除。

    测试验证。1. 手动刷新gitlab界面看有问题没 2. 使用gitlab发布一个临时项目看有问题没。

    经过验证暂时没的问题

    限制gitlab unicorn内存使用

    目前gitlab在k8s上的资源占用情况

    # kubectl top  pods  | grep gitlab
    gitlab-gitaly-0                            9m           366Mi           
    gitlab-gitlab-shell-547cc48d99-kmrbp       18m          19Mi            
    gitlab-gitlab-shell-547cc48d99-szg74       15m          17Mi            
    gitlab-minio-5746f7f7c7-tdff5              0m           41Mi            
    gitlab-redis-cd6b45457-2s4cg               9m           14Mi            
    gitlab-registry-6c5df4646f-mbdkr           0m           31Mi            
    gitlab-registry-6c5df4646f-mqkxl           0m           40Mi            
    gitlab-sidekiq-all-in-1-576d89544d-8swmw   28m          967Mi           
    gitlab-unicorn-68f8f8d8d9-6clpv            7m           1514Mi          
    gitlab-unicorn-68f8f8d8d9-xbt8j            8m           1526Mi
    

    可以看出 目前占用资源最高的是unicorn组件。Unicorn]是一个Ruby应用程序服务器,用于运行核心的Rails应用程序,该应用程序在GitLab中提供面向用户的功能。通常,过程输出,你会认为这bundle还是config.ru取决于GitLab版本。

    通过官网可以看出,这组件属于核心组件。貌似还不能动。还是先导出deployment,然后根据资源清单进行判断吧

    # kubectl get deployment gitlab-unicorn -o yaml > gitlab_unicorn_deployment.yaml
    # cat gitlab_unicorn_deployment.yaml 
    apiVersion: extensions/v1beta1
    kind: Deployment
    metadata:
      annotations:
        deployment.kubernetes.io/revision: "2"
      creationTimestamp: "2019-10-21T04:14:50Z"
      generation: 16
      labels:
        app: unicorn
        chart: unicorn-2.4.6
        heritage: Tiller
        release: gitlab
      name: gitlab-unicorn
      namespace: default
      resourceVersion: "1359934803"
      selfLink: /apis/extensions/v1beta1/namespaces/default/deployments/gitlab-unicorn
      uid: 535e0ed5-f3b9-11e9-800a-8ad2fc7e2fa8
    spec:
      progressDeadlineSeconds: 600
      replicas: 2
      revisionHistoryLimit: 10
      selector:
        matchLabels:
          app: unicorn
          release: gitlab
      strategy:
        rollingUpdate:
          maxSurge: 25%
          maxUnavailable: 25%
        type: RollingUpdate
      template:
        metadata:
          annotations:
            checksum/config: 2d845854ae56029b9ee0a30ca793e5c0f74c3d708329ba605bbdc36000023517
            cluster-autoscaler.kubernetes.io/safe-to-evict: "true"
            prometheus.io/path: /-/metrics
            prometheus.io/port: "8080"
            prometheus.io/scrape: "true"
          creationTimestamp: null
          labels:
            app: unicorn
            release: gitlab
        spec:
          affinity:
            podAntiAffinity:
              preferredDuringSchedulingIgnoredDuringExecution:
              - podAffinityTerm:
                  labelSelector:
                    matchLabels:
                      app: unicorn
                      release: gitlab
                  topologyKey: kubernetes.io/hostname
                weight: 1
          containers:
          - env:
            - name: TMPDIR
              value: /tmp/gitlab
            - name: GITALY_FEATURE_DEFAULT_ON
              value: "1"
            - name: CONFIG_TEMPLATE_DIRECTORY
              value: /var/opt/gitlab/templates
            - name: CONFIG_DIRECTORY
              value: /srv/gitlab/config
            - name: prometheus_multiproc_dir
              value: /metrics
            image: registry.gitlab.com/gitlab-org/build/cng/gitlab-unicorn-ee:v12.4.2
            imagePullPolicy: IfNotPresent
            lifecycle:
              preStop:
                exec:
                  command:
                  - /bin/bash
                  - -c
                  - pkill -SIGQUIT -f 'unicorn master'
            livenessProbe:
              exec:
                command:
                - /scripts/healthcheck
              failureThreshold: 3
              initialDelaySeconds: 20
              periodSeconds: 60
              successThreshold: 1
              timeoutSeconds: 30
            name: unicorn
            ports:
            - containerPort: 8080
              name: unicorn
              protocol: TCP
            readinessProbe:
              exec:
                command:
                - /scripts/healthcheck
              failureThreshold: 3
              periodSeconds: 10
              successThreshold: 1
              timeoutSeconds: 2
            resources:
              requests:
                cpu: 300m
                memory: 1200M    
    #有requests,没有limits。只做最低保障,不做硬限制。还不能贸然做limits限制
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /metrics
              name: unicorn-metrics
            - mountPath: /var/opt/gitlab/templates
              name: unicorn-config
            - mountPath: /etc/gitlab
              name: unicorn-secrets
              readOnly: true
            - mountPath: /srv/gitlab/config/secrets.yml
              name: unicorn-secrets
              subPath: rails-secrets/secrets.yml
            - mountPath: /srv/gitlab/config/initializers/smtp_settings.rb
              name: unicorn-config
              subPath: smtp_settings.rb
            - mountPath: /srv/gitlab/INSTALLATION_TYPE
              name: unicorn-config
              subPath: installation_type
            - mountPath: /srv/gitlab/public/uploads/tmp
              name: shared-upload-directory
            - mountPath: /srv/gitlab/shared
              name: shared-artifact-directory
            - mountPath: /tmp
              name: shared-tmp
            - mountPath: /etc/ssl/certs/
              name: etc-ssl-certs
              readOnly: true
          - env:
            - name: TMPDIR
              value: /tmp/gitlab
            - name: GITLAB_WORKHORSE_EXTRA_ARGS
            - name: GITLAB_WORKHORSE_LISTEN_PORT
              value: "8181"
            - name: CONFIG_TEMPLATE_DIRECTORY
              value: /var/opt/gitlab/templates
            - name: CONFIG_DIRECTORY
              value: /srv/gitlab/config
            image: registry.gitlab.com/gitlab-org/build/cng/gitlab-workhorse-ee:v12.4.2
            imagePullPolicy: IfNotPresent
            livenessProbe:
              exec:
                command:
                - /scripts/healthcheck
              failureThreshold: 3
              initialDelaySeconds: 20
              periodSeconds: 60
              successThreshold: 1
              timeoutSeconds: 30
            name: gitlab-workhorse
            ports:
            - containerPort: 8181
              name: workhorse
              protocol: TCP
            readinessProbe:
              exec:
                command:
                - /scripts/healthcheck
              failureThreshold: 3
              periodSeconds: 10
              successThreshold: 1
              timeoutSeconds: 2
            resources:
              requests:
                cpu: 100m
                memory: 100M
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /var/opt/gitlab/templates
              name: workhorse-config
            - mountPath: /etc/gitlab
              name: workhorse-secrets
              readOnly: true
            - mountPath: /srv/gitlab/public/uploads/tmp
              name: shared-upload-directory
            - mountPath: /srv/gitlab/shared
              name: shared-artifact-directory
            - mountPath: /tmp
              name: shared-tmp
            - mountPath: /etc/ssl/certs/
              name: etc-ssl-certs
              readOnly: true
          dnsPolicy: ClusterFirst
          initContainers:
          - image: registry.gitlab.com/gitlab-org/build/cng/alpine-certificates:20171114-r3
            imagePullPolicy: IfNotPresent
            name: certificates
            resources:
              requests:
                cpu: 50m
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /etc/ssl/certs
              name: etc-ssl-certs
          - args:
            - -c
            - sh -x /config-unicorn/configure ; sh -x /config-workhorse/configure ; mkdir
              -p -m 3770 /tmp/gitlab
            command:
            - sh
            image: busybox:latest
            imagePullPolicy: Always
            name: configure
            resources:
              requests:
                cpu: 50m
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /config-unicorn
              name: unicorn-config
              readOnly: true
            - mountPath: /config-workhorse
              name: workhorse-config
              readOnly: true
            - mountPath: /init-config
              name: init-unicorn-secrets
              readOnly: true
            - mountPath: /init-secrets
              name: unicorn-secrets
            - mountPath: /init-secrets-workhorse
              name: workhorse-secrets
            - mountPath: /tmp
              name: shared-tmp
          - args:
            - /scripts/wait-for-deps
            env:
            - name: GITALY_FEATURE_DEFAULT_ON
              value: "1"
            - name: CONFIG_TEMPLATE_DIRECTORY
              value: /var/opt/gitlab/templates
            - name: CONFIG_DIRECTORY
              value: /srv/gitlab/config
            - name: WORKHORSE_ARCHIVE_CACHE_DISABLED
              value: "1"
            image: registry.gitlab.com/gitlab-org/build/cng/gitlab-unicorn-ee:v12.4.2
            imagePullPolicy: IfNotPresent
            name: dependencies
            resources:
              requests:
                cpu: 50m
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File
            volumeMounts:
            - mountPath: /var/opt/gitlab/templates
              name: unicorn-config
            - mountPath: /etc/gitlab
              name: unicorn-secrets
              readOnly: true
          restartPolicy: Always
          schedulerName: default-scheduler
          securityContext:
            fsGroup: 1000
            runAsUser: 1000
          terminationGracePeriodSeconds: 30
          volumes:
          - emptyDir: {}
            name: shared-tmp
          - emptyDir:
              medium: Memory
            name: unicorn-metrics
          - configMap:
              defaultMode: 420
              name: gitlab-unicorn
            name: unicorn-config
          - configMap:
              defaultMode: 420
              name: gitlab-workhorse-config
            name: workhorse-config
          - name: init-unicorn-secrets
            projected:
              defaultMode: 256
              sources:
              - secret:
                  items:
                  - key: secrets.yml
                    path: rails-secrets/secrets.yml
                  name: gitlab-rails-secret
              - secret:
                  items:
                  - key: secret
                    path: shell/.gitlab_shell_secret
                  name: gitlab-gitlab-shell-secret
              - secret:
                  items:
                  - key: token
                    path: gitaly/gitaly_token
                  name: gitlab-gitaly-secret
              - secret:
                  items:
                  - key: secret
                    path: redis/password
                  name: gitlab-redis-secret
              - secret:
                  items:
                  - key: postgres-password
                    path: postgres/psql-password
                  name: gitlab-postgresql-password
              - secret:
                  items:
                  - key: registry-auth.key
                    path: registry/gitlab-registry.key
                  name: gitlab-registry-secret
              - secret:
                  items:
                  - key: shared_secret
                    path: gitlab-workhorse/secret
                  name: gitlab-gitlab-workhorse-secret
              - secret:
                  items:
                  - key: accesskey
                    path: minio/accesskey
                  - key: secretkey
                    path: minio/secretkey
                  name: gitlab-minio-secret
              - secret:
                  items:
                  - key: password
                    path: smtp/smtp-password
                  name: smtp-password
          - emptyDir:
              medium: Memory
            name: unicorn-secrets
          - emptyDir:
              medium: Memory
            name: workhorse-secrets
          - emptyDir: {}
            name: shared-upload-directory
          - emptyDir: {}
            name: shared-artifact-directory
          - emptyDir:
              medium: Memory
            name: etc-ssl-certs
    

    得了,分析了一波还是决定不动了,优化1G也算优化吧

  • 相关阅读:
    HDU 6143 Killer Names【dp递推】【好题】【思维题】【阅读题】
    HDU 6143 Killer Names【dp递推】【好题】【思维题】【阅读题】
    POJ 3974 Palindrome【manacher】【模板题】【模板】
    POJ 3974 Palindrome【manacher】【模板题】【模板】
    HDU 6127 Hard challenge【计算机几何】【思维题】
    HDU 6127 Hard challenge【计算机几何】【思维题】
    HDU 6129 Just do it【杨辉三角】【思维题】【好题】
    HDU 6129 Just do it【杨辉三角】【思维题】【好题】
    HDU 3037 Saving Beans【Lucas定理】【模板题】【模板】【组合数取余】
    8.Math 对象
  • 原文地址:https://www.cnblogs.com/zisefeizhu/p/13235725.html
Copyright © 2011-2022 走看看