[시작하세요! 도커/쿠버네티스]13장 포드를 사용하는 다른 오브젝트들

ybg7955·2020년 5월 23일
0
post-thumbnail

13.1 잡(Jobs)

특정 동작을 수행하고 종료해야 하는 작업을 위한 오브젝트

  • 포드를 생성해 원하는 동작을 수행
  • 잡에서 원하는 최종 상태는 '포드가 시행되어 정상적으로 종료되는 것'
  • 포드의 컨테이너가 종료 코드로서 0을 반환해 Completed 상태가 되는 것이 목표
  • 잡에서 생성된 포드는 항상 실행 중인 것을 목표로 하지 않음
    ex ) 배치(Batch)작업
  • 동시성을 엄격하게 보장해야 하는 병렬 처리를 위해 사용하는 것이 아님
  • 잡의 포드가 실패하면 포드가 restartPolicy에 따라 재시작될 수도 있음

잡의 세부 옵션

  • 자주 사용되는 세부 옵션
    • spec.completions
    • spec.parallelism

크론잡(CronJobs)

잡을 주기적으로 실행하는 쿠버네티스 오브젝트

  • 특정 시간 간격으로 잡을 반복적으로 실행할 수 있음
  • 데이터 백업, 이메일 전송 등에 적합
  • 리눅스의 크론(Cron)의 스케줄 방법을 그대로 사용

13.2 데몬셋(DaemonSets)

쿠버네티스의 모든 노드에 동일한 포드를 하나씩 생성하는 오브젝트

  • 로깅, 모니터링, 네트워킹 등을 위한 에이전트를 각 노드에 생성해야 할 때 유용
  • 다른 오브젝트보다 사용법이 간단

13.3 스테이트풀셋(StatefulSets)

상태를 갖는(Stateful) 포드를 관리하기 위한 오브젝트

cf> 상태를 갖지 않는 포드 vs 상태를 갖는 포드

상태를 갖지 않는 포드 -> '가축'에 비유

  • 디플로이먼트 등을 통해 배포되는 포드
  • 각 포드는 특별하게 여기지 않음. 왜냐하면 언제든지 생성되고 사라질 수 있기 때문

상태가 있는 포드 -> '애완동물'에 비유

  • 대체불가능한 개체
  • 항상 고유한 식별자를 가지고 있음
...
spec:
  serviceName: statefulset-service
...
  • spec.serviceName: statefulset의 포드에 접근할 수 있는 서비스 이름을 입력

위의 항목이 있는 이유?

  • statefulset은 애완동물로 여기짐 -> 각 포드는 고유하며 각자가 다른 개체로 취급되어야 함
  • 헤드리스 서비스(Headless Service) 사용

스테이트풀셋과 퍼시스턴트 볼륨

  • 포드와 마찬가지로 퍼시스턴트 볼륨을 포드에 마운트해 데이터를 보관하는 것이 바람직
  • 다행히 포드마다 퍼시스턴트 볼륨 클레임을 자동으로 생성함
  • volumClaimTemplates로 생성된 퍼시스턴트 볼륨과 클레임은 직접 삭제해야 함
profile
초보 개발자입니다.

0개의 댓글