Значения ниже подбирают ресурсы Helm-релиза Deckhouse Code под ожидаемое число пользователей. У каждого размера есть одиночный вариант и отказоустойчивый вариант. В одиночном варианте каждый компонент работает в одной реплике. В отказоустойчивом варианте каждый компонент работает минимум в двух репликах, Praefect — в трёх; объекты HorizontalPodAutoscaler добавляют реплики при росте нагрузки на CPU, объекты PodDisruptionBudget сохраняют поды доступными, пока узлы освобождаются от подов, а каждый из двух подов Gitaly хранит полную копию всех репозиториев (см. раздел Хранилище Git).

Значения gitlab.gitlab-pages и registry действуют после включения Pages и хранилища образов контейнеров; по умолчанию оба компонента выключены (см. разделы Хранилище образов контейнеров и Pages).

Применение значений

Сохраните выбранный вариант в файл, например scaling.yaml, и передайте его команде установки после файла значений установки. Helm объединяет файлы в порядке флагов -f; ключ, заданный в нескольких файлах, получает значение из последнего:

helm upgrade --install code oci://<CHART_REGISTRY>/code \
  --version <CHART_VERSION> \
  -n code --create-namespace \
  -f values.yaml \
  -f scaling.yaml

values.yaml — файл значений установки из раздела Быстрый старт. Та же команда меняет размер работающего релиза: поды компонентов, значения которых изменились, пересоздаются.

300 пользователей

Значения для 300 пользователей:

  • Одиночный
  • Отказоустойчивый
global:
  codeHelm:
    loadbalancer:
      resources:
        limits:
          cpu: 500m
          memory: 256Mi
        requests:
          cpu: 250m
          memory: 128Mi

gitlab:
  webservice:
    workerProcesses: 4
    puma:
      threads:
        min: 8
        max: 8
    resources:
      limits:
        memory: 7G
      requests:
        cpu: 4
        memory: 7G
  gitlab-shell:
    resources:
      limits:
        cpu: 500m
        memory: 600M
      requests:
        cpu: 10m
        memory: 24M
  gitlab-pages:
    resources:
      limits:
        cpu: 1500m
        memory: 2G
      requests:
        cpu: 900m
        memory: 1G
  gitaly:
    resources:
      limits:
        cpu: 1500m
        memory: 2Gi
      requests:
        cpu: 1500m
        memory: 2Gi
    cgroups:
      memoryBytes: 2147483648
      cpuQuotaUs: 150000
      repositories:
        memoryBytes: 1073741824
        cpuQuotaUs: 75000
  praefect:
    resources:
      limits:
        cpu: 300m
        memory: 600Mi
      requests:
        cpu: 100m
        memory: 128Mi
global:
  codeHelm:
    loadbalancer:
      replicas: 2
      resources:
        limits:
          cpu: 500m
          memory: 256Mi
        requests:
          cpu: 250m
          memory: 128Mi
      pdb:
        enabled: true
  praefect:
    virtualStorages:
      - name: default
        gitalyReplicas: 2
        maxUnavailable: 1

gitlab:
  webservice:
    workerProcesses: 3
    puma:
      threads:
        min: 8
        max: 8
    resources:
      limits:
        memory: 5500Mi
      requests:
        cpu: 3
        memory: 5500Mi
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 1
    minReplicas: 2
  sidekiq:
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 350m
    minReplicas: 2
  gitlab-shell:
    resources:
      limits:
        cpu: 500m
        memory: 600M
      requests:
        cpu: 10m
        memory: 24M
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 100m
    minReplicas: 2
  gitlab-pages:
    resources:
      limits:
        cpu: 1500m
        memory: 2G
      requests:
        cpu: 900m
        memory: 1G
    hpa:
      enabled: true
      minReplicas: 2
      cpu:
        targetAverageValue: 100m
  gitaly:
    resources:
      limits:
        cpu: 1500m
        memory: 2Gi
      requests:
        cpu: 1500m
        memory: 2Gi
    cgroups:
      memoryBytes: 2147483648
      cpuQuotaUs: 150000
      repositories:
        memoryBytes: 1073741824
        cpuQuotaUs: 75000
  praefect:
    replicas: 3
    resources:
      limits:
        cpu: 300m
        memory: 600Mi
      requests:
        cpu: 100m
        memory: 128Mi

registry:
  hpa:
    enabled: true
    minReplicas: 2
    cpu:
      targetAverageUtilization: 75

500 пользователей

Значения для 500 пользователей:

  • Одиночный
  • Отказоустойчивый
global:
  codeHelm:
    loadbalancer:
      resources:
        limits:
          cpu: 500m
          memory: 256Mi
        requests:
          cpu: 250m
          memory: 128Mi

gitlab:
  webservice:
    workerProcesses: 4
    puma:
      threads:
        min: 8
        max: 8
    resources:
      limits:
        memory: 7G
      requests:
        cpu: 4
        memory: 7G
  gitlab-shell:
    resources:
      limits:
        cpu: 500m
        memory: 600M
      requests:
        cpu: 10m
        memory: 24M
  gitlab-pages:
    resources:
      limits:
        cpu: 1500m
        memory: 2G
      requests:
        cpu: 900m
        memory: 1G
  gitaly:
    resources:
      limits:
        cpu: 1500m
        memory: 2Gi
      requests:
        cpu: 1500m
        memory: 2Gi
    cgroups:
      memoryBytes: 2147483648
      cpuQuotaUs: 150000
      repositories:
        memoryBytes: 1073741824
        cpuQuotaUs: 75000
  praefect:
    resources:
      limits:
        cpu: 300m
        memory: 600Mi
      requests:
        cpu: 100m
        memory: 128Mi
global:
  codeHelm:
    loadbalancer:
      replicas: 2
      resources:
        limits:
          cpu: 500m
          memory: 256Mi
        requests:
          cpu: 250m
          memory: 128Mi
      pdb:
        enabled: true
  praefect:
    virtualStorages:
      - name: default
        gitalyReplicas: 2
        maxUnavailable: 1

gitlab:
  webservice:
    workerProcesses: 4
    puma:
      threads:
        min: 8
        max: 8
    resources:
      limits:
        memory: 7G
      requests:
        cpu: 4
        memory: 7G
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 1
    minReplicas: 2
  sidekiq:
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 350m
    minReplicas: 2
  gitlab-shell:
    resources:
      limits:
        cpu: 500m
        memory: 600M
      requests:
        cpu: 10m
        memory: 24M
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 100m
    minReplicas: 2
  gitlab-pages:
    resources:
      limits:
        cpu: 1500m
        memory: 2G
      requests:
        cpu: 900m
        memory: 1G
    hpa:
      enabled: true
      minReplicas: 2
      cpu:
        targetAverageValue: 100m
  gitaly:
    resources:
      limits:
        cpu: 1500m
        memory: 2Gi
      requests:
        cpu: 1500m
        memory: 2Gi
    cgroups:
      memoryBytes: 2147483648
      cpuQuotaUs: 150000
      repositories:
        memoryBytes: 1073741824
        cpuQuotaUs: 75000
  praefect:
    replicas: 3
    resources:
      limits:
        cpu: 300m
        memory: 600Mi
      requests:
        cpu: 100m
        memory: 128Mi

registry:
  hpa:
    enabled: true
    minReplicas: 2
    cpu:
      targetAverageUtilization: 75

1000 пользователей

Значения для 1000 пользователей:

  • Одиночный
  • Отказоустойчивый
global:
  codeHelm:
    loadbalancer:
      resources:
        limits:
          cpu: 500m
          memory: 256Mi
        requests:
          cpu: 250m
          memory: 128Mi

gitlab:
  webservice:
    workerProcesses: 6
    puma:
      threads:
        min: 8
        max: 8
    resources:
      limits:
        memory: 10G
      requests:
        cpu: 6
        memory: 10G
  sidekiq:
    resources:
      limits:
        memory: 3G
      requests:
        cpu: 1
        memory: 1500Mi
  gitlab-shell:
    resources:
      limits:
        cpu: 500m
        memory: 600Mi
      requests:
        cpu: 32m
        memory: 50Mi
  gitlab-pages:
    resources:
      limits:
        cpu: 1500m
        memory: 2G
      requests:
        cpu: 900m
        memory: 1G
  gitaly:
    resources:
      limits:
        cpu: 2000m
        memory: 4000Mi
      requests:
        cpu: 2000m
        memory: 4000Mi
    cgroups:
      memoryBytes: 4194304000
      cpuQuotaUs: 200000
      repositories:
        memoryBytes: 2097152000
        cpuQuotaUs: 100000
  praefect:
    resources:
      limits:
        cpu: 300m
        memory: 600Mi
      requests:
        cpu: 100m
        memory: 128Mi
global:
  codeHelm:
    loadbalancer:
      replicas: 2
      resources:
        limits:
          cpu: 500m
          memory: 256Mi
        requests:
          cpu: 250m
          memory: 128Mi
      pdb:
        enabled: true
  praefect:
    virtualStorages:
      - name: default
        gitalyReplicas: 2
        maxUnavailable: 1

gitlab:
  webservice:
    workerProcesses: 5
    puma:
      threads:
        min: 8
        max: 8
    resources:
      limits:
        memory: 8500Mi
      requests:
        cpu: 5
        memory: 8500Mi
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 1200m
    minReplicas: 2
    maxReplicas: 4
    maxUnavailable: 2
  sidekiq:
    resources:
      limits:
        memory: 2G
      requests:
        cpu: 1
        memory: 1500Mi
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 600m
    minReplicas: 2
    maxReplicas: 4
    maxUnavailable: 1
  gitlab-shell:
    resources:
      limits:
        cpu: 500m
        memory: 600Mi
      requests:
        cpu: 32m
        memory: 50Mi
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 100m
    minReplicas: 2
    maxReplicas: 4
    maxUnavailable: 1
  gitlab-pages:
    resources:
      limits:
        cpu: 1500m
        memory: 2G
      requests:
        cpu: 900m
        memory: 1G
    hpa:
      enabled: true
      minReplicas: 2
      maxReplicas: 3
      cpu:
        targetAverageValue: 100m
    maxUnavailable: 1
  gitaly:
    resources:
      limits:
        cpu: 2000m
        memory: 4000Mi
      requests:
        cpu: 2000m
        memory: 4000Mi
    cgroups:
      memoryBytes: 4194304000
      cpuQuotaUs: 200000
      repositories:
        memoryBytes: 2097152000
        cpuQuotaUs: 100000
  praefect:
    replicas: 3
    resources:
      limits:
        cpu: 300m
        memory: 600Mi
      requests:
        cpu: 100m
        memory: 128Mi

registry:
  hpa:
    enabled: true
    minReplicas: 2
    maxReplicas: 3
    cpu:
      targetAverageUtilization: 75
  maxUnavailable: 2

3000 пользователей

Значения для 3000 пользователей:

  • Одиночный
  • Отказоустойчивый
global:
  codeHelm:
    loadbalancer:
      resources:
        limits:
          cpu: 1000m
          memory: 512Mi
        requests:
          cpu: 500m
          memory: 256Mi

gitlab:
  webservice:
    workerProcesses: 8
    puma:
      threads:
        min: 8
        max: 8
    resources:
      limits:
        memory: 13G
      requests:
        cpu: 8
        memory: 13G
  sidekiq:
    resources:
      limits:
        memory: 3G
      requests:
        cpu: 1
        memory: 1500Mi
  gitlab-shell:
    resources:
      limits:
        cpu: 500m
        memory: 600Mi
      requests:
        cpu: 32m
        memory: 50Mi
  gitlab-pages:
    resources:
      limits:
        memory: 3G
      requests:
        cpu: 900m
        memory: 1G
  gitaly:
    resources:
      limits:
        cpu: 6000m
        memory: 16000Mi
      requests:
        cpu: 6000m
        memory: 16000Mi
    cgroups:
      memoryBytes: 16777216000
      cpuQuotaUs: 600000
      repositories:
        memoryBytes: 8388608000
        cpuQuotaUs: 300000
  praefect:
    resources:
      limits:
        cpu: 600m
        memory: 1200Mi
global:
  codeHelm:
    loadbalancer:
      replicas: 2
      resources:
        limits:
          cpu: 1000m
          memory: 512Mi
        requests:
          cpu: 500m
          memory: 256Mi
      hpa:
        enabled: true
        minReplicas: 2
        maxReplicas: 3
        cpuUtilization: 80
        memoryUtilization: 80
      pdb:
        enabled: true
  praefect:
    virtualStorages:
      - name: default
        gitalyReplicas: 2
        maxUnavailable: 1

gitlab:
  webservice:
    workerProcesses: 6
    puma:
      threads:
        min: 8
        max: 8
    resources:
      limits:
        memory: 10G
      requests:
        cpu: 6
        memory: 10G
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 1600m
    minReplicas: 2
    maxReplicas: 4
    maxUnavailable: 2
  sidekiq:
    resources:
      limits:
        memory: 3G
      requests:
        cpu: 1
        memory: 1500Mi
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 700m
    minReplicas: 4
    maxReplicas: 8
    maxUnavailable: 1
  gitlab-shell:
    resources:
      limits:
        cpu: 500m
        memory: 600Mi
      requests:
        cpu: 32m
        memory: 50Mi
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 1600m
    minReplicas: 3
    maxReplicas: 6
    maxUnavailable: 1
  gitlab-pages:
    resources:
      limits:
        memory: 3G
      requests:
        cpu: 900m
        memory: 1G
    hpa:
      enabled: true
      minReplicas: 2
      maxReplicas: 6
      cpu:
        targetAverageValue: 100m
    maxUnavailable: 1
  gitaly:
    resources:
      limits:
        cpu: 6000m
        memory: 16000Mi
      requests:
        cpu: 6000m
        memory: 16000Mi
    cgroups:
      memoryBytes: 16777216000
      cpuQuotaUs: 600000
      repositories:
        memoryBytes: 8388608000
        cpuQuotaUs: 300000
  praefect:
    replicas: 3
    resources:
      limits:
        cpu: 600m
        memory: 1200Mi

registry:
  hpa:
    enabled: true
    minReplicas: 3
    maxReplicas: 5
    cpu:
      targetAverageUtilization: 75
  maxUnavailable: 3

5000 пользователей

Значения для 5000 пользователей:

  • Одиночный
  • Отказоустойчивый
global:
  codeHelm:
    loadbalancer:
      resources:
        limits:
          cpu: 1500m
          memory: 1Gi
        requests:
          cpu: 750m
          memory: 512Mi

gitlab:
  webservice:
    workerProcesses: 10
    puma:
      threads:
        min: 8
        max: 8
    resources:
      limits:
        memory: 16G
      requests:
        cpu: 10
        memory: 16G
  sidekiq:
    resources:
      limits:
        memory: 3G
      requests:
        cpu: 1
        memory: 1500Mi
  gitlab-shell:
    resources:
      limits:
        cpu: 384m
        memory: 250Mi
      requests:
        cpu: 32m
        memory: 50Mi
  gitlab-pages:
    resources:
      limits:
        memory: 4G
      requests:
        cpu: 900m
        memory: 2G
  gitaly:
    resources:
      limits:
        cpu: 6000m
        memory: 16000Mi
      requests:
        cpu: 6000m
        memory: 16000Mi
    cgroups:
      memoryBytes: 16777216000
      cpuQuotaUs: 600000
      repositories:
        memoryBytes: 8388608000
        cpuQuotaUs: 300000
  praefect:
    resources:
      limits:
        cpu: 600m
        memory: 1200Mi
global:
  codeHelm:
    loadbalancer:
      replicas: 3
      resources:
        limits:
          cpu: 1500m
          memory: 1Gi
        requests:
          cpu: 750m
          memory: 512Mi
      hpa:
        enabled: true
        minReplicas: 3
        maxReplicas: 4
        cpuUtilization: 80
        memoryUtilization: 80
      pdb:
        enabled: true
  praefect:
    virtualStorages:
      - name: default
        gitalyReplicas: 2
        maxUnavailable: 1

gitlab:
  webservice:
    workerProcesses: 8
    puma:
      threads:
        min: 8
        max: 8
    resources:
      limits:
        memory: 13G
      requests:
        cpu: 8
        memory: 13G
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 1600m
    minReplicas: 2
    maxReplicas: 5
    maxUnavailable: 1
  sidekiq:
    resources:
      limits:
        memory: 3G
      requests:
        cpu: 1
        memory: 1500Mi
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 700m
    minReplicas: 6
    maxReplicas: 12
    maxUnavailable: 1
  gitlab-shell:
    resources:
      limits:
        cpu: 384m
        memory: 250Mi
      requests:
        cpu: 32m
        memory: 50Mi
    hpa:
      enabled: true
      cpu:
        targetAverageValue: 100m
    minReplicas: 6
    maxReplicas: 12
    maxUnavailable: 2
  gitlab-pages:
    resources:
      limits:
        memory: 4G
      requests:
        cpu: 900m
        memory: 2G
    hpa:
      enabled: true
      minReplicas: 2
      maxReplicas: 6
      cpu:
        targetAverageValue: 100m
    maxUnavailable: 1
  gitaly:
    resources:
      limits:
        cpu: 6000m
        memory: 16000Mi
      requests:
        cpu: 6000m
        memory: 16000Mi
    cgroups:
      memoryBytes: 16777216000
      cpuQuotaUs: 600000
      repositories:
        memoryBytes: 8388608000
        cpuQuotaUs: 300000
  praefect:
    replicas: 3
    resources:
      limits:
        cpu: 600m
        memory: 1200Mi

registry:
  hpa:
    enabled: true
    minReplicas: 4
    maxReplicas: 8
    cpu:
      targetAverageUtilization: 75
  maxUnavailable: 4

Дополнительные ресурсы