- 요구 사항
- 디자인 선택 사항
- 구성
- 설치 명령줄 옵션
- 차트 구성 예시
- 이 차트의 Community Edition 사용
- 외부 서비스
- 메트릭스
- 차트 전역 기본값
- 파드별 설정
-
networkpolicy
구성 - KEDA 구성
GitLab-Sidekiq 차트 사용하기
서브 차트 sidekiq
은 여러 개의 Deployment
을 통해 각각의 확장성과 구성을 가진 Sidekiq 워커를 유연하게 배포할 수 있도록 구성할 수 있도록 하고 있습니다.
이 차트는 기본 pods:
선언을 제공하지만, 빈 정의를 제공할 경우 어떤 워커도 갖지 않게 됩니다.
요구 사항
이 차트는 완전한 GitLab 차트의 일부로서 또는 이 차트가 배포되는 Kubernetes 클러스터에서 도달할 수 있는 외부 서비스로서 Redis, PostgreSQL, 그리고 Gitaly에 의존합니다.
디자인 선택 사항
이 차트는 여러 개의 Deployment
와 관련된 ConfigMap
을 생성합니다. 컨테이너의 command
에 대한 추가 인자나 environment
속성을 사용하는 대신 ConfigMap
동작을 이용하도록 선택되었으며, 이는 명령어 길이에 대한 걱정을 피하기 위함입니다.
구성
sidekiq
차트는 세 부분으로 구성됩니다: 차트 전역의 외부 서비스, 차트 전역의 기본값들, 그리고 각 pod의 정의.
설치 명령줄 옵션
다음 표에 helm install
명령을 통해 --set
플래그를 사용하여 제공할 수 있는 가능한 차트 구성을 모두 포함하고 있습니다:
매개변수 | 기본값 | 설명 |
---|---|---|
annotations
| Pod 어노테이션 | |
podLabels
| 보조 Pod 라벨. 선택기로 사용되지는 않습니다. | |
common.labels
| 이 차트에서 생성된 모든 객체에 적용되는 보조 라벨들 | |
… (이하 생략) |
차트 구성 예시
리소스
resources
를 사용하여 Sidekiq
pod가 소비할 수 있는 리소스(메모리 및 CPU)의 최솟값과 최댓값을 구성할 수 있습니다.
Sidekiq pod 워크로드는 배포마다 크게 다릅니다. 일반적으로 각 Sidekiq
프로세스는 약 1 vCPU 및 2GB의 메모리를 소비한다고 이해됩니다. 수직 스케일링은 일반적으로 이 1:2
비율의 vCPU:메모리
에 맞게 구성되어야 합니다.
아래는 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
negateQueues: mailers
이렇게 하면 mailers
pod의 애플리케이션 컨테이너에만 SOME_POD_KEY
가 설정됩니다.
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
를 사용하여 차트 전역의 모든 컨테이너에 대해 추가 볼륨 마운트를 구성할 수 있습니다.
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
로 설정하세요.
외부 서비스
이 차트는 Webservice 차트와 동일한 Redis, PostgreSQL 및 Gitaly 인스턴스에 연결해야 합니다.
외부 서비스의 값은 모든 Sidekiq pods 간에 공유되는 ConfigMap
에 채워집니다.
Redis
redis:
host: rank-racoon-redis
port: 6379
sentinels:
- host: sentinel1.example.com
port: 26379
password:
secret: gitlab-redis
key: redis-password
Name | Type | Default | Description |
---|---|---|---|
host
| String | 사용할 데이터베이스가 있는 Redis 서버의 호스트명입니다. 이것은 serviceName 대신에 생략할 수 있습니다. Redis Sentinels를 사용하는 경우 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 을 기준으로 서비스의 호스트명을 템플릿화합니다. 이는 Redis를 전체 GitLab 차트의 일부로 사용할 때 편리합니다.
|
sentinels.[].host
| String | Redis HA 설정에서 Redis Sentinel 서버의 호스트명입니다. | |
sentinels.[].port
| Integer | 26379
| Redis Sentinel 서버에 연결할 포트입니다. |
참고: 현재 Redis Sentinel 지원은 별도로 GitLab 차트에서 배포된 Sentinel을 지원합니다. 결과적으로, GitLab 차트를 사용하여 배포하는 Redis가 비활성화되어야 합니다. 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 (기본값 non-production)인 경우 이 항목은 생략할 수 있습니다.
| |
serviceName
| String | PostgreSQL 데이터베이스를 운영하는 service 의 이름입니다. 이 값이 존재하고 host 가 존재하지 않으면, 차트는 host 값 대신 서비스의 호스트 이름을 템플릿화합니다.
| |
database
| String | gitlabhq_production
| PostgreSQL 서버에서 사용할 데이터베이스의 이름입니다. |
password.key
| String | PostgreSQL의 password.key 속성은 비밀번호가 포함된 시크릿(secret)의 이름을 정의합니다.
| |
password.secret
| String | PostgreSQL의 password.secret 속성은 사용할 Kubernetes 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 )을 템플릿화합니다. 이는 Gitaly를 전체 GitLab 차트의 일부로 사용할 때 편리합니다.
|
port
| Integer | 8075
| Gitaly 서버에 연결할 포트입니다. |
authToken.key
| String | 시크릿 아래의 토큰을 포함하는 키의 이름입니다. | |
authToken.secret
| String | 사용할 Kubernetes Secret 의 이름입니다.
|
메트릭스
기본적으로, 각 pod에 대해 Prometheus 메트릭스 익스포터가 활성화됩니다. 메트릭스는 GitLab Prometheus metrics이 관리자 영역에서 활성화된 경우에만 사용할 수 있습니다. 익스포터는 포트 3807
에서 /metrics
엔드포인트를 노출합니다. 메트릭스가 활성화된 경우, 각 pod에 주석이 추가되어 Prometheus 서버가 노출된 메트릭스를 찾고 스크래핑할 수 있도록합니다.
차트 전역 기본값
다음 값은 각 pod별로 제공되지 않을 경우 차트 전체에서 사용됩니다.
항목 | 유형 | 기본값 | 설명 |
---|---|---|---|
concurrency
| Integer | 25
| 동시에 처리할 작업 수입니다. |
timeout
| Integer | 4
| Sidekiq 셧다운 타임아웃입니다. TERM 시그널을 받은 후 Sidekiq이 프로세스를 강제로 종료하기 전의 시간(초)입니다. |
memoryKiller.checkInterval
| Integer | 3
| 메모리 체크 사이의 시간(초) |
memoryKiller.maxRss
| Integer | 2000000
| 지연 종료가 트리거되는 최대 RSS 킬로바이트로 표시됩니다. |
memoryKiller.graceTime
| Integer | 900
| 트리거 된 종료에 대한 대기 시간(초) 표시 |
memoryKiller.shutdownWait
| Integer | 30
| 트리거 된 종료 후 기존 작업을 완료할 시간(초) 표시입니다. |
minReplicas
| Integer | 2
| 최소 복제본 수 |
maxReplicas
| Integer | 10
| 최대 복제본 수 |
maxUnavailable
| Integer | 1
| 사용 불가능한 Pod의 최대 수 제한 |
참고: Linux 패키지 문서에서 Sidekiq memory killer의 자세한 설명을 확인할 수 있습니다.
파드별 설정
pods
선언은 워커 파드의 모든 속성을 선언하는 데 사용됩니다. 이러한 내용은 Deployment
에 템플릿화되며, 개별 ConfigMap
은 해당 Sidekiq 인스턴스에 대해 생성됩니다.
참고: 설정은 모든 대기열을 모니터링하도록 설정된 단일 파드를 기본값으로 사용합니다. 파드 섹션을 수정하면 기본 파드가 아닌 다른 파드 구성으로 덮어씁니다. 이로써 새 파드가 추가되는 것이 아니라 기본 파드가 덮어쓰입니다.
Name | Type | Default | Description |
---|---|---|---|
concurrency
| 정수 | 동시에 처리할 작업 수입니다. 제공되지 않으면 차트 전역 기본값에서 가져옵니다. | |
name
| 문자열 | 이 파드의 Deployment 및 ConfigMap 의 이름으로 사용됩니다. 짧게 유지해야하며 두 항목 간에 중복되어서는 안 됩니다.
| |
queues
| 문자열 | 아래 참조. | |
negateQueues
| 문자열 | 사용되지 않음 아래 세부 정보 참조. | |
queueSelector
| 부울 | false
| 대기열 선택기를 사용합니다. 감별된 경로를 선호합니다. 자세한 정보는 queues 및 루팅 규칙을 참조하세요. |
timeout
| 정수 | Sidekiq 종료 시간 초과입니다. Sidekiq에서 TERM 시그널을 받은 후 프로세스를 강제로 종료하기 전의 시간(초). 제공되지 않으면 차트 전역 기본값에서 가져와야 합니다. 이 값은 반드시 terminationGracePeriodSeconds 보다 작아야 합니다.
| |
resources
| 각 파드는 각자의 리소스 요구사항을 제시할 수 있으며, 이는 해당 파드에 대해 생성된 Deployment 에 추가됩니다. 이는 Kubernetes 문서와 일치합니다.
| ||
nodeSelector
| 각 파드는 nodeSelector 속성으로 구성할 수 있으며, 이는 해당 파드에 대해 생성된 Deployment 에 추가됩니다. 이 정의는 Kubernetes 문서와 일치합니다.
| ||
memoryKiller.checkInterval
| 정수 | 3
| 메모리 체크 간격입니다. |
memoryKiller.maxRss
| 정수 | 2000000
| 특정 파드에 대한 최대 RSS를 재정의합니다. |
memoryKiller.graceTime
| 정수 | 900
| 특정 파드의 트리거된 종료 전 대기할 시간을 재정의합니다. |
memoryKiller.shutdownWait
| 정수 | 30
| 트리거된 종료 후 기존 작업을 완료할 시간을 특정 파드에 대해 재정의합니다. |
minReplicas
| 정수 | 2
| 최소 복제본 수 |
maxReplicas
| 정수 | 10
| 최대 복제본 수 |
maxUnavailable
| 정수 | 1
| 사용할 수 있는 최대 파드 수 제한 |
podLabels
| 맵 | {}
| 보조 파드 라벨. 선택기로 사용되지 않습니다. |
strategy
| {}
| 배포에 의해 사용되는 업데이트 전략을 구성합니다. | |
extraVolumes
| 문자열 | 지정된 파드에 대한 추가 볼륨을 구성합니다. | |
extraVolumeMounts
| 문자열 | 지정된 파드에 대한 추가 볼륨 마운트를 구성합니다. | |
priorityClassName
| 문자열 | ""
| 파드 priorityClassName 구성을 허용합니다. 이는 이탈 경우 파드 우선 순위를 제어하는 데 사용됩니다.
|
hpa.customMetrics
| 배열 | []
| 사용할 지정 복제본 수 계산을 위한 사양을 포함합니다 (targetAverageUtilization 에서 구성된 평균 CPU 사용률의 기본값 적용을 무력화합니다).
|
hpa.cpu.targetType
| 문자열 | AverageValue
| 오토스케일링 CPU 대상 유형을 덮어씁니다. Utilization 또는 AverageValue 중 하나여야 합니다.
|
hpa.cpu.targetAverageValue
| 문자열 | 350m
| 오토스케일링 CPU 대상 값을 덮어씁니다. |
hpa.cpu.targetAverageUtilization
| 정수 | 오토스케일링 CPU 대상 활용도를 덮어씁니다. | |
hpa.memory.targetType
| 문자열 | 오토스케일링 메모리 대상 유형을 덮어씁니다. Utilization 또는 AverageValue 중 하나여야 합니다.
| |
hpa.memory.targetAverageValue
| 문자열 | 오토스케일링 메모리 대상 값을 덮어씁니다. | |
hpa.memory.targetAverageUtilization
| 정수 | 오토스케일링 메모리 대상 활용도를 덮어씁니다. | |
hpa.targetAverageValue
| 문자열 | 사용되지 않음 오토스케일링 CPU 대상 값을 덮어씁니다. | |
keda.enabled
| 부울 | false
| KEDA 사용 여부를 덮어씁니다. |
keda.pollingInterval
| 정수 | 30
| KEDA 폴링 간격을 덮어씁니다. |
keda.cooldownPeriod
| 정수 | 300
| KEDA 쿨다운 기간을 덮어씁니다. |
keda.minReplicaCount
| 정수 | KEDA 최소 복제본 수를 덮어씁니다. | |
keda.maxReplicaCount
| 정수 | KEDA 최대 복제본 수를 덮어씁니다. | |
keda.fallback
| 맵 | KEDA 페일백 구성을 덮어씁니다. | |
keda.hpaName
| 문자열 | KEDA HPA 이름을 덮어씁니다. | |
keda.restoreToOriginalReplicaCount
| 부울 | 원래 복제본 수로 복원 기능을 덮어씁니다. | |
keda.behavior
| 맵 | KEDA HPA 동작을 덮어씁니다. | |
keda.triggers
| 배열 | KEDA 트리거를 덮어씁니다. | |
extraEnv
| 맵 | 노출할 추가 환경 변수 목록입니다. 차트 전역 값은 이 목록과 병합되며, 파드의 값이 우선합니다. | |
extraEnvFrom
| 맵 | 노출할 다른 데이터 소스에서 가져온 추가 환경 변수 목록입니다. | |
terminationGracePeriodSeconds
| 정수 | 30
| 파드가 정상적으로 종료되기 위한 초 단위의 선택 사항 기간입니다. |
대기열
queues
값은 처리해야 하는 큐의 쉼표로 구분된 목록을 포함하는 문자열입니다. 기본적으로 설정되어 있지 않으며, 이는 모든 대기열이 처리됨을 의미합니다.
문자열에는 공백을 포함해서는 안 됩니다. merge,post_receive,process_commit
는 작동하지만 merge, post_receive, process_commit
은 작동하지 않습니다.
작업이 추가되지만 적어도 하나의 pod 항목으로 나타나지 않는 대기열은 처리되지 않을 것입니다. 모든 큐의 완전한 목록은 GitLab 소스의 다음 파일에서 확인할 수 있습니다.
gitlab.sidekiq.pods[].queues
를 구성하는 것 외에도 global.appConfig.sidekiq.routingRules
를 구성해야 합니다. 자세한 정보는 Sidekiq 라우팅 규칙 설정을 참조하십시오.
negateQueues (폐지됨)
폐지에 대한 자세한 정보는 폐지된 Negate 설정을 참조하십시오.
negateQueues
는 queues
와 동일한 형식입니다. 그러나 처리하는 대신 무시할 큐를 나타냅니다.
문자열에는 공백을 포함해서는 안 됩니다. merge,post_receive,process_commit
는 작동하지만 merge, post_receive, process_commit
은 작동하지 않습니다.
이 기능은 중요한 대기열을 처리하는 pod와 다른 대기열을 처리하는 다른 pod가 있는 경우 유용합니다. 동일한 큐 목록을 사용하되 하나는 queues
에 있고 다른 하나는 negateQueues
에 있는 경우입니다.
참고:
negateQueues
는 queues
와 함께 제공되어서는 안 되며, 그렇게 할 경우 영향을 미치지 않습니다.
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와 기타 모든 작업을 위한 다른 pod를 사용하는 Sidekiq 구성의 전체 예입니다.
...
global:
appConfig:
sidekiq:
routingRules:
- ["feature_category=importers", "import"]
- ["*", "default"]
...
gitlab:
sidekiq:
pods:
- name: import
queues: import
- name: default
...
networkpolicy
구성
이 섹션은 NetworkPolicy 를 제어합니다. 이 구성은 선택 사항이며, Pod의 Egress 및 Ingress를 특정 엔드포인트로 제한하는 데 사용됩니다.
이름 | 유형 | 기본값 | 설명 |
---|---|---|---|
enabled
| Boolean | false
| 이 설정은 네트워크 정책을 활성화시킵니다. |
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 및 아래 예제를 참조 |
네트워크 정책의 예
Sidekiq 서비스는 활성화된 경우 Prometheus exporter를 위해 Ingress 연결만 필요로하며 일반적으로 다양한 마계지로의 Egress 연결이 필요합니다. 이 예제는 다음과 같은 네트워크 정책을 추가합니다.
- TCP
10.0.0.0/8
포트 3807에서 네트워크로부터의 모든 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를 위해 허용됩니다. - 로컬 네트워크인
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.0/8
ports:
- port: 5432
protocol: TCP
- to:
- ipBlock:
cidr: 10.0.0.0/8
ports:
- port: 6379
protocol: TCP
- to:
- ipBlock:
cidr: 0.0.0.0/0
except:
- 10.0.0.0/8
KEDA 구성
이 keda
섹션에서는 KEDA ScaledObjects
를 일반적인 HorizontalPodAutoscalers
대신 설치할 수 있습니다.
이 구성은 선택 사항이며 사용자나 외부 메트릭을 기반으로 자동 확장이 필요할 때 사용할 수 있습니다.
대부분의 설정은 해당되는 경우 hpa
섹션에 설정된 값으로 기본 설정됩니다.
다음이 모두 참인 경우 CPU 및 메모리 트리거가 자동으로 추가됩니다. 이는 triggers
가 설정되지 않았거나, 해당하는 request.cpu.request
또는 request.memory.request
설정이 0이 아닌 값으로 설정된 경우입니다.
-
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 에서 계산된 트리거 목록으로 설정됩니다.
|