Cloud Composer 1 | Cloud Composer 2 | Cloud Composer 3
이 페이지에서는 환경을 업데이트하는 방법을 설명합니다.
업데이트 작업 정보
새로운 확장 및 성능 매개변수 지정 또는 커스텀 PyPI 패키지 설치와 같이 환경 매개변수를 변경하면 환경이 업데이트됩니다.
이 작업이 완료된 후 변경사항이 환경에 제공됩니다.
단일 Cloud Composer 환경에서는 한 번에 하나만 업데이트 작업을 시작할 수 있습니다. 다른 환경 작업을 시작하려면 업데이트 작업이 완료될 때까지 기다려야 합니다.
업데이트가 Airflow 태스크 실행에 미치는 영향
업데이트 작업을 실행하면 환경의 Airflow 스케줄러 및 작업자를 다시 시작해야 할 수 있습니다. 이 경우 현재 실행 중인 모든 태스크가 종료됩니다. 업데이트 작업이 완료되면 Airflow가 DAG에 대한 재시도를 구성하는 방법에 따라 이러한 태스크를 재시도하도록 예약합니다.
다음과 같은 변경사항은 Airflow 태스크 종료를 유발합니다.
- 환경을 새 버전으로 업그레이드
- 커스텀 PyPI 패키지 추가, 변경 또는 삭제
- Cloud Composer 환경 변수 변경
- Airflow 구성 옵션 재정의를 추가, 삭제 또는 해당 값 변경
- Airflow 작업자의 CPU, 메모리 또는 스토리지 변경
- 새 값이 현재 실행 중인 작업자 수보다 낮으면 최대 Airflow 작업자 수 감소. 예를 들어 환경에서 현재 3명의 작업자를 실행하고 최댓값이 2로 감소하는 경우입니다.
- 환경의 복원력 모드 변경
다음 변경사항으로 인해 Airflow 태스크가 종료되지 않습니다.
- DAG 생성, 업데이트 또는 삭제(업데이트 작업 아님)
- DAG 일시중지 또는 재개(업데이트 작업 아님)
- Airflow 변수 변경(업데이트 작업 아님)
- Airflow 연결 변경(업데이트 작업 아님)
- Dataplex 데이터 계보 통합 사용 설정 또는 사용 중지
- 환경 크기 변경
- 스케줄러 수 변경
- Airflow 스케줄러의 CPU, 메모리 또는 스토리지 변경
- 트리거 수 변경
- Airflow 트리거의 CPU, 메모리 또는 스토리지 변경
- Airflow 웹 서버의 CPU, 메모리 또는 스토리지 변경
- 최소 작업자 수 증가 또는 감소
- 최대 Airflow 작업자 수를 줄입니다. 예를 들어 환경에서 현재 2명의 작업자를 실행하고 최댓값이 3으로 감소하는 경우입니다.
- 유지보수 기간 변경
- 예약된 스냅샷 설정 변경
- 환경 라벨 변경
Terraform을 사용한 업데이트
Terraform이 업데이트 대신 새 환경을 만드는지 확인하려면 terraform apply
전에 terraform plan
을 실행합니다.
시작하기 전에
계정, 환경의 서비스 계정, 프로젝트의 Cloud Composer 서비스 에이전트 계정에 필요한 권한이 있는지 확인합니다.
계정에 환경 업데이트 작업을 트리거 가능한 역할이 있어야 합니다.
환경의 서비스 계정에는 업데이트 작업을 수행할 수 있는 충분한 권한이 있는 역할이 있어야 합니다.
작업이 완료되면
gcloud composer environments update
명령어가 종료됩니다. 작업이 완료될 때까지 기다리지 않으려면--async
플래그를 사용하면 됩니다.
환경 업데이트
환경 업데이트에 대한 자세한 내용은 특정 업데이트 작업에 대한 다른 문서 페이지를 참조하세요. 예를 들면 다음과 같습니다.
환경 세부정보 보기
콘솔
Google Cloud 콘솔에서 환경 페이지로 이동합니다.
환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.
gcloud
다음 gcloud
명령어를 실행합니다.
gcloud composer environments describe ENVIRONMENT_NAME \
--location LOCATION
다음과 같이 바꿉니다.
ENVIRONMENT_NAME
: 환경 이름LOCATION
을 환경이 위치한 리전으로 바꿉니다.
API
environments.get
API 요청을 생성합니다.
예:
GET https://composer.googleapis.com/v1/projects/example-project/
locations/us-central1/environments/example-environment
Terraform
환경 리소스에 대해 terraform state show
명령어를 실행합니다.
환경의 Terraform 리소스 이름은 해당 환경의 이름과 다를 수 있습니다.
terraform state show google_composer_environment.RESOURCE_NAME
다음과 같이 바꿉니다.
RESOURCE_NAME
을 환경의 리소스 이름으로 바꿉니다.
업데이트 변경사항 롤백
드물지만 시간 초과 등으로 인해 업데이트 작업이 중단되고 Airflow 웹 서버와 같이 모든 환경 구성요소에서 요청된 변경사항이 롤백될 수 있습니다.
예를 들어 업데이트 작업에 따라 추가 PyPI 모듈을 설치 또는 제거하거나, 새로운 Airflow 또는 Cloud Composer 환경 변수를 다시 정의 또는 정의하거나, 일부 Airflow 관련 매개변수를 변경할 수 있습니다.
이러한 상황은 Cloud Composer 클러스터의 자동 확장 또는 유지보수 작업과 같은 다른 작업이 진행 중일 때 업데이트 작업이 트리거된 경우에 발생할 수 있습니다.
이러한 경우에는 작업을 반복하는 것이 좋습니다.
업데이트 또는 업그레이드 작업 기간
대부분의 업데이트 또는 업그레이드 작업에서는 Airflow 스케줄러, 작업자, 웹 서버와 같은 Airflow 구성요소를 다시 시작해야 합니다.
구성요소가 다시 시작된 경우 이를 초기화해야 합니다. 초기화 중에 Airflow 스케줄러와 작업자는 환경 버킷에서 /dags
및 /plugins
폴더 콘텐츠를 다운로드합니다. Airflow 스케줄러와 작업자에 파일을 동기화하는 프로세스는 즉시 수행되지 않으며 이러한 폴더에 있는 모든 객체의 총 크기와 개수에 따라 달라집니다.
각각 /dags
및 /plugins
폴더에 있는 DAG 및 플러그인 파일만 유지하고 다른 모든 파일은 삭제하는 것이 좋습니다. /dags
및 /plugins
폴더에 데이터가 너무 많으면 Airflow 구성요소 초기화가 느려지고 일부 경우에 초기화가 불가능해질 수 있습니다.
/dags
및 /plugins
폴더에서 데이터를 30MB 미만으로 유지하고 데이터가 100MB를 초과하지 않도록 하는 것이 좋습니다.
자세한 내용은 다음을 참조하세요.
GKE 노드의 머신 유형 업그레이드
기존 default-pool
을 삭제하고 원하는 머신 유형으로 새 default-pool
을 만들어 환경의 GKE 클러스터의 머신 유형을 수동으로 업그레이드할 수 있습니다.
환경을 만들 때 Cloud Composer 환경에서 발생하는 컴퓨팅 유형에 따라 적합한 머신 유형을 지정하는 것이 좋습니다.
리소스 집약적인 컴퓨팅 작업을 실행하는 경우 GKE 오퍼레이터를 사용해야 할 수 있습니다.
업그레이드 후에도 이전 머신 유형이 환경 세부정보에 나열됩니다. 예를 들어 환경 세부정보 페이지에 새 머신 유형이 반영되지 않습니다.
콘솔
머신 유형을 업그레이드하려면 다음 안내를 따르세요.
Google Cloud 콘솔에서 환경 페이지로 이동합니다.
환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.
기본 노드 풀에 대한 정보를 가져옵니다.
환경 구성 탭으로 이동합니다.
클러스터 세부정보 보기 링크를 클릭합니다.
노드 섹션의 클러스터 페이지에서 default-pool을 클릭합니다.
노드 풀 세부정보 페이지에서 default-pool의 모든 정보를 기록합니다. 환경에서 새 기본 노드 풀을 만들 때 이 정보를 사용합니다.
default-pool을 삭제하려면 다음 안내를 따르세요.
노드 풀 세부정보 페이지에서 뒤로 화살표를 클릭하여 환경의 클러스터 페이지로 돌아갑니다.
노드 풀 섹션에서 default-pool의 휴지통 아이콘을 클릭합니다. 삭제를 클릭하여 작업을 확인합니다.
새 default-pool을 만들려면 다음 안내를 따르세요.
클러스터 페이지에서 노드 풀 추가를 클릭합니다.
이름에
default-pool
을 입력합니다. 환경의 워크플로가 이 풀에서 실행될 수 있도록default-pool
이름을 사용해야 합니다.크기 및 노드 설정을 입력합니다.
(기본 Compute Engine 서비스 계정만 해당) 액세스 범위에서 모든 Cloud API에 대한 전체 액세스 허용을 선택합니다.
저장을 클릭합니다.
워크로드가 균일하지 않게 배포되면 airflow-worker 배포 크기를 0으로 줄이고 다시 확장합니다.