backend/kubernetes

ReplicationController, ReplicaSet, Deployment 중 어떤것을 사용해야할까?

seul chan 2020. 6. 13. 22:44

ReplicationController, ReplicaSet, Deployment

책을 읽으면서 ReplicationController, Replicaset, Deployment 등 비슷한 개념에 헷갈렸는데 문서에서 잘 정리되어 있어서 적어둔다.

Basic pod

  • 일반 pod. 따로 띄울 수는 있지만 권장하지 않는다.
  • 어떤 이유로 application이 단일 파드가 필요하더라도 replicaset을 이용하는 것을 권장

ReplicationController, ReplicaSet

  • 레플리카셋은 레플리케이션 컨트롤러를 계승하였다. 이 두 개의 용도는 동일하고, 유사하게 동작하며, 레플리케이션 컨트롤러가 레이블 사용자 가이드에 설명된 설정-기반의 셀렉터의 요건을 지원하지 않는다는 점을 제외하면 유사하다. 따라서 레플리카셋이 레플리케이션 컨트롤러보다 선호된다.

Deployment (Recommended)

  • deployment는 replicaset을 소유하거나 관리하는 개념이다.
  • replicaset을 원한다면 deployment를 사용하는 것을 권장

Job

  • 스스로 종료되는 것이 예상되는 pod의 경우에는 Job 사용 (batch job)

DaemonSet

  • machine monitoring, logging과 같은 machine-level의 기능을 가진 pod에 대해서는 daemonSet 사용
  • 이런 pod는 다른 pod가 시작되기 전에 실행되어야 함