TIL 51

이예인·2023년 12월 18일
0

TIL

목록 보기
10/10

Airflow

Airflow를 컨테이너 기술로 운영하는 방법

  1. Airflow Operator로 KubernetesPodOperator, DockerOperator를 사용
  2. Airflow Executor를 KubernetesExecutor, CeleryKubernetesExecutor, LocalKubernetesExecutor로 사용

Executor

  • Task들을 관리하고 실행힌다.
    • 병렬, 일렬
    • 어느 worker에서 실행할건지

Executor의 종류

  • Sequential Executor
    • default
    • Sqlite와 같은 싱글 스레드 DB에서만 사용 가능하다.
  • Local Executor
    • task들을 Airflow 마스터 노드 안에서 실행한다.
    • worker node가 하나이다.
  • Celery Executor
    • 다수의 worker 노드가 있는 경우 사용된다.
    • Celery 큐를 사용해 task들을 worker 노드로 분산해서 실행
  • Kubernetes Executor
  • Local Kubernetes Executor
  • Celery Kubernetes Executor

Docker

Image의 구성 요소

  • OS
  • 소프트웨어 자체 코드
  • 소프트웨어가 필요로 하는 라이브러리
  • 파일 시스템 스냅샷
  • 환경 변수
    • ARG
    • ENV
  • 메타데이터
    • 버전
      • 기본은 latest
    • 작성자
    • 설명
    • ..

DOCKER FILE에서 사용하는 변수

DOCKER 명령어

CMD vs ENTRYPOINT

  • Container가 시작할 때 실행되어야 하는 명령어를 지정하는데 사용한다.
  • DOCKER FILE에서 여러번 실행되면 각각 마지막 것만 사용된다.
  • ENTRYPOINT가 우선순위가 더 높다.
  • Best Practice는 CMD를 사용하는 것이다.
  • CMD는 RUN 뒤에 명령어를 쓰면 override된다.
    • docker run my-image [cmd2.sh](http://cmd2.sh) 를 하면 cmd2.sh가 실행된다.
  • ENTRYPOINT와 CMD를 동시에 쓰면 ENTRYPOINT가 기본 명령어가 되고 CMD가 parameter가 된다.
    • 그럼 여기서 또 파라미터로 주면 CMD가 덮어쓰이나?

RUN vs EXEC

  • RUN
    • 빌드 때 실행되어야 하는 명령어
    • RUN apt-get update && apt-get install -y curl
  • EXEC
    • 이미 만들어진 컨테이너 안에 진입해서 실행하는 명렁어

ARG vs ENV

  • ARG
    • 빌드타임과 이미지에 사용되는 환경변수
  • ENV
    • 빌드타임에만 사용되는 환경변수

DockerFile로 이미지 생성하기

FROM node:alpine
COPY . /app # 현재 디렉터리(.)에 있는 내용을 모두 app/ 하위로 복사한다.
WORKDIR /app 
CMD node app.js

Expose

  • 서비스로 사용할 포트번호

USER

  • 컨테이너를 실행할 때 사용할 유저

0개의 댓글

관련 채용 정보