KubernetesExecutor 태스크 문제 해결

Cloud Composer 1 | Cloud Composer 2

이 페이지에서는 KubernetesExecutor에서 실행하는 태스크 관련 문제를 해결하는 방법을 설명하고 일반적인 문제에 대한 솔루션을 제공합니다.

KubernetesExecutor 문제 해결을 위한 일반적인 접근법

KubernetesExecutor로 실행되는 태스크 문제를 해결하려면 다음 작업을 나열된 순서대로 수행하세요.

  1. DAG UI 또는 Airflow UI에서 작업 로그를 확인합니다.

  2. Google Cloud 콘솔에서 스케줄러 로그를 확인합니다.

    1. Google Cloud 콘솔에서 환경 페이지로 이동합니다.

      환경으로 이동

    2. 환경 목록에서 환경 이름을 클릭합니다. 환경 세부정보 페이지가 열립니다.

    3. 로그 탭으로 이동하고 Airflow 로그 > 스케줄러 섹션을 확인합니다.

    4. 지정된 기간 동안 태스크를 실행 중이었던 KubernetesExecutor 작업자 포드를 검사합니다. 포드가 더 이상 존재하지 않으면 이 단계를 건너뜁니다. 포드에는 airflow-k8s-worker 프리픽스가 있고 이름에 DAG 또는 태스크 이름이 포함됩니다. 실패한 태스크 또는 예약할 수 없는 태스크 등 보고된 문제를 찾습니다.

KubernetesExecutor의 일반적인 문제 해결 시나리오

이 섹션에는 KubernetesExecutor에서 발생할 수 있는 일반적인 문제 해결 시나리오가 나와 있습니다.

태스크는 Running 상태가 된 다음 실행 중에 실패합니다.

증상

  • Airflow UI 및 작업자 섹션의 로그 탭에 태스크 로그가 있습니다.

솔루션: 태스크 로그에 문제가 표시됩니다.

태스크 인스턴스가 queued 상태가 되고 일정 시간 후 UP_FOR_RETRY 또는 FAILED로 표시됩니다.

증상

  • Airflow UI 및 작업자 섹션의 로그 탭에 태스크 로그가 없습니다.
  • 스케줄러 섹션의 로그 탭에 태스크가 UP_FOR_RETRY 또는 FAILED로 표시되었다는 메시지가 있는 로그가 있습니다.
  • 포드 이름 내에 DAG/태스크 이름이 있는 airflow-k8s-worker-*.* 포드가 Failed/Pending 상태이거나 존재하지 않습니다.

솔루션:

  1. 스케줄러 로그에서 문제에 대한 세부정보를 검사합니다.

가능한 원인

  • 스케줄러 로그에 Adopted tasks were still pending after... 메시지가 포함되고 태스크 인스턴스가 출력된 경우 CeleryKubernetesExecutor가 사용자 환경에서 사용 설정되어 있는지 확인합니다.

태스크 인스턴스가 Queued 상태가 되고 즉시 UP_FOR_RETRY 또는 FAILED로 표시됩니다.

증상

  • Airflow UI 및 작업자 섹션의 로그 탭에 태스크 로그가 없습니다.
  • 스케줄러 섹션의 로그 탭에 있는 스케줄러 로그에 Pod creation failed with reason ... Failing task 메시지와 태스크가 UP_FOR_RETRY 또는 FAILED로 표시된 메시지가 있습니다.

솔루션:

  • 스케줄러 로그에서 정확한 응답 및 실패 이유를 확인하세요.

원인

오류 메시지가 quantities must match the regular expression ...인 경우 태스크 작업자 포드의 k8s 리소스(요청/한도)에 설정된 커스텀 값이 원인일 가능성이 높습니다.

다음 단계