- 필수 조건
- 구성
- 설치 명령줄 옵션
- 차트 구성 예제
- 이 차트의 커뮤니티 에디션 사용하기
- 전역 설정
- 배포 설정
- 인그레스 설정
- 리소스
- 외부 서비스
- 차트 설정
-
networkpolicy
구성 - KEDA 구성
GitLab Webservice 차트 사용하기
webservice
서브 차트는 GitLab Rails 웹 서버에 두 개의 Webservice 작업자를 제공하며, 이는 단일 포드가 GitLab에서 모든 웹 요청을 처리할 수 있게 하기 위한 최소 요구 사항입니다.
이 차트의 포드는 두 개의 컨테이너: gitlab-workhorse
및 webservice
를 사용합니다.
GitLab Workhorse는 포트 8181
에서 수신하며, 항상 포드로 들어오는 트래픽의 목적지가 되어야 합니다.
webservice
는 GitLab Rails 코드베이스를 보유하고 있으며, 8080
에서 수신하고 메트릭 수집을 위해 접근할 수 있습니다.
webservice
는 일반 트래픽을 직접 수신해서는 안 됩니다.
필수 조건
이 차트는 Redis, PostgreSQL, Gitaly 및 Registry 서비스에 의존하며, 이는 완전한 GitLab 차트의 일부로 제공되거나 이 차트를 배포하는 Kubernetes 클러스터에서 접근 가능한 외부 서비스로 제공됩니다.
구성
webservice
차트는 다음과 같이 구성됩니다: Global settings,
Deployments settings, Ingress settings,
External services, 그리고 Chart settings.
설치 명령줄 옵션
아래 표는 --set
플래그를 사용하여 helm install
명령에 제공할 수 있는 모든 가능한 차트 구성을 포함합니다.
매개변수 | 기본값 | 설명 |
---|---|---|
annotations |
포드 주석 | |
podLabels |
보충 포드 레이블. 선택자에는 사용되지 않습니다. | |
common.labels |
이 차트에 의해 생성된 모든 객체에 적용되는 보충 레이블. | |
deployment.terminationGracePeriodSeconds |
30 | Kubernetes가 포드가 종료될 때까지 기다리는 초, 이 값은 shutdown.blackoutSeconds 보다 길어야 합니다. |
deployment.livenessProbe.initialDelaySeconds |
20 | 생존성 프로브가 시작되기 전의 지연 |
deployment.livenessProbe.periodSeconds |
60 | 생존성 프로브를 수행하는 빈도 |
deployment.livenessProbe.timeoutSeconds |
30 | 생존성 프로브가 타임아웃될 때 |
deployment.livenessProbe.successThreshold |
1 | 생존성 프로브가 실패한 뒤 성공으로 간주되는 최소 연속 성공 수 |
deployment.livenessProbe.failureThreshold |
3 | 생존성 프로브가 성공한 뒤 실패로 간주되는 최소 연속 실패 수 |
deployment.readinessProbe.initialDelaySeconds |
0 | 준비 상태 프로브가 시작되기 전의 지연 |
deployment.readinessProbe.periodSeconds |
10 | 준비 상태 프로브를 수행하는 빈도 |
deployment.readinessProbe.timeoutSeconds |
2 | 준비 상태 프로브가 타임아웃될 때 |
deployment.readinessProbe.successThreshold |
1 | 준비 상태 프로브가 실패한 뒤 성공으로 간주되는 최소 연속 성공 수 |
deployment.readinessProbe.failureThreshold |
3 | 준비 상태 프로브가 성공한 뒤 실패로 간주되는 최소 연속 실패 수 |
deployment.strategy |
{} |
배포에 사용될 업데이트 전략을 구성할 수 있습니다. 제공되지 않을 경우, 클러스터의 기본값이 사용됩니다. |
enabled |
true |
Webservice 활성화 플래그 |
extraContainers |
포함할 추가 컨테이너 목록 | |
extraInitContainers |
포함할 추가 init 컨테이너 목록 | |
extras.google_analytics_id |
nil |
프론트엔드를 위한 Google Analytics ID |
extraVolumeMounts |
사용할 추가 볼륨 마운트 목록 | |
extraVolumes |
생성할 추가 볼륨 목록 | |
extraEnv |
노출할 추가 환경 변수 목록 | |
extraEnvFrom |
다른 데이터 소스에서 노출할 추가 환경 변수 목록 | |
gitlab.webservice.workhorse.image |
registry.gitlab.com/gitlab-org/build/cng/gitlab-workhorse-ee |
Workhorse 이미지 리포지토리 |
gitlab.webservice.workhorse.tag |
Workhorse 이미지 태그 | |
hpa.behavior |
{scaleDown: {stabilizationWindowSeconds: 300 }} |
동간섭 및 하강 동작의 사양을 포함합니다(방정식: autoscaling/v2beta2 또는 그 이상 필요) |
hpa.customMetrics |
[] |
사용자 정의 지표는 원하는 복제 수를 계산하는 데 사용할 사양을 포함합니다 (기본적으로 targetAverageUtilization 에서 구성한 평균 CPU 사용률 사용 오버라이드) |
hpa.cpu.targetType |
AverageValue |
자동 확장 CPU 목표 유형을 설정하며, Utilization 또는 AverageValue 이어야 합니다. |
hpa.cpu.targetAverageValue |
1 |
자동 확장 CPU 목표 값을 설정합니다. |
hpa.cpu.targetAverageUtilization |
자동 확장 CPU 목표 활용도를 설정합니다. | |
hpa.memory.targetType |
자동 확장 메모리 목표 유형을 설정합니다. Utilization 또는 AverageValue 이어야 합니다. |
|
hpa.memory.targetAverageValue |
자동 확장 메모리 목표 값을 설정합니다. | |
hpa.memory.targetAverageUtilization |
자동 확장 메모리 목표 활용도를 설정합니다. | |
hpa.targetAverageValue |
DEPRECATED 자동 확장 CPU 목표 값을 설정합니다. | |
sshHostKeys.mount |
false |
GitLab Shell 비공개 SSH 키를 포함하는 비공식 공개 키를 마운트할지 여부. |
sshHostKeys.mountName |
ssh-host-keys |
마운트된 볼륨의 이름. |
sshHostKeys.types |
[dsa,rsa,ecdsa,ed25519] |
마운트할 SSH 키 유형 목록. |
image.pullPolicy |
Always |
Webservice 이미지 풀 정책 |
image.pullSecrets |
이미지 리포지토리를 위한 비밀 | |
image.repository |
registry.gitlab.com/gitlab-org/build/cng/gitlab-webservice-ee |
Webservice 이미지 리포지토리 |
image.tag |
Webservice 이미지 태그 | |
init.image.repository |
initContainer 이미지 | |
init.image.tag |
initContainer 이미지 태그 | |
init.containerSecurityContext.runAsUser |
1000 |
initContainer 특정: 컨테이너가 시작될 사용자 ID |
init.containerSecurityContext.allowPrivilegeEscalation |
false |
initContainer 특정: 프로세스가 부모 프로세스보다 더 많은 권한을 얻을 수 있는지 여부를 제어합니다. |
init.containerSecurityContext.runAsNonRoot |
true |
initContainer 특정: 컨테이너가 비루트 사용자로 실행될지 여부를 제어합니다. |
init.containerSecurityContext.capabilities.drop |
[ "ALL" ] |
initContainer 특정: 컨테이너에 대한 Linux capabilities를 제거합니다. |
keda.enabled |
false |
KEDA ScaledObjects 를 사용하여 HorizontalPodAutoscalers 대신 사용합니다. |
keda.pollingInterval |
30 |
각 트리거를 확인하는 간격 |
keda.cooldownPeriod |
300 |
마지막 트리거가 활성 상태로 보고된 후 리소스를 다시 0으로 축소하기 전에 기다릴 기간 |
keda.minReplicaCount |
KEDA가 리소스를 축소할 최소 복제 수, 기본값은 minReplicas
|
|
keda.maxReplicaCount |
KEDA가 리소스를 늘릴 최대 복제 수, 기본값은 maxReplicas
|
|
keda.fallback |
KEDA 폴백 구성, 문서를 참조하세요. | |
keda.hpaName |
KEDA가 생성할 HPA 리소스의 이름, 기본값은 keda-hpa-{scaled-object-name}
|
|
keda.restoreToOriginalReplicaCount |
ScaledObject 가 삭제된 후 대상 리소스를 원래 복제 수로 다시 축소해야 하는지 여부를 지정합니다. |
|
keda.behavior |
업 및 다운 스케일링 동작의 사양, 기본값은 hpa.behavior
|
|
keda.triggers |
대상 리소스를 축소하는 트리거 목록, 기본값은 hpa.cpu 및 hpa.memory 에서 계산된 트리거입니다. |
|
metrics.enabled |
true |
메트릭 엔드포인트가 스크래핑을 위해 제공되어야 하는지 여부 |
metrics.port |
8083 |
메트릭 엔드포인트 포트 |
metrics.path |
/metrics |
메트릭 엔드포인트 경로 |
metrics.serviceMonitor.enabled |
false |
ServiceMonitor를 생성하여 Prometheus Operator가 메트릭 스크래핑을 관리할 수 있게 하기로 설정된 경우, 이를 활성화하면 prometheus.io 스크래핑 주석이 제거됩니다. |
metrics.serviceMonitor.additionalLabels |
{} |
ServiceMonitor에 추가할 추가 레이블 |
metrics.serviceMonitor.endpointConfig |
{} |
ServiceMonitor에 대한 추가 엔드포인트 구성 |
metrics.annotations |
DEPRECATED 명시적 메트릭 주석을 설정합니다. 템플릿 콘텐츠로 대체됨. | |
metrics.tls.enabled |
메트릭/web_exporter 엔드포인트에 대한 TLS가 활성화됩니다. 기본값은 tls.enabled . |
|
metrics.tls.secretName |
메트릭/web_exporter 엔드포인트 TLS 인증서와 키를 포함한 비밀. 기본값은 tls.secretName . |
|
minio.bucket |
git-lfs |
MinIO를 사용할 때의 스토리지 버킷 이름 |
minio.port |
9000 |
MinIO 서비스의 포트 |
minio.serviceName |
minio-svc |
MinIO 서비스의 이름 |
monitoring.ipWhitelist |
[0.0.0.0/0] |
모니터링 엔드포인트에 대한 허용된 IP 목록 |
monitoring.exporter.enabled |
false |
웹 서버가 Prometheus 메트릭을 노출할 수 있게 설정하며, 메트릭 포트가 모니터링 내보내기 포트로 설정된 경우 이를 재정의합니다. |
monitoring.exporter.port |
8083 |
메트릭 내보내기를 위해 사용할 포트 번호 |
psql.password.key |
psql-password |
psql 비밀번호를 얻을 psql 비밀의 키 |
psql.password.secret |
gitlab-postgres |
psql 비밀 이름 |
psql.port |
PostgreSQL 서버 포트를 설정합니다. global.psql.port 보다 우선합니다. |
|
puma.disableWorkerKiller |
true |
Puma 작업자 메모리 킬러 비활성화 |
puma.workerMaxMemory |
Puma 작업자 킬러를 위한 최대 메모리(메가바이트 단위) | |
puma.threads.min |
4 |
Puma 스레드의 최소 수 |
puma.threads.max |
4 |
Puma 스레드의 최대 수 |
rack_attack.git_basic_auth |
{} |
자세한 내용을 보려면 GitLab 문서를 참조하세요. |
redis.serviceName |
redis |
Redis 서비스 이름 |
global.registry.api.port |
5000 |
레지스트리 포트 |
global.registry.api.protocol |
http |
레지스트리 프로토콜 |
global.registry.api.serviceName |
registry |
레지스트리 서비스 이름 |
global.registry.enabled |
true |
모든 프로젝트 메뉴에서 레지스트리 링크를 추가/제거합니다. |
global.registry.tokenIssuer |
gitlab-issuer |
레지스트리 토큰 발급자 |
replicaCount |
1 |
Webservice 복제 수 |
resources.requests.cpu |
300m |
Webservice 최소 CPU |
resources.requests.memory |
1.5G |
Webservice 최소 메모리 |
service.externalPort |
8080 |
노출된 Webservice 포트 |
securityContext.fsGroup |
1000 |
포드가 시작될 그룹 ID |
securityContext.runAsUser |
1000 |
포드가 시작될 사용자 ID |
securityContext.fsGroupChangePolicy |
볼륨의 소유권과 권한 변경 정책(1.23 이상의 Kubernetes 요구됨) | |
securityContext.seccompProfile.type |
RuntimeDefault |
사용되는 Seccomp 프로필 |
containerSecurityContext |
컨테이너가 시작될 때 사용할 securityContext를 재정의합니다. | |
containerSecurityContext.runAsUser |
1000 |
컨테이너가 시작될 특정 보안 컨텍스트 사용자 ID를 재정의할 수 있습니다. |
containerSecurityContext.allowPrivilegeEscalation |
false |
Gitaly 컨테이너의 프로세스가 부모 프로세스보다 더 많은 권한을 얻을 수 있는지 여부를 제어합니다. |
containerSecurityContext.runAsNonRoot |
true |
Gitaly 컨테이너가 비루트 사용자로 실행되는지 여부를 제어합니다. |
containerSecurityContext.capabilities.drop |
[ "ALL" ] |
Gitaly 컨테이너에 대한 Linux capabilities를 제거합니다. |
serviceAccount.automountServiceAccountToken |
false |
기본 서비스 계정 액세스 토큰이 포드에 마운트되어야 하는지 여부를 나타냅니다. |
serviceAccount.create |
false |
서비스 계정을 생성할지 여부를 나타냅니다. |
serviceAccount.enabled |
false |
서비스 계정을 사용할지 여부를 나타냅니다. |
serviceAccount.name |
서비스 계정의 이름. 설정되지 않은 경우 전체 차트 이름이 사용됩니다. | |
serviceLabels |
{} |
보충 서비스 레이블 |
service.internalPort |
8080 |
Webservice 내부 포트 |
service.type |
ClusterIP |
Webservice 서비스 유형 |
service.workhorseExternalPort |
8181 |
Workhorse 노출 포트 |
service.workhorseInternalPort |
8181 |
Workhorse 내부 포트 |
service.loadBalancerIP |
LoadBalancer에 할당할 IP 주소(클라우드 공급자가 지원하는 경우) | |
service.loadBalancerSourceRanges |
LoadBalancer에 허용된 IP CIDR 목록(클라우드 공급자가 지원하는 경우) 서비스 유형 = LoadBalancer에 필수 | |
shell.authToken.key |
secret |
셸 비밀의 셸 토큰에 대한 키 |
shell.authToken.secret |
{Release.Name}-gitlab-shell-secret |
셸 토큰 비밀 |
shell.port |
nil |
UI에서 생성된 SSH URL에 사용할 포트 번호 |
shutdown.blackoutSeconds |
10 |
종료 수신 후 Webservice를 실행 중으로 유지하기 위한 초 수, 이 값은 deployment.terminationGracePeriodSeconds 보다 짧아야 합니다. |
tls.enabled |
false |
Webservice TLS 활성화 |
tls.secretName |
{Release.Name}-webservice-tls |
Webservice TLS 비밀. secretName 은 Kubernetes TLS 비밀을 가리켜야 합니다. |
tolerations |
[] |
포드 할당을 위한 내성 라벨 |
trusted_proxies |
[] |
자세한 내용을 보려면 GitLab 문서를 참조하세요. |
workhorse.logFormat |
json |
로깅 포맷. 유효한 포맷: json , structured , text
|
workerProcesses |
2 |
Webservice 작업자 수 |
workhorse.keywatcher |
true |
Redis에 대해 Workhorse를 구독합니다. 이는 /api/* 에 대한 요청을 서비스하는 모든 배포에 필수이며, 다른 배포에는 안전하게 비활성화할 수 있습니다. |
workhorse.shutdownTimeout |
global.webservice.workerTimeout + 1 (초) |
Workhorse에서 모든 웹 요청이 처리되기를 기다리는 시간. 예: 1min , 65s . |
workhorse.trustedCIDRsForPropagation |
상관 관계 ID 전파를 위해 신뢰할 수 있는 CIDR 블록의 목록. 이 기능이 작동하려면 workhorse.extraArgs 에서 -propagateCorrelationID 옵션도 사용해야 합니다. 자세한 내용은 Workhorse 문서를 참조하세요. |
|
workhorse.trustedCIDRsForXForwardedFor |
실제 클라이언트 IP를 X-Forwarded-For HTTP 헤더를 통해 확인하는 데 사용할 수 있는 신뢰할 수 있는 CIDR 블록의 목록. 이는 workhorse.trustedCIDRsForPropagation 와 함께 사용됩니다. 자세한 내용은 Workhorse 문서를 참조하세요. |
|
workhorse.containerSecurityContext |
컨테이너가 시작될 때 사용할 securityContext를 재정의합니다. | |
workhorse.containerSecurityContext.runAsUser |
1000 |
컨테이너가 시작될 사용자 ID |
workhorse.containerSecurityContext.allowPrivilegeEscalation |
false |
컨테이너의 프로세스가 부모 프로세스보다 더 많은 권한을 얻을 수 있는지 여부를 제어합니다. |
workhorse.containerSecurityContext.runAsNonRoot |
true |
컨테이너가 비루트 사용자로 실행되는지 여부를 제어합니다. |
workhorse.containerSecurityContext.capabilities.drop |
[ "ALL" ] |
Gitaly 컨테이너에 대한 Linux capabilities를 제거합니다. |
workhorse.livenessProbe.initialDelaySeconds |
20 | 생존성 프로브가 시작되기 전의 지연 |
workhorse.livenessProbe.periodSeconds |
60 | 생존성 프로브를 수행하는 빈도 |
workhorse.livenessProbe.timeoutSeconds |
30 | 생존성 프로브가 타임아웃될 때 |
workhorse.livenessProbe.successThreshold |
1 | 생존성 프로브가 실패한 뒤 성공으로 간주되는 최소 연속 성공 수 |
workhorse.livenessProbe.failureThreshold |
3 | 생존성 프로브가 성공한 뒤 실패로 간주되는 최소 연속 실패 수 |
workhorse.monitoring.exporter.enabled |
false |
Workhorse가 Prometheus 메트릭을 노출할 수 있게 설정하며, 이는 workhorse.metrics.enabled 로 재정의됩니다. |
workhorse.monitoring.exporter.port |
9229 |
Workhorse Prometheus 메트릭을 위해 사용할 포트 번호 |
workhorse.monitoring.exporter.tls.enabled |
false |
true 로 설정되면 메트릭 엔드포인트에서 TLS를 활성화합니다. 이는 Workhorse에 대해 TLS가 활성화되어야 합니다. |
workhorse.metrics.enabled |
true |
Workhorse 메트릭 엔드포인트가 스크래핑을 위해 제공되어야 하는지 여부 |
workhorse.metrics.port |
8083 |
Workhorse 메트릭 엔드포인트 포트 |
workhorse.metrics.path |
/metrics |
Workhorse 메트릭 엔드포인트 경로 |
workhorse.metrics.serviceMonitor.enabled |
false |
ServiceMonitor를 생성하여 Prometheus Operator가 Workhorse 메트릭 스크래핑을 관리할 수 있게 하기로 설정된 경우, 이를 활성화하면 prometheus.io 스크래핑 주석이 제거됩니다. |
workhorse.metrics.serviceMonitor.additionalLabels |
{} |
Workhorse ServiceMonitor에 추가할 추가 레이블 |
workhorse.metrics.serviceMonitor.endpointConfig |
{} |
Workhorse ServiceMonitor에 대한 추가 엔드포인트 구성 |
workhorse.readinessProbe.initialDelaySeconds |
0 | 준비 상태 프로브가 시작되기 전의 지연 |
workhorse.readinessProbe.periodSeconds |
10 | 준비 상태 프로브를 수행하는 빈도 |
workhorse.readinessProbe.timeoutSeconds |
2 | 준비 상태 프로브가 타임아웃될 때 |
workhorse.readinessProbe.successThreshold |
1 | 준비 상태 프로브가 실패한 뒤 성공으로 간주되는 최소 연속 성공 수 |
workhorse.readinessProbe.failureThreshold |
3 | 준비 상태 프로브가 성공한 뒤 실패로 간주되는 최소 연속 실패 수 |
workhorse.imageScaler.maxProcs |
2 | 동시에 실행될 수 있는 이미지 스케일링 프로세스의 최대 수 |
workhorse.imageScaler.maxFileSizeBytes |
250000 | 스케일러가 처리할 이미지의 최대 파일 크기(바이트 단위) |
workhorse.tls.verify |
true |
true 로 설정되면 NGINX Ingress가 Workhorse의 TLS 인증서를 검증하도록 강제합니다. 사용자 CA에 대해 workhorse.tls.caSecretName 도 설정해야 합니다. self-signed 인증서에 대해 false 로 설정해야 합니다. |
workhorse.tls.secretName |
{Release.Name}-workhorse-tls |
TLS 키와 인증서 쌍을 포함하는 TLS Secret의 이름입니다. Workhorse TLS가 활성화될 때 필요합니다. |
workhorse.tls.caSecretName |
CA 인증서를 포함하는 비밀의 이름. 이는 TLS Secret가 아니며, ca.crt 키만 포함해야 합니다. 이는 NGINX에 의해 TLS 검증에 사용됩니다. |
|
webServer |
puma |
요청 처리를 위해 사용될 웹 서버(Webservice/Puma)를 선택합니다. |
priorityClassName |
"" |
포드의 priorityClassName 을 구성할 수 있게 하여, 퇴출 시 포드 우선 순위를 제어하는 데 사용됩니다. |
차트 구성 예제
extraEnv
extraEnv
는 모든 컨테이너에서 추가 환경 변수를 노출할 수 있도록 합니다.
다음은 extraEnv
의 예제 사용법입니다:
extraEnv:
SOME_KEY: some_value
SOME_OTHER_KEY: some_other_value
컨테이너가 시작되면 환경 변수가 노출되었는지 확인할 수 있습니다:
env | grep SOME
SOME_KEY=some_value
SOME_OTHER_KEY=some_other_value
extraEnvFrom
extraEnvFrom
은 다른 데이터 소스에서 모든 컨테이너에 추가 환경 변수를 노출할 수 있도록 합니다.
후속 변수는 각 deployment마다 덮어 쓸 수 있습니다.
다음은 extraEnvFrom
의 예제 사용법입니다:
extraEnvFrom:
MY_NODE_NAME:
fieldRef:
fieldPath: spec.nodeName
MY_CPU_REQUEST:
resourceFieldRef:
containerName: test-container
resource: requests.cpu
SECRET_THING:
secretKeyRef:
name: special-secret
key: special_token
# 선택 사항: boolean
deployments:
default:
extraEnvFrom:
CONFIG_STRING:
configMapKeyRef:
name: useful-config
key: some-string
# 선택 사항: boolean
image.pullSecrets
pullSecrets
는 개인 레지스트리에 인증하여 파드의 이미지를 가져올 수 있도록 합니다.
개인 레지스트리 및 해당 인증 방법에 대한 추가 세부 정보는 Kubernetes 문서를 참조하세요.
다음은 pullSecrets
의 예제 사용법입니다:
image:
repository: my.webservice.repository
pullPolicy: Always
pullSecrets:
- name: my-secret-name
- name: my-secondary-secret-name
serviceAccount
이 섹션은 ServiceAccount를 생성할지 여부와 기본 액세스 토큰을 파드에 마운트할지 여부를 제어합니다.
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
annotations |
맵 | {} |
ServiceAccount 주석. |
automountServiceAccountToken |
부울 | false |
기본 ServiceAccount 액세스 토큰이 파드에 마운트될지 여부를 제어합니다. 특정 사이드카가 제대로 작동하는 데 필요하지 않으면 활성화하지 않아야 합니다 (예: Istio). |
create |
부울 | false |
ServiceAccount를 생성할지 여부를 나타냅니다. |
enabled |
부울 | false |
ServiceAccount를 사용할지 여부를 나타냅니다. |
name |
문자열 | ServiceAccount의 이름입니다. 설정하지 않으면 전체 차트 이름이 사용됩니다. |
tolerations
tolerations
는 오염된 워커 노드에서 파드를 예약할 수 있게 합니다.
다음은 tolerations
의 예제 사용법입니다:
tolerations:
- key: "node_label"
operator: "Equal"
value: "true"
effect: "NoSchedule"
- key: "node_label"
operator: "Equal"
value: "true"
effect: "NoExecute"
annotations
annotations
는 Webservice 파드에 주석을 추가할 수 있게 합니다. 예를 들어:
annotations:
kubernetes.io/example-annotation: annotation-value
strategy
deployment.strategy
는 배포 업데이트 전략을 변경할 수 있게 합니다. 이는 배포가 업데이트될 때 파드가 어떻게 재생성될지를 정의합니다. 제공되지 않는 경우 클러스터 기본값이 사용됩니다.
예를 들어, 롤링 업데이트가 시작될 때 추가 파드를 생성하지 않으려면 max unavailable pods를 50%로 변경하세요:
deployment:
strategy:
rollingUpdate:
maxSurge: 0
maxUnavailable: 50%
업데이트 전략의 유형을 Recreate
로 변경할 수도 있지만, 이 경우 모든 파드를 제외한 후 새로운 파드를 예약할 것이므로 주의해야 하며, 새로운 파드가 시작될 때까지 웹 UI를 사용할 수 없습니다. 이 경우 rollingUpdate
를 정의할 필요는 없으며, type
만 정의하면 됩니다:
deployment:
strategy:
type: Recreate
자세한 내용은 Kubernetes 문서를 참조하세요.
TLS
Webservice 포드는 두 개의 컨테이너를 실행합니다:
gitlab-workhorse
webservice
gitlab-workhorse
Workhorse는 웹 및 메트릭 엔드포인트 모두에 대해 TLS를 지원합니다. 이는 Workhorse와 다른 구성 요소 간의 통신을 보호하며, 특히 nginx-ingress
, gitlab-shell
및 gitaly
와의 통신입니다. TLS 인증서는 Common Name (CN) 또는 Subject Alternate Name (SAN)에서 Workhorse 서비스 호스트 이름(예: RELEASE-webservice-default.default.svc
)을 포함해야 합니다.
여러 Webservice 배포가 존재할 수 있으므로, 다양한 서비스 이름에 대한 TLS 인증서를 준비해야 합니다. 이는 여러 개의 SAN 또는 와일드카드 인증서를 통해 달성할 수 있습니다.
TLS 인증서가 생성되면, 이를 위해 Kubernetes TLS 비밀을 생성합니다. 또한 ca.crt
키가 있는 TLS 인증서의 CA 인증서만 포함된 다른 비밀을 생성해야 합니다.
gitlab-workhorse
컨테이너에 대해 TLS를 활성화하려면 global.workhorse.tls.enabled
를 true
로 설정합니다. 사용자 지정 비밀 이름을 gitlab.webservice.workhorse.tls.secretName
및 global.certificates.customCAs
에 맞게 전달할 수 있습니다.
gitlab.webservice.workhorse.tls.verify
가 true
일 때(기본값으로 해당) CA 인증서 비밀 이름을 gitlab.webservice.workhorse.tls.caSecretName
에 전달해야 합니다. 이는 자체 서명된 인증서 및 사용자 지정 CA에 필요합니다. 이 비밀은 NGINX가 Workhorse의 TLS 인증서를 검증하는 데 사용됩니다.
global:
workhorse:
tls:
enabled: true
certificates:
customCAs:
- secret: gitlab-workhorse-ca
gitlab:
webservice:
workhorse:
tls:
verify: true
# secretName: gitlab-workhorse-tls
caSecretName: gitlab-workhorse-ca
monitoring:
exporter:
enabled: true
tls:
enabled: true
gitlab-workhorse
컨테이너의 메트릭 엔드포인트에서의 TLS는 global.workhorse.tls.enabled
에서 상속됩니다. 메트릭 엔드포인트의 TLS는 Workhorse에 대해 TLS가 활성화되어 있을 때만 사용할 수 있습니다. 메트릭 리스너는 gitlab.webservice.workhorse.tls.secretName
에 의해 지정된 동일한 TLS 인증서를 사용합니다.
메트릭 엔드포인트에 사용되는 TLS 인증서는 포함된 주체 대체 이름(SAN)에 대해 추가 고려 사항이 필요할 수 있습니다. 특히 포함된 Prometheus Helm 차트를 사용할 경우 말입니다. 자세한 내용은 TLS가 활성화된 엔드포인트를 스크랩하도록 Prometheus 구성하기를 참조하세요.
webservice
TLS를 활성화하는 주요 사용 사례는 Prometheus 메트릭 스크랩을 위해 HTTPS를 통한 암호화를 제공하는 것입니다.
Prometheus가 HTTPS를 사용하여 /metrics/
엔드포인트를 스크랩하려면 인증서의 CommonName
속성 또는 SubjectAlternativeName
항목에 대한 추가 구성이 필요합니다. 이에 대한 요구 사항은 TLS가 활성화된 엔드포인트를 스크랩하도록 Prometheus 구성하기를 참조하세요.
webservice
컨테이너에서 TLS는 gitlab.webservice.tls.enabled
설정으로 활성화할 수 있습니다:
gitlab:
webservice:
tls:
enabled: true
# secretName: gitlab-webservice-tls
secretName
은 Kubernetes TLS 비밀을 가리켜야 합니다. 예를 들어, 로컬 인증서와 키로 TLS 비밀을 생성하는 방법은 다음과 같습니다:
kubectl create secret tls <secret name> --cert=path/to/puma.crt --key=path/to/puma.key
이 차트의 커뮤니티 에디션 사용하기
기본적으로 Helm 차트는 GitLab의 엔터프라이즈 에디션을 사용합니다. 필요한 경우, 커뮤니티 에디션을 대신 사용할 수 있습니다. 두 에디션 간의 차이점에 대해 알아보세요.
커뮤니티 에디션을 사용하려면 image.repository
를
registry.gitlab.com/gitlab-org/build/cng/gitlab-webservice-ce
로 설정하고 workhorse.image
를
registry.gitlab.com/gitlab-org/build/cng/gitlab-workhorse-ce
로 설정하세요.
전역 설정
우리는 차트 간에 몇 가지 공통 전역 설정을 공유합니다. GitLab 및 레지스트리 호스트 이름과 같은 공통 구성 옵션에 대해서는 Globals Documentation를 참조하세요.
배포 설정
이 차트는 여러 Deployment 객체와 관련 리소스를 생성할 수 있는 기능을 제공합니다. 이 기능은 GitLab 애플리케이션에 대한 요청을 경로 기반 라우팅을 사용하여 여러 세트의 Pod 사이에 분배할 수 있게 합니다.
이 맵의 키(default
예제) 각각에 대한 “이름”입니다. default
는 RELEASE-webservice-default
로 생성된 Deployment, Service, HorizontalPodAutoscaler, PodDisruptionBudget 및 선택적 Ingress를 가집니다.
제공되지 않은 속성은 gitlab-webservice
차트 기본값을 상속받습니다.
deployments:
default:
ingress:
path: # 상속받지 않거나 기본값 없음. 비워두면 Ingress가 비활성화됩니다.
pathType: Prefix
provider: nginx
annotations:
# `ingress.anntoations` 상속
proxyConnectTimeout: # `ingress.proxyConnectTimeout` 상속
proxyReadTimeout: # `ingress.proxyReadTimeout` 상속
proxyBodySize: # `ingress.proxyBodySize` 상속
deployment:
annotations: # 맵
labels: # 맵
# `deployment` 상속
pod:
labels: # 추가 라벨들 .podLabels
annotations: # 맵
# .Values.annotations에서 상속
service:
labels: # 추가 라벨들 .serviceLabels
annotations: # 추가 주석들 .service.annotations
# `service.annotations` 상속
hpa:
minReplicas: # 기본값은 .minReplicas
maxReplicas: # 기본값은 .maxReplicas
metrics: # 선택적 HPA 지표 정의 대체
# `hpa` 상속
pdb:
maxUnavailable: # `maxUnavailable` 상속
resources: # `webservice` 컨테이너에 대한 `resources`
# `resources` 상속
workhorse: # 맵
# `workhorse` 상속
extraEnv: #
# `extraEnv` 상속
extraEnvFrom: #
# `extraEnvFrom` 상속
puma: # 맵
# `puma` 상속
workerProcesses: # `workerProcesses` 상속
shutdown:
# `shutdown` 상속
nodeSelector: # 맵
# `nodeSelector` 상속
tolerations: # 배열
# `tolerations` 상속
배포 Ingress
각 deployments
항목은 차트 전체 Ingress 설정에서 상속받습니다. 여기에서 제공된 모든 값은 거기에서 제공된 값을 재정의합니다. path
를 제외하고 모든 설정은 동일합니다.
webservice:
deployments:
default:
ingress:
path: /
api:
ingress:
path: /api
path
속성은 Ingress의 path
속성에 직접 채워지며, 각 서비스로 전달되는 URI 경로를 제어할 수 있습니다. 위의 예에서, default
는 모든 경로를 포함하는 역할을 하고, api
는 /api
아래의 모든 트래픽을 수신합니다.
주어진 Deployment가 관련 Ingress 리소스를 생성하지 않도록 하려면 path
를 비워주세요. 아래에서 internal-api
는 외부 트래픽을 수신하지 않을 것입니다.
webservice:
deployments:
default:
ingress:
path: /
api:
ingress:
path: /api
internal-api:
ingress:
path:
인그레스 설정
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
ingress.apiVersion |
문자열 |
apiVersion 필드에 사용할 값입니다. |
|
ingress.annotations |
맵 | 아래 참조 | 이러한 주석은 모든 인그레스에 사용됩니다. 예: ingress.annotations."nginx\.ingress\.kubernetes\.io/enable-access-log"=true . |
ingress.configureCertmanager |
불리언 | 인그레스 주석 cert-manager.io/issuer 와 acme.cert-manager.io/http01-edit-in-place 를 토글합니다. 자세한 내용은 GitLab Pages의 TLS 요구 사항을 참조하세요. |
|
ingress.enabled |
불리언 | false |
서비스를 위한 인그레스 객체 생성을 제어하는 설정입니다. false 로 설정하면 global.ingress.enabled 설정 값이 사용됩니다. |
ingress.proxyBodySize |
문자열 | 512m |
아래 참조. |
ingress.tls.enabled |
불리언 | true |
false 로 설정하면 GitLab 웹서비스에 대한 TLS를 비활성화합니다. 이는 인그레스 수준에서 TLS 종료를 사용할 수 없는 경우에 유용합니다. 예를 들어, 인그레스 컨트롤러 전에 TLS 종료 프록시가 있을 경우입니다. |
ingress.tls.secretName |
문자열 | (비어 있음) | GitLab URL에 대한 유효한 인증서와 키가 포함된 Kubernetes TLS 비밀의 이름입니다. 설정되지 않으면 global.ingress.tls.secretName 값이 대신 사용됩니다. |
ingress.tls.smardcardSecretName |
문자열 | (비어 있음) | 활성화된 경우 GitLab 스마트카드 URL에 대한 유효한 인증서 및 키가 포함된 Kubernetes TLS 비밀의 이름입니다. 설정되지 않으면 global.ingress.tls.secretName 값이 대신 사용됩니다. |
ingress.tls.useGeoClass |
불리언 | false | Geo Ingress 클래스(global.geo.ingressClass )로 인그레스 클래스를 재정의합니다. 주요 Geo 사이트에 필요합니다. |
주석
annotations
는 웹서비스 인그레스에 대한 주석을 설정하는 데 사용됩니다.
기본적으로 하나의 주석을 설정합니다: nginx.ingress.kubernetes.io/service-upstream: "true"
.
이 설정은 NGINX에게 서비스 자체를 업스트림으로 직접 연락하도록 지시하여 웹서비스 포드에 대한 트래픽을 더 고르게 분산하는 데 도움을 줍니다. 자세한 내용은 NGINX 문서를 참조하세요.
이를 재정의하려면 다음을 설정하십시오:
gitlab:
webservice:
ingress:
annotations:
nginx.ingress.kubernetes.io/service-upstream: "false"
proxyBodySize
proxyBodySize
는 NGINX 프록시 최대 본문 크기를 설정하는 데 사용됩니다. 이는 일반적으로 기본값보다 큰 Docker 이미지를 허용하기 위해 필요합니다.
이는 리눅스 패키지 설치에서 nginx['client_max_body_size']
구성과 같습니다. 대안으로, 본문 크기를 다음 두 매개변수 중 하나로 설정할 수 있습니다:
gitlab.webservice.ingress.annotations."nginx\.ingress\.kubernetes\.io/proxy-body-size"
global.ingress.annotations."nginx\.ingress\.kubernetes\.io/proxy-body-size"
추가 Ingress
extraIngress.enabled=true
로 설정하여 추가 Ingress를 배포할 수 있습니다. Ingress는 기본 Ingress와 같은 이름에 -extra
접미사가 추가되며 기본 Ingress와 동일한 설정을 지원합니다.
리소스
메모리 요청/제한
각 팟은 workerProcesses
와 동일한 수의 작업자를 생성하며, 각 작업자는 기본 메모리 양을 사용합니다. 우리는 다음을 권장합니다:
- 작업자당 최소 1.25GB (
requests.memory
) - 작업자당 최대 1.5GB, 기본 작업자에 대해 1GB 추가 (
limits.memory
)
필요한 리소스는 사용자에 의해 생성된 워크로드에 따라 달라지며, GitLab 애플리케이션의 변경이나 업그레이드에 따라 향후 변경될 수 있습니다.
기본값:
workerProcesses: 2
resources:
requests:
memory: 2.5G # = 2 * 1.25G
# limits:
# memory: 4G # = (2 * 1.5G) + 950M
작업자를 4개로 구성한 경우:
workerProcesses: 4
resources:
requests:
memory: 5G # = 4 * 1.25G
# limits:
# memory: 7G # = (4 * 1.5G) + 950M
외부 서비스
Redis
Redis 문서는 globals 페이지에 통합되었습니다. 최신 Redis 구성 옵션은 이 페이지를 참조하십시오.
PostgreSQL
PostgreSQL 문서는 globals 페이지에 통합되었습니다. 최신 PostgreSQL 구성 옵션은 이 페이지를 참조하십시오.
Gitaly
Gitaly는 global settings로 구성됩니다. Gitaly 구성 문서를 참조하십시오.
MinIO
minio:
serviceName: 'minio-svc'
port: 9000
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
port |
정수 | 9000 |
MinIO Service 에 도달하기 위한 포트 번호. |
serviceName |
문자열 | minio-svc |
MinIO 팟에 의해 노출된 Service 의 이름. |
레지스트리
registry:
host: registry.example.com
port: 443
api:
protocol: http
host: registry.example.com
serviceName: registry
port: 5000
tokenIssuer: gitlab-issuer
certificate:
secret: gitlab-registry
key: registry-auth.key
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
api.host |
문자열 | 사용할 레지스트리 서버의 호스트 이름입니다. 이는 api.serviceName 대신 생략할 수 있습니다. |
|
api.port |
정수 | 5000 |
레지스트리 API에 연결하는 포트입니다. |
api.protocol |
문자열 | 웹 서비스가 레지스트리 API에 도달하기 위해 사용할 프로토콜입니다. | |
api.serviceName |
문자열 | registry |
레지스트리 서버를 운영하는 service 의 이름입니다. 이것이 존재하고 api.host 가 없는 경우, 차트는 서비스 (및 현재 .Release.Name )의 호스트 이름을 api.host 값 대신 템플릿화합니다. 이는 레지스트리를 전체 GitLab 차트의 일부로 사용할 때 유용합니다. |
certificate.key |
문자열 |
registry 컨테이너에 auth.token.rootcertbundle 로 제공될 인증서 번들을 보유하고 있는 Secret 의 key 입니다. |
|
certificate.secret |
문자열 | GitLab 인스턴스에서 생성된 토큰을 확인하는 데 사용될 인증서 번들을 보유하고 있는 Kubernetes Secret의 이름입니다. | |
host |
문자열 | GitLab UI에서 사용자에게 Docker 명령을 제공하기 위해 사용할 외부 호스트 이름입니다. 이는 registry.hostname 템플릿에서 설정된 값으로 되돌아갑니다. 이는 global.hosts 에 설정된 값을 기반으로 레지스트리 호스트 이름을 결정합니다. Globals Documentation에서 자세한 내용을 확인하십시오. |
|
port |
정수 | 호스트 이름에서 사용되는 외부 포트입니다. 포트 80 또는 443 을 사용하면 URL이 http /https 로 형성됩니다. 다른 포트를 사용하면 모두 http 를 사용하고 포트를 호스트 이름 끝에 추가합니다. 예를 들어 http://registry.example.com:8443 와 같이 됩니다. |
|
tokenIssuer |
문자열 | gitlab-issuer |
인증 토큰 발행자의 이름입니다. 이는 레지스트리의 구성에서 사용된 이름과 일치해야 하며, 이는 토큰에 통합되어 전송될 때 사용됩니다. 기본값인 gitlab-issuer 는 레지스트리 차트에서 사용하는 동일한 기본값입니다. |
차트 설정
다음 값들은 Webservice Pods 구성을 위해 사용됩니다.
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
replicaCount |
Integer | 1 |
배포에서 생성할 Webservice 인스턴스의 수입니다. |
workerProcesses |
Integer | 2 |
포드당 실행할 Webservice 작업자의 수입니다. GitLab이 제대로 작동하려면 클러스터에 적어도 2 개의 작업자가 있어야 합니다. workerProcesses 를 증가시키면 작업자당 약 400MB 의 메모리가 추가로 필요하므로 포드 resources 를 적절히 업데이트해야 합니다. |
메트릭스
metrics.enabled
값을 통해 메트릭스를 활성화하고 GitLab 모니터링 익스포터를 사용하여 메트릭스 포트를 노출합니다. 포드에는 Prometheus 주석이 부여되거나, metrics.serviceMonitor.enabled
가 true
일 경우 Prometheus Operator ServiceMonitor가 생성됩니다. 메트릭스는 /-/metrics
엔드포인트에서 수집할 수도 있지만, 이것은 관리자 영역에서 GitLab Prometheus 메트릭스를 활성화해야 합니다. GitLab Workhorse 메트릭스는 workhorse.metrics.enabled
를 통해 노출할 수도 있지만, 이는 Prometheus 주석을 사용하여 수집할 수 없으므로 workhorse.metrics.serviceMonitor.enabled
를 true
로 설정하거나 외부 Prometheus 구성이 필요합니다.
GitLab 셸
GitLab Shell은 Webservice와의 통신에서 Auth Token을 사용합니다. 공유된 비밀을 사용하여 GitLab Shell과 Webservice에 토큰을 공유합니다.
shell:
authToken:
secret: gitlab-shell-secret
key: secret
port:
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
authToken.key |
String | authToken이 포함된 비밀(아래)의 키 이름을 정의합니다. | |
authToken.secret |
String | 가져올 Kubernetes Secret 의 이름을 정의합니다. |
|
port |
Integer | 22 |
GitLab UI 내에서 SSH URL을 생성하는 데 사용할 포트 번호입니다. global.shell.port 에 의해 제어됩니다. |
웹 서버 옵션
현재 버전의 차트는 Puma 웹 서버를 지원합니다.
Puma 고유 옵션:
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
puma.workerMaxMemory |
Integer | Puma 작업자 킬러에 대한 최대 메모리(메가바이트 단위) | |
puma.threads.min |
Integer | 4 |
Puma 스레드의 최소 수입니다. |
puma.threads.max |
Integer | 4 |
Puma 스레드의 최대 수입니다. |
networkpolicy
구성
이 섹션은 NetworkPolicy를 제어합니다.
이 구성은 선택 사항이며, Pods의 Egress와 Ingress를 특정 엔드포인트로 제한하는 데 사용됩니다.
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
enabled |
Boolean | false |
이 설정은 NetworkPolicy 를 활성화합니다. |
ingress.enabled |
Boolean | false |
true 로 설정하면 Ingress 네트워크 정책이 활성화됩니다. 이는 규칙이 지정되지 않는 한 모든 Ingress 연결을 차단합니다. |
ingress.rules |
Array | [] |
Ingress 정책을 위한 규칙으로, 자세한 내용은 https://kubernetes.io/docs/concepts/services-networking/network-policies/#the-networkpolicy-resource와 아래의 예를 참조하세요. |
egress.enabled |
Boolean | false |
true 로 설정하면 Egress 네트워크 정책이 활성화됩니다. 이는 규칙이 지정되지 않는 한 모든 Egress 연결을 차단합니다. |
egress.rules |
Array | [] |
Egress 정책을 위한 규칙으로, 자세한 내용은 https://kubernetes.io/docs/concepts/services-networking/network-policies/#the-networkpolicy-resource와 아래의 예를 참조하세요. |
예제 네트워크 정책
웹 서비스는 Prometheus exporter가 활성화된 경우에만 Ingress 연결을 필요로 하며, NGINX Ingress에서 오는 트래픽을 수신하고, 일반적으로 다양한 장소로 Egress 연결이 필요합니다. 이 예제는 다음 네트워크 정책을 추가합니다:
- TCP
10.0.0.0/8
포트 8080에서 네트워크의 모든 Ingress 요청이 메트릭 내보내기 및 NGINX Ingress를 위해 허용됩니다. - 포트 8181로의 모든 Ingress 요청은 일반 서비스 운영을 위해 허용됩니다.
- UDP
10.0.0.0/8
포트 53에서 네트워크로의 모든 Egress 요청이 DNS를 위해 허용됩니다. - TCP
10.0.0.0/8
포트 5432에서 네트워크로의 모든 Egress 요청이 PostgreSQL을 위해 허용됩니다. - TCP
10.0.0.0/8
포트 6379에서 네트워크로의 모든 Egress 요청이 Redis를 위해 허용됩니다. - TCP
10.0.0.0/8
포트 8075에서 네트워크로의 모든 Egress 요청이 Gitaly를 위해 허용됩니다. -
10.0.0.0/8
의 로컬 네트워크로의 다른 Egress 요청은 제한됩니다. -
10.0.0.0/8
외부의 Egress 요청은 허용됩니다.
제공된 예제는 단지 예일 뿐이며 완전하지 않을 수 있습니다.
웹 서비스는 외부 오브젝트 스토리지에서 이미지를 위해 공용 인터넷으로의 아웃바운드 연결이 필요합니다.
networkpolicy:
enabled: true
ingress:
enabled: true
rules:
- from:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 8080
- from:
ports:
- port: 8181
egress:
enabled: true
rules:
- to:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 53
protocol: UDP
- to:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 5432
protocol: TCP
- to:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 6379
protocol: TCP
- to:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 8075
protocol: TCP
- to:
- ipBlock:
cidr: 0.0.0.0/0
except:
- 10.0.0.0/8
LoadBalancer 서비스
service.type
이 LoadBalancer
로 설정되면, 클라우드 공급자가 지원하는 경우 사용자 지정 IP를 사용하여 LoadBalancer
를 생성하기 위해 선택적으로 service.loadBalancerIP
를 지정할 수 있습니다.
service.type
이 LoadBalancer
로 설정되면, 클라우드 공급자가 지원하는 경우 LoadBalancer
에 접근할 수 있는 CIDR 범위를 제한하기 위해 service.loadBalancerSourceRanges
도 설정해야 합니다. 이는 현재 메트릭 포트가 노출되는 문제 때문에 필요합니다.
LoadBalancer
서비스 유형에 대한 추가 정보는 Kubernetes 문서에서 찾을 수 있습니다.
service:
type: LoadBalancer
loadBalancerIP: 1.2.3.4
loadBalancerSourceRanges:
- 10.0.0.0/8
KEDA 구성
이 keda
섹션은 일반 HorizontalPodAutoscalers
대신 KEDA ScaledObjects
의 설치를 가능하게 합니다.
이 구성은 선택 사항이며 사용자 정의 또는 외부 메트릭을 기반으로 자동 확장에서 필요할 때 사용할 수 있습니다.
대부분의 설정은 해당하는 경우 hpa
섹션에 설정된 값으로 기본값을 설정합니다.
다음이 true인 경우, CPU 및 메모리 임계값에 따라 CPU 및 메모리 트리거가 자동으로 추가됩니다:
-
triggers
가 설정되지 않음. - 해당
request.cpu.request
또는request.memory.request
설정도 0이 아닌 값으로 설정됨.
트리거가 설정되지 않은 경우 ScaledObject
가 생성되지 않습니다.
자세한 내용은 KEDA 문서를 참조하세요.
Name | Type | Default | Description |
---|---|---|---|
enabled |
Boolean | false |
KEDA ScaledObjects 를 HorizontalPodAutoscalers 대신 사용합니다. |
pollingInterval |
Integer | 30 |
각 트리거를 확인하는 간격입니다. |
cooldownPeriod |
Integer | 300 |
마지막 트리거가 활성 상태로 보고된 후 자원을 0으로 다시 스케일링하기까지 대기하는 기간입니다. |
minReplicaCount |
Integer | KEDA가 자원을 축소할 최소 복제본 수, 기본값은 minReplicas 입니다. |
|
maxReplicaCount |
Integer | KEDA가 자원을 확장할 최대 복제본 수, 기본값은 maxReplicas 입니다. |
|
fallback |
Map | KEDA 대체 구성, 자세한 내용은 문서를 참조하십시오. | |
hpaName |
String | KEDA가 생성할 HPA 자원의 이름입니다, 기본값은 keda-hpa-{scaled-object-name} 입니다. |
|
restoreToOriginalReplicaCount |
Boolean |
ScaledObject 가 삭제된 후 대상 자원을 원래의 복제본 수로 다시 스케일링해야 하는지 여부를 지정합니다. |
|
behavior |
Map | 업스케일 및 다운스케일 동작에 대한 사양, 기본값은 hpa.behavior 입니다. |
|
triggers |
Array | 대상 자원의 스케일링을 활성화하기 위한 트리거 목록, 기본값은 hpa.cpu 및 hpa.memory 에서 계산된 트리거입니다. |