- 요구 사항
- 설계 선택 사항
- 구성
- 설치 명령줄 옵션
- 차트 구성 예시
- 이 차트의 Community Edition 사용
- 외부 서비스
- 지틀리 메트릭스
- 차트 전역 기본값
- pod별 설정
-
networkpolicy
구성 - KEDA 구성
GitLab-Sidekiq 차트 사용하기
sidekiq
서브 차트는 Sidekiq 워커를 유연하게 배포하기 위해 설계된 것으로, 여러 Deployment
간에 큐를 분리하고 개별 확장성과 구성을 제공하는 것을 명확히하도록 명시적으로 구현되었습니다.
요구 사항
이 차트는 완전한 GitLab 차트의 일부로서 또는 이 차트가 배포된 Kubernetes 클러스터에서 도달 가능한 외부 서비스로서 Redis, PostgreSQL 및 Gitaly 서비스에 의존합니다.
설계 선택 사항
이 차트는 여러 Deployment
및 관련 ConfigMap
을 생성합니다. 커맨드의 길이에 대한 우려를 피하기 위해 환경 특성이나 컨테이너의 추가적인 인자를 사용하는 대신 ConfigMap
동작을 사용하는 것이 더 명확하다고 결정되었습니다. 이 선택은 많은 수의 ConfigMap
을 유발하지만, 각 Pod가 무엇을 수행해야 하는지 매우 명확하게 정의합니다.
구성
sidekiq
차트는 세 가지 부분으로 구성됩니다: 차트 전체적인 외부 서비스, 차트 전체적인 기본값, 각 Pod의 정의.
설치 명령줄 옵션
아래 표는 helm install
명령에 --set
플래그를 사용하여 제공할 수 있는 모든 가능한 차트 구성을 포함하고 있습니다:
| 매개변수 | 기본값 | 설명 |
| —————————————— | ———————————————————— | ———————————————————————————————————————————————————————————————— |
| annotations
| | Pod annotations |
| podLabels
| | 부가적인 Pod 라벨. 선택기에 사용되지 않음. |
모든 이에 해당하는 데이터들을 제외하고 번역될 것입니다.
차트 구성 예시
리소스
resources
를 사용하면 Sidekiq pod가 사용할 수있는 리소스 (메모리 및 CPU)의 최소 및 최대량을 구성할 수 있습니다.
Sidekiq pod 작업 부하는 배포간에 크게 다릅니다. 일반적으로 각 Sidekiq 프로세스가 약 1 vCPU 및 2GB의 메모리를 사용한다는 것으로 이해됩니다. 대부분의 경우 수직 스케일링은 vCPU:메모리
의 1:2
비율에 일반적으로 정렬해야합니다.
아래는 resources
의 사용 예입니다:
resources:
limits:
memory: 5G
requests:
memory: 2G
cpu: 900m
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
또한 특정 pod에 대해 extraEnv
를 설정할 수도 있습니다:
extraEnv:
SOME_KEY: some_value
SOME_OTHER_KEY: some_other_value
pods:
- name: mailers
queues: mailers
extraEnv:
SOME_POD_KEY: some_pod_value
- name: catchall
이렇게하면 SOME_POD_KEY
가 mailers
pod의 응용 프로그램 컨테이너에만 설정됩니다. Pod 수준의 extraEnv
설정은 init containers에 추가되지 않습니다.
extraEnvFrom
extraEnvFrom
를 사용하면 pod의 모든 컨테이너에서 다른 데이터 소스의 환경 변수를 노출시킬 수 있습니다. 이후 변수는 Sidekiq pod별로 재정의 할 수 있습니다.
아래는 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
# optional: boolean
pods:
- name: immediate
extraEnvFrom:
CONFIG_STRING:
configMapKeyRef:
name: useful-config
key: some-string
# optional: boolean
extraVolumes
extraVolumes
를 사용하면 차트 전체에 추가 볼륨을 구성할 수 있습니다.
아래는 extraVolumes
의 사용 예입니다:
extraVolumes: |
- name: example-volume
persistentVolumeClaim:
claimName: example-pvc
extraVolumeMounts
extraVolumeMounts
를 사용하면 차트 전체의 모든 컨테이너에 대해 추가 volumeMounts를 구성할 수 있습니다.
아래는 extraVolumeMounts
의 사용 예입니다:
extraVolumeMounts: |
- name: example-volume-mount
mountPath: /etc/example
image.pullSecrets
pullSecrets
를 사용하면 pod에서 이미지를 가져 오기 위해 개인 레지스트리에 인증할 수 있습니다.
개인 레지스트리 및 해당 인증 방법에 대한 자세한 내용은 Kubernetes 문서에서 찾을 수 있습니다.
아래는 pullSecrets
의 사용 예입니다:
image:
repository: my.sidekiq.repository
pullPolicy: Always
pullSecrets:
- name: my-secret-name
- name: my-secondary-secret-name
tolerations
tolerations
를 사용하면 tainted worker 노드에서 pod를 예약할 수 있습니다.
아래는 tolerations
의 사용 예입니다:
tolerations:
- key: "node_label"
operator: "Equal"
value: "true"
effect: "NoSchedule"
- key: "node_label"
operator: "Equal"
value: "true"
effect: "NoExecute"
annotations
annotations
를 사용하면 Sidekiq pod에 주석을 추가할 수 있습니다.
아래는 annotations
의 사용 예입니다:
annotations:
kubernetes.io/example-annotation: annotation-value
이 차트의 Community Edition 사용
기본적으로 Helm 차트는 GitLab의 Enterprise Edition을 사용합니다. 원하는 경우 Community Edition을 대신 사용할 수 있습니다. 두 가지 사이의 차이점에 대해 자세히 알아보세요.
Community Edition을 사용하려면 image.repository
를 registry.gitlab.com/gitlab-org/build/cng/gitlab-sidekiq-ce
로 설정하십시오.
외부 서비스
이 차트는 Redis, PostgreSQL 및 Gitaly 인스턴스를 Webservice 차트와 동일한 것에 연결해야합니다. 외부 서비스의 값은 Sidekiq pod 전체에 공유되는 ConfigMap
에 채워집니다.
Redis
redis:
host: rank-racoon-redis1
port: 6379
sentinels:
- host: sentinel1.example.com
port: 26379
password:
secret: gitlab-redis
key: redis-password
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
host
| String | 사용할 Redis 서버의 호스트 이름입니다. 이는 serviceName 의 대체로 생략 할 수 있습니다. Redis Sentinel을 사용하는 경우 host 속성은 sentinel.conf 에 지정된 클러스터 이름으로 설정해야합니다.
| |
password.key
| String | Redis의 password.key 속성은 비밀번호가 포함 된 시크릿에서 키의 이름을 정의합니다.
| |
password.secret
| String | Redis의 password.secret 속성은 Kubernetes Secret 의 이름을 정의하여 끌어올립니다.
| |
port
| Integer | 6379
| Redis 서버에 연결 할 포트입니다. |
serviceName
| String | redis
| Redis 데이터베이스를 운영하는 service 의 이름입니다. 이 값이 존재하고 host 가 없으면 차트는 서비스의 호스트 이름 (그리고 현재 .Release.Name )을 host 값 대신에 템플릿화합니다. 이는 Redis를 전체적으로 GitLab 차트의 일부로 사용할 때 편리합니다.
|
sentinels.[].host
| String | Redis HA 설정의 Redis Sentinel 서버의 호스트 이름입니다. | |
sentinels.[].port
| Integer | 26379
| Redis Sentinel 서버에 연결 할 포트입니다. |
참고 :
현재 Redis Sentinel 지원은 별도로 배포된 Sentinels 만 지원합니다. 결과적으로 GitLab 차트를 통한 Redis 배포는 redis.install=false
로 매뉴얼으로 비활성화해야합니다.
Redis 비밀번호를 포함 한 시크릿은 GitLab 차트를 배포하기 전에 매뉴얼으로 생성해야합니다.
PostgreSQL
psql:
host: rank-racoon-psql
serviceName: pgbouncer
port: 5432
database: gitlabhq_production
username: gitlab
preparedStatements: false
password:
secret: gitlab-postgres
key: psql-password
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
host
| String | 사용할 PostgreSQL 서버의 호스트 이름입니다. postgresql.install=true (기본: 비 프로덕션) 경우 생략할 수 있습니다.
| |
serviceName
| String | PostgreSQL 데이터베이스를 운영하는 service 의 이름입니다. 이 값이 존재하고 host 가 없으면 차트는 서비스의 호스트 이름을 host 값 대신에 템플릿화합니다.
| |
database
| String | gitlabhq_production
| PostgreSQL 서버에서 사용할 데이터베이스의 이름입니다. |
password.key
| String | PostgreSQL 비밀번호를 포함하는 시크릿에서 키의 이름을 정의합니다. | |
password.secret
| String | Kubernetes Secret 에서 끌어올리는 PostgreSQL의 password.secret 속성은 이름을 정의합니다.
| |
port
| Integer | 5432
| PostgreSQL 서버에 연결할 포트입니다. |
username
| String | gitlab
| 데이터베이스에 인증하기 위해 사용되는 사용자 이름입니다. |
preparedStatements
| Boolean | false
| PostgreSQL 서버와의 통신시 준비된 문(Prepared Statements)을 사용할지 여부입니다. |
Gitaly
gitaly:
internal:
names:
- default
- default2
external:
- name: node1
hostname: node1.example.com
port: 8079
authToken:
secret: gitaly-secret
key: token
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
host
| String | 사용할 Gitaly 서버의 호스트명입니다. 이 값은 serviceName 대신에 제공될 수 있습니다.
| |
serviceName
| String | gitaly
| Gitaly 서버를 운영하는service 의 이름입니다. 이 값이 제공되고 host 가 제공되지 않은 경우, 차트는 host 값을 현재 .Release.Name 의 서비스(hostname)로 템플릿화합니다. 이는 Gitaly를 전체 GitLab 차트의 일부로 사용할 때 편리합니다.
|
port
| Integer | 8075
| Gitaly 서버에 연결할 포트 번호입니다. |
authToken.key
| String | authToken을 포함하고 있는 비밀 키의 이름입니다. | |
authToken.secret
| String | 가져올 Kubernetes Secret 의 이름입니다.
|
지틀리 메트릭스
기본적으로 각 pod마다 Prometheus 메트릭스 익스포터가 활성화되어 있습니다. 메트릭스는 GitLab Prometheus metrics가 관리자 영역에서 활성화된 경우에만 사용할 수 있습니다. 익스포터는 포트 3807
의 /metrics
엔드포인트를 노출합니다. 메트릭스가 활성화되면 각 pod에 주석이 추가되어 Prometheus 서버가 노출된 메트릭스를 찾고 스크래핑할 수 있도록 허용합니다.
차트 전역 기본값
값이 pod별로 제공되지 않은 경우 차트 전반에 걸쳐 사용될 기본값은 다음과 같습니다.
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
concurrency
| Integer | 25
| 동시에 처리할 작업 수입니다. |
timeout
| Integer | 4
| Sidekiq 셧다운 타임아웃입니다. Sidekiq가 TERM 시그널을 받은 후 강제로 프로세스를 종료하기 전의 시간(초)입니다. |
memoryKiller.checkInterval
| Integer | 3
| 메모리 체크 간격(초)입니다. |
memoryKiller.maxRss
| Integer | 2000000
| 지연된 셧다운이 트리거될 최대 RSS로 표현된 킬로바이트 단위의 값입니다. |
memoryKiller.graceTime
| Integer | 900
| 트리거된 셧다운 이후 기존 작업이 완료될 때까지 대기해야 하는 시간으로 표현된 시간(초)입니다. |
memoryKiller.shutdownWait
| Integer | 30
| 트리거된 셧다운 이후 기존 작업이 완료될 때까지 대기하는 시간으로 표현된 시간(초)입니다. |
minReplicas
| Integer | 2
| 최소 pod 복제본 수입니다. |
maxReplicas
| Integer | 10
| 최대 pod 복제본 수입니다. |
pod별 설정
pods
선언은 각 워커 pod의 모든 속성을 선언하기 위한 것으로, 이들은 개별 ConfigMap
을 갖는 Deployment
로 템플릿화될 것입니다.
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
concurrency
| Integer | 동시에 처리할 작업 수입니다. 제공되지 않은 경우 차트 전역 기본값에서 가져옵니다. | |
name
| String | 이 pod의 Deployment 및 ConfigMap 의 이름으로 사용됩니다. 짧게 유지되어야 하며 어떠한 두 항목 사이에도 중복되어서는 안 됩니다.
| |
queues
| String | 아래 참조. | |
timeout
| Integer | Sidekiq 셧다운 타임아웃입니다. Sidekiq가 TERM 시그널을 받은 후 프로세스를 강제로 종료하기 전의 시간(초)입니다. 제공되지 않은 경우 차트 전역 기본값에서 가져옵니다. 이 값은 terminationGracePeriodSeconds 보다 반드시 작아야 합니다.
| |
resources
| 각 pod마다 자신의 resources 요구 사항을 제시할 수 있으며, 이는 제공되는 경우 해당 pod을 위해 생성된 Deployment 에 추가됩니다. 이는 Kubernetes 문서와 일치합니다.
| ||
nodeSelector
| 각 pod은 제공되는 경우 해당 pod을 위해 생성된 Deployment 에 추가될 nodeSelector 속성을 설정할 수 있습니다. 이 정의는 Kubernetes 문서와 일치합니다.
| ||
memoryKiller.checkInterval
| Integer | 3
| 메모리 체크 간격(초)입니다. |
memoryKiller.maxRss
| Integer | 2000000
| 주어진 pod의 최대 RSS를 무시합니다. |
memoryKiller.graceTime
| Integer | 900
| 주어진 pod에 대한 트리거된 셧다운 이후 대기해야 하는 시간을 무시합니다. |
memoryKiller.shutdownWait
| Integer | 30
| 주어진 pod에 대한 트리거된 셧다운 이후 존재하는 작업이 완료될 때까지 대기해야 하는 시간을 무시합니다. |
minReplicas
| Integer | 2
| 최소 pod 복제본 수입니다. |
maxReplicas
| Integer | 10
| 최대 pod 복제본 수입니다. |
maxUnavailable
| Integer | 1
| 사용 불가능한 pod의 최대 수의 제한입니다. |
podLabels
| Map | {}
| 보충적인 pod 라벨입니다. 선택기 용이 아닙니다. |
strategy
| {}
| 배포에 사용되는 업데이트 전략을 구성할 수 있습니다. | |
extraVolumes
| String | 주어진 pod을 위해 추가 볼륨을 구성합니다. | |
extraVolumeMounts
| String | 주어진 pod을 위해 추가 볼륨 마운트를 구성합니다. | |
priorityClassName
| String | ""
| pod 우선 순위를 제어하기 위해 사용되는 pod의 priorityClassName 을 구성할 수 있습니다.
|
hpa.customMetrics
| Array | []
| 원하는 복제본 수를 계산하는데 사용할 사양을 포함합니다(targetAverageUtilization 로 구성된 평균 CPU 이용률의 기본 사용에 재정의됩니다).
|
hpa.cpu.targetType
| String | AverageValue
| 오토 스케일링 CPU 대상 유형을 덮어쓰며, 반드시 Utilization 또는 AverageValue 이어야 합니다.
|
hpa.cpu.targetAverageValue
| String | 350m
| 오토 스케일링 CPU 대상 값을 덮어쓰며, 반드시 Utilization 또는 AverageValue 이어야 합니다.
|
hpa.cpu.targetAverageUtilization
| Integer | 오토 스케일링 CPU 대상 이용률을 덮어쓰며, 반드시 Utilization 또는 AverageValue 이어야 합니다.
| |
hpa.memory.targetType
| String | 오토 스케일링 메모리 대상 유형을 덮어쓰며, 반드시 Utilization 또는 AverageValue 이어야 합니다.
| |
hpa.memory.targetAverageValue
| String | 오토 슼일링 메모리 대상 값을 덮어쓰며, 반드시 Utilization 또는 AverageValue 이어야 합니다.
| |
hpa.memory.targetAverageUtilization
| Integer | 오토 스케일링 메모리 대상 이용률을 덮어쓰며, 반드시 Utilization 또는 AverageValue 이어야 합니다.
| |
hpa.targetAverageValue
| String |
폐기예정 오토 스케일링 CPU 대상 값을 덮어쓰며 반드시 Utilization 또는 AverageValue 이어야 합니다.
| |
keda.enabled
| Boolean | false
| KEDA 활성화를 덮어씁니다. |
keda.pollingInterval
| Integer | 30
| KEDA 폴링 간격을 덮어씁니다. |
keda.cooldownPeriod
| Integer | 300
| KEDA 쿨다운 기간을 덮어씁니다. |
keda.minReplicaCount
| Integer | KEDA 최소 복사본 수를 덮어씁니다. | |
keda.maxReplicaCount
| Integer | KEDA 최대 복사본 수를 덮어씁니다. | |
keda.fallback
| Map | KEDA 대체 구성을 덮어씁니다. | |
keda.hpaName
| String | KEDA HPA 이름을 덮어씁니다. | |
keda.restoreToOriginalReplicaCount
| Boolean | 원래 복사본 수를 복원하는 것을 덮어씁니다. | |
keda.behavior
| Map | KEDA HPA 동작을 덮어씁니다. | |
keda.triggers
| Array | KEDA 트리거를 덮어씁니다. | |
extraEnv
| Map | 노출할 추가 환경 변수 디렉터리입니다. 차트 전역값은 이 값에 Merge되며 pod에서 가져오는 값이 우선합니다. | |
extraEnvFrom
| Map | 노출할 기타 데이터 소스에서 추가 환경 변수 디렉터리입니다. | |
terminationGracePeriodSeconds
| Integer | 30
| pod이 정상적으로 종료되어야 하는 시간(초)입니다. |
대기열
queues
값은 처리될 대기열 디렉터리을 쉼표로 구분한 문자열입니다. 기본적으로 설정되지 않았으며, 모든 대기열이 처리됩니다.
문자열에는 공백이 포함되어서는 안 됩니다: merge,post_receive,process_commit
는 작동하지만 merge, post_receive, process_commit
는 작동하지 않습니다.
작업이 추가되지만 적어도 하나의 pod 항목으로 표시되지 않는 대기열은 처리되지 않습니다. 모든 대기열의 전체 디렉터리은 GitLab 소스의 다음 파일에서 확인할 수 있습니다.
gitlab.sidekiq.pods[].queues
를 구성하는 것 외에도 global.appConfig.sidekiq.routingRules
를 구성해야 합니다. 자세한 정보는 Sidekiq 라우팅 규칙 설정을 참조하세요.
pod
항목 예
pods:
- name: immediate
concurrency: 10
minReplicas: 2 # 상속된 값으로 기본값 설정
maxReplicas: 10 # 상속된 값으로 기본값 설정
maxUnavailable: 5 # 상속된 값으로 기본값 설정
queues: merge,post_receive,process_commit
extraVolumeMounts: |
- name: example-volume-mount
mountPath: /etc/example
extraVolumes: |
- name: example-volume
persistentVolumeClaim:
claimName: example-pvc
resources:
limits:
cpu: 800m
memory: 2Gi
hpa:
cpu:
targetType: Value
targetAverageValue: 350m
Sidekiq 구성의 전체 예시
다음은 가져오기 작업에 대한 별도의 Sidekiq pod, 별도의 Redis 인스턴스를 사용하는 내보내기 작업에 대한 Sidekiq pod, 그리고 나머지 모든 작업에 대한 다른 pod를 사용하여 Sidekiq 구성의 전체 예시입니다.
...
global:
appConfig:
sidekiq:
routingRules:
- ["feature_category=importers", "import"]
- ["feature_category=exporters", "export", "queues_shard_extra_shard"]
- ["*", "default"]
redis:
redisYmlOverride:
queues_shard_extra_shard: ...
...
gitlab:
sidekiq:
pods:
- name: import
queues: import
- name: export
queues: export
extraEnv:
SIDEKIQ_SHARD_NAME: queues_shard_extra_shard # global.redis.redisYmlOverride의 키와 일치하도록 설정
- name: default
...
networkpolicy
구성
이 섹션은 NetworkPolicy를 제어합니다. 이 구성은 선택 사항이며, Pod의 Egress 및 Ingress를 특정 엔드포인트로 제한하는 데 사용됩니다.
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
enabled
| 부울린 | false
| 이 설정은 네트워크 정책을 활성화합니다. |
ingress.enabled
| 부울린 | false
|
true 로 설정하면 Ingress 네트워크 정책이 활성화됩니다. 규칙이 지정되지 않으면 모든 Ingress 연결이 차단됩니다.
|
ingress.rules
| 배열 | []
|
Ingress 정책에 대한 규칙은 https://kubernetes.io/docs/concepts/services-networking/network-policies/#the-networkpolicy-resource 및 아래 예시를 참조하세요.
|
egress.enabled
| 부울린 | false
|
true 로 설정하면 Egress 네트워크 정책이 활성화됩니다. 규칙이 지정되지 않으면 모든 Egress 연결이 차단됩니다.
|
egress.rules
| 배열 | []
| Egress 정책에 대한 규칙은 https://kubernetes.io/docs/concepts/services-networking/network-policies/#the-networkpolicy-resource 및 아래 예시를 참조하세요. |
네트워크 정책 예시
Sidekiq 서비스는 활성화된 경우 Prometheus 익스포터에 대한 Ingress 연결만 요구하며 일반적으로 다양한 위치로부터의 Egress 연결이 필요합니다. 이 예시에는 다음과 같은 네트워크 정책이 추가됩니다.
- TCP
10.0.0.0/8
의 네트워크에서의 모든 Ingress 요청은 메트릭 익스포팅을 위해 허용됩니다. - UDP
10.0.0.0/8
의 네트워크로의 모든 Egress 요청은 DNS를 위해 허용됩니다. - TCP
10.0.0.0/8
의 네트워크로의 모든 Egress 요청은 PostgreSQL을 위해 허용됩니다. - TCP
10.0.0.0/8
의 네트워크로의 모든 Egress 요청은 Redis를 위해 허용됩니다. -
10.0.0.0/8
의 로컬 네트워크로의 다른 Egress 요청은 제한됩니다. -
10.0.0.0/8
외부의 Egress 요청은 허용됩니다.
제공된 예시는 단순한 예시이며 완전하지 않을 수 있음에 유의하세요.
참고: Sidekiq 서비스는 외부 객체 리포지터리의 이미지를 위해 공개 인터넷으로의 외부 연결이 필요합니다.
networkpolicy:
enabled: true
ingress:
enabled: true
rules:
- from:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 3807
egress:
enabled: true
rules:
- to:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 53
protocol: UDP
- to:
- ipBlock:
cidr: 10.0.0/8
ports:
- port: 5432
protocol: TCP
- to:
- ipBlock:
cidr: 10.0.0/8
ports:
- port: 6379
protocol: TCP
- to:
- ipBlock:
cidr: 0.0.0.0/0
except:
- 10.0.0.0/8
KEDA 구성
이 keda
섹션은 일반적인 HorizontalPodAutoscalers
대신 KEDA ScaledObjects
의 설치를 가능하게 합니다. 이 구성은 선택 사항이며, 사용자 지정 또는 외부 메트릭을 기반으로 자동 확장이 필요한 경우에 사용할 수 있습니다.
대부분의 설정은 적용 가능한 경우 hpa
섹션에 설정된 값의 기본값과 동일합니다.
다음 사항이 사실인 경우, CPU 및 메모리 트리거가 자동으로 추가됩니다:
-
triggers
가 설정되지 않은 경우 - 해당하는
request.cpu.request
또는request.memory.request
설정도 0이 아닌 값으로 설정된 경우
트리거가 설정되지 않은 경우, ScaledObject
가 생성되지 않습니다.
이러한 설정에 대한 자세한 내용은 KEDA 설명서를 참조하세요.
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
enabled
| 부울린 | false
|
HorizontalPodAutoscalers 대신 KEDA ScaledObjects 사용
|
pollingInterval
| 정수 | 30
| 각 트리거를 확인하는 간격 |
cooldownPeriod
| 정수 | 300
| 마지막 트리거가 활성화된 후 일정 기간 대기하여 리소스를 다시 0으로 축소하는 기간 |
minReplicaCount
| 정수 | KEDA가 리소스를 축소할 최소 수의 레플리카, minReplicas 의 기본값으로 설정됨
| |
maxReplicaCount
| 정수 | KEDA가 리소스를 확장할 최대 수의 레플리카, maxReplicas 의 기본값으로 설정됨
| |
fallback
| 맵 | KEDA 대체 구성, 자세한 내용은 설명서 참조 | |
hpaName
| 문자열 | KEDA가 생성할 HPA 리소스의 이름, keda-hpa-{scaled-object-name} 의 기본값으로 설정됨
| |
restoreToOriginalReplicaCount
| 부울린 |
ScaledObject 가 삭제된 후 대상 리소스를 원래 레플리카 수로 복원해야 하는지 여부
| |
behavior
| 맵 | 확장 및 축소 동작에 대한 사양, hpa.behavior 의 기본값으로 설정됨
| |
triggers
| 배열 | 대상 리소스의 스케일링을 활성화할 트리거 디렉터리, hpa.cpu 및 hpa.memory 에서 계산된 기본값으로 설정됨
|