- 빌드 및 배포 변수
- 데이터베이스 변수
- 작업 비활성화 변수
- 애플리케이션 비밀 변수 구성
- 애플리케이션 비밀 업데이트
- 복제 변수 구성
- 스테이징 및 프로덕션 환경을 위한 배포 정책
- 카나리 환경을 위한 배포 정책
- 프로덕션에 대한 점진적 롤아웃
- 프로덕션에 대한 시간 제한 점진적 롤아웃
CI/CD 변수
CI/CD 변수를 사용하여 Auto DevOps 도메인을 설정하고, 사용자 정의 Helm 차트를 제공하거나, 애플리케이션을 확장할 수 있습니다.
빌드 및 배포 변수
이 변수를 사용하여 빌드를 사용자 정의하고 배포합니다.
CI/CD 변수 | 설명 |
---|---|
ADDITIONAL_HOSTS |
Ingress 호스트에 추가되는 쉼표로 구분된 리스트로 지정된 완전한 도메인 이름입니다. |
<ENVIRONMENT>_ADDITIONAL_HOSTS |
특정 환경에 대해 Ingress 호스트에 추가되는 쉼표로 구분된 리스트로 지정된 완전한 도메인 이름입니다. ADDITIONAL_HOSTS 보다 우선합니다. |
AUTO_BUILD_IMAGE_VERSION |
build 작업에 사용되는 이미지 버전을 사용자 정의합니다. 버전 목록을 참조하세요. |
AUTO_DEPLOY_IMAGE_VERSION |
Kubernetes 배포 작업에 사용되는 이미지 버전을 사용자 정의합니다. 버전 목록을 참조하세요. |
AUTO_DEVOPS_ATOMIC_RELEASE |
Auto DevOps는 기본적으로 Helm 배포에 대해 --atomic 을 사용합니다. 이 변수를 false 로 설정하면 --atomic 사용이 비활성화됩니다. |
AUTO_DEVOPS_BUILD_IMAGE_CNB_BUILDER |
Cloud Native Buildpacks를 사용하여 빌드할 때 사용하는 빌더입니다. 기본 빌더는 heroku/buildpacks:18 입니다. 자세한 내용. |
AUTO_DEVOPS_BUILD_IMAGE_EXTRA_ARGS |
docker build 명령어에 전달할 추가 인수입니다. 인용부호를 사용해도 단어 분할을 방지할 수 없습니다. 자세한 내용. |
AUTO_DEVOPS_BUILD_IMAGE_FORWARDED_CI_VARIABLES |
빌드 환경(빌드팩 빌더 또는 docker build )으로 전달될 쉼표로 구분된 CI/CD 변수 이름 목록입니다. |
AUTO_DEVOPS_BUILD_IMAGE_CNB_PORT |
GitLab 15.0 이후, 생성된 Docker 이미지가 노출하는 포트입니다. 포트를 노출하지 않으려면 false 로 설정합니다. 기본값은 5000 입니다. |
AUTO_DEVOPS_BUILD_IMAGE_CONTEXT |
Dockerfile 및 Cloud Native Buildpacks의 빌드 컨텍스트 디렉토리를 설정하는 데 사용됩니다. 기본값은 루트 디렉토리입니다. |
AUTO_DEVOPS_CHART |
애플리케이션을 배포하는 데 사용되는 Helm 차트입니다. 기본값은 GitLab에서 제공하는 차트입니다. |
AUTO_DEVOPS_CHART_REPOSITORY |
차트를 검색하는 데 사용되는 Helm 차트 저장소입니다. 기본값은 https://charts.gitlab.io 입니다. |
AUTO_DEVOPS_CHART_REPOSITORY_NAME |
Helm 저장소의 이름을 설정하는 데 사용됩니다. 기본값은 gitlab 입니다. |
AUTO_DEVOPS_CHART_REPOSITORY_USERNAME |
Helm 저장소에 연결할 사용자 이름을 설정하는 데 사용됩니다. 기본값은 자격 증명이 없습니다. AUTO_DEVOPS_CHART_REPOSITORY_PASSWORD 도 설정하세요. |
AUTO_DEVOPS_CHART_REPOSITORY_PASSWORD |
Helm 저장소에 연결할 비밀번호를 설정하는 데 사용됩니다. 기본값은 자격 증명이 없습니다. AUTO_DEVOPS_CHART_REPOSITORY_USERNAME 도 설정하세요. |
AUTO_DEVOPS_CHART_REPOSITORY_PASS_CREDENTIALS |
차트 아티팩트가 저장소와 다른 호스트에 있을 때 Helm 저장소 자격 증명을 차트 서버로 전달하도록 비어 있지 않은 값으로 설정합니다. |
AUTO_DEVOPS_CHART_REPOSITORY_INSECURE |
Helm 명령어에 --insecure-skip-tls-verify 인수를 추가하기 위해 비어 있지 않은 값으로 설정합니다. 기본적으로 Helm은 TLS 검증을 사용합니다. |
AUTO_DEVOPS_CHART_CUSTOM_ONLY |
사용자 정의 차트만 사용하기 위해 비어 있지 않은 값으로 설정합니다. 기본적으로 최신 차트가 GitLab에서 다운로드됩니다. |
AUTO_DEVOPS_CHART_VERSION |
배포 차트의 버전을 설정합니다. 기본값은 사용 가능한 최신 버전입니다. |
AUTO_DEVOPS_COMMON_NAME |
GitLab 15.5부터, TLS 인증서에 사용되는 공통 이름을 사용자 정의하기 위해 유효한 도메인 이름으로 설정합니다. 기본값은 le-$CI_PROJECT_ID.$KUBE_INGRESS_BASE_DOMAIN 입니다. 이 대체 호스트를 Ingress에 설정하지 않으려면 false 로 설정합니다. |
AUTO_DEVOPS_DEPLOY_DEBUG |
이 변수가 있으면 Helm은 디버그 로그를 출력합니다. |
AUTO_DEVOPS_ALLOW_TO_FORCE_DEPLOY_V<N> |
auto-deploy-image v1.0.0부터, 이 변수가 있으면 차트의 새로운 주요 버전이 강제로 배포됩니다. 추가 정보는 경고 무시 및 계속 배포를 참조하세요. |
BUILDPACK_URL |
전체 Buildpack URL입니다. Pack에서 지원하는 URL을 가리켜야 합니다. |
CANARY_ENABLED |
카나리아 환경에 대한 배포 정책을 정의하는 데 사용됩니다. |
BUILDPACK_VOLUMES |
빌드팩 볼륨을 마운트할 하나 이상의 빌드팩 볼륨을 지정합니다. 파이프 | 를 리스트 구분자로 사용합니다. |
CANARY_PRODUCTION_REPLICAS |
프로덕션 환경에서 카나리아 배포를 위한 카나리아 복제본 수입니다. CANARY_REPLICAS 보다 우선합니다. 기본값은 1입니다. |
CANARY_REPLICAS |
카나리아 배포를 위한 카나리아 복제본 수입니다. 기본값은 1입니다. |
CI_APPLICATION_REPOSITORY |
빌드 또는 배포 중인 컨테이너 이미지의 저장소, $CI_APPLICATION_REPOSITORY:$CI_APPLICATION_TAG 입니다. 추가 세부정보는 사용자 정의 컨테이너 이미지를 참조하세요. |
CI_APPLICATION_TAG |
빌드 또는 배포 중인 컨테이너 이미지의 태그, $CI_APPLICATION_REPOSITORY:$CI_APPLICATION_TAG 입니다. 추가 세부정보는 사용자 정의 컨테이너 이미지를 참조하세요. |
DAST_AUTO_DEPLOY_IMAGE_VERSION |
기본 분기에서 DAST 배포에 사용되는 이미지 버전을 사용자 정의합니다. 일반적으로 AUTO_DEPLOY_IMAGE_VERSION 과 같아야 합니다. 버전 목록을 참조하세요. |
DOCKERFILE_PATH |
빌드 단계의 기본 Dockerfile 경로를 재정의할 수 있게 합니다 |
HELM_RELEASE_NAME |
helm 릴리스 이름을 재정의할 수 있게 합니다. 하나의 네임스페이스에 여러 프로젝트를 배포할 때 고유한 릴리스 이름을 지정하는 데 사용할 수 있습니다. |
HELM_UPGRADE_VALUES_FILE |
helm upgrade 값 파일을 재정의할 수 있게 합니다. 기본값은 .gitlab/auto-deploy-values.yaml 입니다. |
HELM_UPGRADE_EXTRA_ARGS |
애플리케이션을 배포할 때 helm upgrade 명령에서 추가 옵션을 허용합니다. 인용부호를 사용해도 단어 분할을 방지할 수 없습니다. |
INCREMENTAL_ROLLOUT_MODE |
존재하는 경우, 프로덕션 환경에서 애플리케이션의 점진적 롤아웃을 활성화하는 데 사용할 수 있습니다. 수동 배포 작업에는 manual 로 설정하거나, 자동 롤아웃 배포에는 5분 간격으로 배포되도록 timed 로 설정합니다. |
K8S_SECRET_* |
K8S_SECRET_ 로 접두사가 붙은 모든 변수는 자동으로 배포된 애플리케이션의 환경 변수로 제공됩니다. |
KUBE_CONTEXT |
KUBECONFIG 에서 사용할 컨텍스트를 선택하는 데 사용할 수 있습니다. KUBE_CONTEXT 가 비어 있으면, KUBECONFIG 의 기본 컨텍스트(있는 경우)가 사용됩니다. Kubernetes용 에이전트와 사용할 때 컨텍스트를 선택해야 합니다. |
KUBE_INGRESS_BASE_DOMAIN |
클러스터별로 도메인을 설정하는 데 사용할 수 있습니다. 추가 정보는 클러스터 도메인을 참조하세요. |
KUBE_NAMESPACE |
배포에 사용되는 네임스페이스입니다. 인증서 기반 클러스터를 사용할 때, 이 값을 직접 수정해서는 안 됩니다. |
KUBECONFIG |
배포에 사용할 kubeconfig입니다. 사용자 제공 값이 GitLab 제공 값보다 우선합니다. |
PRODUCTION_REPLICAS |
프로덕션 환경에 배포할 복제본 수입니다. REPLICAS 보다 우선하며 기본값은 1입니다. 무중단 업그레이드를 위해 2 이상으로 설정합니다. |
REPLICAS |
배포할 복제본 수입니다. 기본값은 1입니다. replicaCount 수정을 대신 이 변수를 변경하세요. |
ROLLOUT_RESOURCE_TYPE |
사용자 정의 Helm 차트를 사용할 때 배포되는 리소스 유형을 지정할 수 있습니다. 기본값은 deployment 입니다. |
ROLLOUT_STATUS_DISABLED |
모든 리소스 유형을 지원하지 않기 때문에 롤아웃 상태 검사를 비활성화하는 데 사용됩니다. 예를 들어, cronjob 입니다. |
STAGING_ENABLED |
스테이징 및 프로덕션 환경에 대한 배포 정책을 정의하는 데 사용됩니다. |
TRACE |
Helm 명령이 자세한 출력을 생성하도록 비어 있지 않은 값으로 설정합니다. 이 설정을 사용하여 Auto DevOps 배포 문제를 진단할 수 있습니다. |
데이터베이스 변수
경고:
GitLab 16.0부터 POSTGRES_ENABLED
는 더 이상 기본값으로 설정되지 않습니다.
이 변수를 사용하여 CI/CD를 PostgreSQL 데이터베이스와 통합합니다.
CI/CD 변수 | 설명 |
---|---|
DB_INITIALIZE |
애플리케이션의 PostgreSQL 데이터베이스를 초기화하는 데 실행할 명령을 지정하는 데 사용됩니다. 애플리케이션 팟 내에서 실행됩니다. |
DB_MIGRATE |
애플리케이션의 PostgreSQL 데이터베이스를 마이그레이션하는 데 실행할 명령을 지정하는 데 사용됩니다. 애플리케이션 팟 내에서 실행됩니다. |
POSTGRES_ENABLED |
PostgreSQL이 활성화되었는지 여부. PostgreSQL의 자동 배포를 활성화하려면 true 로 설정합니다. |
POSTGRES_USER |
PostgreSQL 사용자. 기본값은 user 입니다. 사용자 지정 사용자 이름을 사용하도록 설정합니다. |
POSTGRES_PASSWORD |
PostgreSQL 비밀번호. 기본값은 testing-password 입니다. 사용자 지정 비밀번호를 사용하도록 설정합니다. |
POSTGRES_DB |
PostgreSQL 데이터베이스 이름. 기본값은 $CI_ENVIRONMENT_SLUG 의 값입니다. 사용자 지정 데이터베이스 이름을 사용하도록 설정합니다. |
POSTGRES_VERSION |
사용할 postgres 도커 이미지 태그. 테스트와 배포의 기본값은 9.6.16 입니다. AUTO_DEVOPS_POSTGRES_CHANNEL 이 1 로 설정된 경우 배포는 기본 버전 9.6.2 를 사용합니다. |
POSTGRES_HELM_UPGRADE_VALUES_FILE |
auto-deploy-image v2를 사용할 때, 이 변수는 PostgreSQL에 대한 helm upgrade 값 파일을 재정의할 수 있게 합니다. 기본값은 .gitlab/auto-deploy-postgres-values.yaml 입니다. |
POSTGRES_HELM_UPGRADE_EXTRA_ARGS |
auto-deploy-image v2를 사용할 때, 이 변수는 애플리케이션 배포 시 helm upgrade 명령에 추가 PostgreSQL 옵션을 허용합니다. 따옴표를 사용해도 단어 분할은 방지되지 않습니다. |
POSTGRES_CHART_REPOSITORY |
PostgreSQL 차트를 검색하는 데 사용되는 Helm 차트 리포지토리. 기본값은 https://raw.githubusercontent.com/bitnami/charts/eb5f9a9513d987b519f0ecd732e7031241c50328/bitnami 입니다. |
POSTGRES_CHART_VERSION |
PostgreSQL 차트에 사용되는 Helm 차트 버전. 기본값은 8.2.1 입니다. |
작업 비활성화 변수
이 변수를 사용하여 CI/CD 작업을 비활성화합니다.
작업 이름 | CI/CD 변수 | GitLab 버전 | 설명 |
---|---|---|---|
.fuzz_base |
COVFUZZ_DISABLED |
더 알아보기를 통해 .fuzz_base 가 자신의 작업을 위한 기능을 제공하는 방법을 확인하세요. 값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
apifuzzer_fuzz |
API_FUZZING_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
build |
BUILD_DISABLED |
변수가 존재하면 작업이 생성되지 않습니다. | |
build_artifact |
BUILD_DISABLED |
변수가 존재하면 작업이 생성되지 않습니다. | |
brakeman-sast |
SAST_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
canary |
CANARY_ENABLED |
이 수동 작업은 변수가 존재하면 생성됩니다. | |
code_intelligence |
CODE_INTELLIGENCE_DISABLED |
변수가 존재하면 작업이 생성되지 않습니다. | |
code_quality |
CODE_QUALITY_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
container_scanning |
CONTAINER_SCANNING_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
dast |
DAST_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
dast_environment_deploy |
DAST_DISABLED_FOR_DEFAULT_BRANCH 또는 DAST_DISABLED
|
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
dependency_scanning |
DEPENDENCY_SCANNING_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
flawfinder-sast |
SAST_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
gemnasium-dependency_scanning |
DEPENDENCY_SCANNING_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
gemnasium-maven-dependency_scanning |
DEPENDENCY_SCANNING_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
gemnasium-python-dependency_scanning |
DEPENDENCY_SCANNING_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
kubesec-sast |
SAST_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
license_management |
LICENSE_MANAGEMENT_DISABLED |
GitLab 12.7 및 이전 | 변수가 존재하면 작업이 생성되지 않습니다. GitLab 12.8부터 작업이 더 이상 사용되지 않습니다. 자세히 보기 |
license_scanning |
LICENSE_MANAGEMENT_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. GitLab 15.9부터 작업이 더 이상 사용되지 않습니다. 자세히 보기
|
|
load_performance |
LOAD_PERFORMANCE_DISABLED |
변수가 존재하면 작업이 생성되지 않습니다. | |
nodejs-scan-sast |
SAST_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
performance |
PERFORMANCE_DISABLED |
GitLab 13.12 및 이전 | 브라우저 성능. 변수가 존재하면 작업이 생성되지 않습니다. browser_performance 로 대체되었습니다. |
browser_performance |
BROWSER_PERFORMANCE_DISABLED |
브라우저 성능. 변수가 존재하면 작업이 생성되지 않습니다. performance 를 대체합니다. |
|
phpcs-security-audit-sast |
SAST_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
pmd-apex-sast |
SAST_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
review |
REVIEW_DISABLED |
변수가 존재하면 작업이 생성되지 않습니다. | |
review:stop |
REVIEW_DISABLED |
수동 작업. 변수가 존재하면 작업이 생성되지 않습니다. | |
secret_detection |
SECRET_DETECTION_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
secret_detection_default_branch |
SECRET_DETECTION_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
semgrep-sast |
SAST_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
sobelow-sast |
SAST_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
stop_dast_environment |
DAST_DISABLED_FOR_DEFAULT_BRANCH 또는 DAST_DISABLED
|
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
spotbugs-sast |
SAST_DISABLED |
값이 "true" 인 경우 작업이 생성되지 않습니다. |
|
test |
TEST_DISABLED |
변수가 존재하면 작업이 생성되지 않습니다. | |
staging |
STAGING_ENABLED |
변수가 존재하면 작업이 생성됩니다. | |
stop_review |
REVIEW_DISABLED |
변수가 존재하면 작업이 생성되지 않습니다. |
애플리케이션 비밀 변수 구성
일부 배포된 애플리케이션은 비밀 변수에 대한 액세스가 필요합니다.
Auto DevOps는 K8S_SECRET_
로 시작하는 CI/CD 변수를 감지하고 이를 배포된 애플리케이션에 환경 변수로 제공합니다.
전제 조건:
- 변수 값은 한 줄이어야 합니다.
비밀 변수를 구성하려면:
-
왼쪽 사이드바에서 Search or go to를 선택하고 프로젝트를 찾습니다.
-
Settings > CI/CD를 선택합니다.
-
Variables를 확장합니다.
-
K8S_SECRET_
접두사를 가진 CI/CD 변수를 생성합니다. 예를 들어,K8S_SECRET_RAILS_MASTER_KEY
라는 변수를 생성할 수 있습니다. -
수동으로 새 파이프라인을 생성하거나 코드를 GitLab에 푸시하여 Auto DevOps 파이프라인을 실행합니다.
Kubernetes 비밀
Auto DevOps 파이프라인은 애플리케이션 비밀 변수를 사용하여 Kubernetes 비밀을 채웁니다. 이 비밀은 환경마다 고유합니다.
애플리케이션을 배포할 때, 비밀은 애플리케이션을 실행하는 컨테이너의 환경 변수로 로드됩니다. 예를 들어, K8S_SECRET_RAILS_MASTER_KEY
라는 비밀을 생성하면, Kubernetes 비밀은 다음과 같을 수 있습니다:
$ kubectl get secret production-secret -n minimal-ruby-app-54 -o yaml
apiVersion: v1
data:
RAILS_MASTER_KEY: MTIzNC10ZXN0
kind: Secret
metadata:
creationTimestamp: 2018-12-20T01:48:26Z
name: production-secret
namespace: minimal-ruby-app-54
resourceVersion: "429422"
selfLink: /api/v1/namespaces/minimal-ruby-app-54/secrets/production-secret
uid: 57ac2bfd-03f9-11e9-b812-42010a9400e4
type: Opaque
애플리케이션 비밀 업데이트
환경 변수는 일반적으로 Kubernetes 파드에서 불변입니다.
비밀을 업데이트하고 수동으로 새 파이프라인을 생성하면, 실행 중인 애플리케이션은 업데이트된 비밀을 수신하지 않습니다.
애플리케이션 비밀을 업데이트하려면 다음 중 하나를 수행합니다:
- Kubernetes 배포를 강제로 수행하여 GitLab에 코드 업데이트를 푸시합니다.
- 실행 중인 파드를 수동으로 삭제하여 Kubernetes가 업데이트된 비밀로 새로운 파드를 생성하게 합니다.
다중 줄 값이 있는 변수는 Auto DevOps 스크립팅 환경의 제한으로 인해 지원되지 않습니다.
복제 변수 구성
배포를 확장할 때 복제 변수를 추가합니다:
-
프로젝트 CI/CD 변수로 복제 변수를 추가합니다.
-
애플리케이션을 확장하려면 다시 배포합니다.
경고: Kubernetes를 직접 사용하여 애플리케이션을 확장하지 마십시오. Helm은 변경 사항을 감지하지 못할 수 있으며, 이후의 Auto DevOps 배포가 변경 사항을 무효화할 수 있습니다.
사용자 지정 복제 변수
형식 <TRACK>_<ENV>_REPLICAS
로 사용자 지정 복제 변수를 생성할 수 있습니다:
-
<TRACK>
는 Helm Chart 애플리케이션 정의에 설정된track
Kubernetes 레이블의 모든 대문자 값입니다.track
이 설정되지 않으면 사용자 지정 변수에서<TRACK>
을 생략합니다. -
<ENV>
는.gitlab-ci.yml
에 설정된 배포 작업의 모든 대문자 환경 이름입니다.
예를 들어, 환경이 qa
이고 트랙이 foo
인 경우 FOO_QA_REPLICAS
라는 환경 변수를 만듭니다:
QA testing:
stage: deploy
environment:
name: qa
script:
- deploy foo
트랙 foo
는 애플리케이션의 Helm 차트에 정의되어 있어야 합니다. 예를 들어:
replicaCount: 1
image:
repository: gitlab.example.com/group/project
tag: stable
pullPolicy: Always
secrets:
- name: gitlab-registry
application:
track: foo
tier: web
service:
enabled: true
name: web
type: ClusterIP
url: http://my.host.com/
externalPort: 5000
internalPort: 5000
스테이징 및 프로덕션 환경을 위한 배포 정책
Auto DevOps는 일반적으로 지속적인 배포를 사용하며,
기본 브랜치에서 새로운 파이프라인이 실행될 때마다
자동으로 production
환경으로 푸시합니다.
프로덕션에 수동으로 배포하려면 STAGING_ENABLED
CI/CD 변수를 사용할 수 있습니다.
STAGING_ENABLED
를 설정하면 GitLab은 자동으로
응용 프로그램을 staging
환경에 배포합니다.
프로덕션에 배포할 준비가 되면 GitLab은 production_manual
작업을 생성합니다.
프로젝트 설정에서 수동 배포를 활성화할 수도 있습니다.
카나리 환경을 위한 배포 정책
프로덕션에 변경 내용을 배포하기 전에 카나리 환경을 사용할 수 있습니다.
CANARY_ENABLED
를 설정하면 GitLab은 두 개의 수동 작업을 생성합니다:
-
canary
- 응용 프로그램을 카나리 환경에 배포합니다. -
production_manual
- 응용 프로그램을 프로덕션에 배포합니다.
프로덕션에 대한 점진적 롤아웃
점진적 롤아웃을 사용하여 응용 프로그램을 지속적으로 배포하세요, 처음에는 몇 개의 Pods만 시작합니다. Pods의 수를 수동으로 늘릴 수 있습니다.
프로젝트 설정에서
수동 배포를 활성화하거나
INCREMENTAL_ROLLOUT_MODE
를 manual
로 설정하여 활성화할 수 있습니다.
INCREMENTAL_ROLLOUT_MODE
를 manual
로 설정하면
GitLab은 네 개의 수동 작업을 생성합니다:
rollout 10%
rollout 25%
rollout 50%
rollout 100%
백분율은 REPLICAS
CI/CD 변수를 기반으로 하며,
배포에 사용되는 Pods의 수를 정의합니다.
예를 들어, 값이 10
이고 10%
롤아웃 작업을 실행하면,
응용 프로그램은 한 개의 Pod에만 배포됩니다.
롤아웃 작업은 어떤 순서로든 실행할 수 있습니다. 축소하려면 낮은 백분율 작업을 다시 실행하세요.
rollout 100%
작업을 실행한 후에는 축소할 수 없으며,
배포를 롤백해야 합니다.
예시 점진적 롤아웃 구성
INCREMENTAL_ROLLOUT_MODE
및 STAGING_ENABLED
가 없는 경우:
INCREMENTAL_ROLLOUT_MODE
가 없고 STAGING_ENABLED
가 있는 경우:
INCREMENTAL_ROLLOUT_MODE
가 manual
로 설정되고
STAGING_ENABLED
가 없는 경우:
INCREMENTAL_ROLLOUT_MODE
가 manual
로 설정되고
STAGING_ENABLED
가 있는 경우:
프로덕션에 대한 시간 제한 점진적 롤아웃
시간 제한 점진적 롤아웃을 사용하여 응용 프로그램을 지속적으로 배포하세요, 처음에는 몇 개의 Pods만 시작합니다.
프로젝트 설정에서
시간 제한 점진적 배포를 활성화하거나
INCREMENTAL_ROLLOUT_MODE
CI/CD 변수를 timed
로 설정하여 활성화할 수 있습니다.
INCREMENTAL_ROLLOUT_MODE
를 timed
로 설정하면
GitLab은 네 개의 작업을 생성합니다:
timed rollout 10%
timed rollout 25%
timed rollout 50%
timed rollout 100%
작업 간에는 5분의 지연이 있습니다.