인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

mini0529님의 프로필 이미지

작성한 질문수

Airflow 마스터 클래스

도커&에어플로우설치

Airflow 설치 오류(airflow-apiserver-1 is unhealthy)

작성

·

204

1

에어플로우 설치 중 오류가 발생해 오랜시간동안 재시도해보다가 질문 드립니다.!

아래의 오류들에 대한 원인이 무엇일지, 그리고 어떻게 해결해야 할지 궁금합니다.


1. sudo docker compose up airflow-init


해당 코드 실행 중 'The container is run as root user. For security, consider using a regular user account.' 라는 알림이 나오며, 사용자-airflow-init-1 이 아닌 airflow-init-1로 뜹니다.

 

  1. sudo docker compose up

해당 코드 실행 중 'airflow-apiserver-1 is unhealthy'라는 오류가 발생합니다. (이 문제로 도커 초기화 및 재설치부터 고유한 user secret key 입력 등 여러번 시도했으나, 동일한 오류가 계속 반복됩니다.)

참고로, sudo docker compose up 코드 실행 중 다음과 같은 오류들이 주로 보입니다.

airflow-apiserver-1 | ValueError: The value api_auth/jwt_secret must be set!

airflow-apiserver-1 | ERROR: Application startup failed. Exiting.

airflow-apiserver-1 | ERROR: Traceback (most recent call last):

airflow-apiserver-1 | INFO: Child process [3223] died

 

 

 

답변 2

0

김현진님의 프로필 이미지
김현진
지식공유자

안녕하세요 mini0529 님

일단 해결되어서 다행입니다만, 지금 진행하시는 airflow 실습 버전이 3.0 버전인 것 같습니다.

제가 "도커&에어플로우 설치" 챕터에 안내를 추가했습니다만,

Airflow 버전 3.0이 되면서 많은 부분이 변경됐습니다. Airflow 강의 보완으로는 설명이 안될 것 같아서 일부 강의는 재촬영하고 3.0에서 삭제된 기능은 강의에서 제거 예정입니다.
그 전까지 Airflow 2.10.5 버전으로 실습 진행 부탁드립니다. (3.0 바로 아래 버전입니다)

 

버전을 바꾸는 방법은 로컬 환경 OS에서 아래 명령을 수행하면 3.0 이미지와 관련 DB 볼륨을 모두 삭제합니다.

docker compose down --volumes --rmi all 

 

그 후 아래처럼 2.10.5 버전 이미지에 해당하는 docker-compose.yaml 파일을 다운받아서 실행하면 됩니다.

 

curl -LfO 'https://airflow.apache.org/docs/apache-airflow/2.10.5/docker-compose.yaml'
sudo docker compose up airflow-init
sudo docker compose up

 

꼭 이렇게 실습 진행 부탁드려요.

Airflow 3.0 버전으로 강의 변경 작업이 완료되면

강의 공지기능으로 어느 부분이 변경되었는지 별도로 알려드릴께요 ^^

 

 

0

인프런 AI 인턴님의 프로필 이미지

안녕하세요, 인프런 AI 인턴입니다.

mini0529님, 에어플로우 설치 과정에서 발생한 문제는 주로 Docker의 설정과 Airflow의 설정 문제로 보입니다. 각각의 오류에 대해 간단히 설명드리고 해결 방법을 제안해드리겠습니다.

  1. Root 사용자로 컨테이너 실행 경고:
    Docker 컨테이너가 root 사용자로 실행될 때 경고가 발생하는 것은 보안상의 이유로 일반 계정을 사용하는 것이 좋다는 것을 알립니다. 하지만 이 경고는 Airflow를 실행하는 데 큰 문제가 되지 않습니다. 다만, 실제 운영 환경에서는 비루트 사용자로 실행하는 것이 권장됩니다.

  2. UNHEALTHY 상태 오류:
    “airflow-apiserver-1 is unhealthy”라는 메시지는 컨테이너가 정상적으로 실행되지 않는다는 뜻입니다. 이 상황에서 주로 나타나는 원인 중 하나는 기본 설정 값이 중요하게 작동하는 것입니다. 특히, JWT 토큰과 관련된 설정 문제일 가능성이 높습니다.

    • jwt_secret 설정: 오류 메시지를 보면 api_auth/jwt_secret 값을 설정해야 한다고 나옵니다. 이는 인증에 필요한 비밀 키로, Airflow 구성 파일 내에서 설정해주어야 합니다. airflow.cfg 파일을 찾아 [api_auth] 섹션에서 jwt_secret 값을 설정하세요. 이 값은 보안을 위해 고유하고 강력한 비밀번호로 설정하는 것이 좋습니다.
  3. 기타 초기 설정 수정 사항 확인:

    • docker-compose.yaml 파일에 정의된 환경 변수나 설정 값이 누락되었는지 확인하세요.
    • Airflow 관련 설정 파일(airflow.cfg 등)을 다시 한번 점검해 보시기 바랍니다. 특히, 고유한 user secret key와 같은 필수 설정 값을 올바르게 설정했는지 확인하세요.
  4. 로그 분석의 중요성:

    • 발생한 오류 로그를 통해 구체적인 에러의 원인을 파악하는 것이 중요합니다. 경우에 따라 에러 메시지가 특정 설정 값을 원하는 경우가 많습니다.

관련하여 도움을 줄 수 있는 기존의 게시물이 몇 개 있습니다.

이 외에도, 공통적인 Docker와 Airflow 설정 관련 문제를 모두 점검해보시기 바랍니다. 문제가 지속될 경우, 설정이나 오류 메시지의 구체적인 내용을 인프런 질문 게시판에 상세히 보내주셔서 전문가의 도움을 받는 것도 좋은 방법입니다.

저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다.
현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏
추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.

mini0529님의 프로필 이미지
mini0529
질문자

docker-compose.yaml 편집기로 들어가서 시크릿키 넣었더니 해결되었습니다!

mini0529님의 프로필 이미지

작성한 질문수

질문하기