디플로이먼트: 레플리카셋의 상위 오브젝트 실제 운영 환경에서 레플리카셋을 YAML로 직접 정의하는 경우는 거의 없다. 대신 디플로이먼트를 YAML에 정의하고, 디플로이먼트가 레플리카셋을 생성, 교체, 삭제한다. 디플로이먼트는 레플리카셋의 상위 오브젝트로, 하나의 디플로이먼트는 시점에 따라 여러 개의 레플리카셋을 가질 수 있다. 디플로이먼트가 필요한 이유는 새 버전으로의 전환과 이전 버전으로의 복귀를 레플리카셋 단독으로는 처리할 수 없기 때문이다. 디플로이먼트와 함께 생성되는 레플리카셋과 파드 레플리카셋과 디플로이먼트의 YAML은 거
1. 레플리카셋이 필요한 이유 마이크로서비스 환경에서는 같은 역할을 하는 파드를 여러 개 동시에 운영해야 한다. 트래픽을 나눠 받기 위해서이기도 하고, 일부 인스턴스가 실패해도 나머지가 요청을 계속 처리하도록 가용성을 확보하기 위해서이기도 하다. 따라서 쿠버네티스에서 실제로 다루는 단위는 단일 파드가 아니라 동일한 스펙의 파드 N개가 된다. 이를 직접 정의하기 위해 YAML 매니페스트 안에서 ---를 구분자로 두어 동일한 파드 여러 개를 한 번의 kubectl apply로 생성할 수도 있지만, 이는 비효율적인 방법이다. 또한 파드가
1. Pod란? Pod는 쿠버네티스가 생성하고 관리하는 가장 작은 배포 단위이다. 하나의 Pod 안에 있는 컨테이너들은 다음을 공유한다. 네트워크 네임스페이스: 같은 IP를 갖고 `localhost`로 서로 통신한다. 같은 포트를 두 컨테이너가 동시에 점유할 수는 없다. 스토리지 볼륨: Pod에 정의된 볼륨을 모든 컨테이너가 마운트할 수 있다. 생명 주기와 스케줄링 단위: 항상 같은 노드에 함께 스케줄링되고, 시작과 종료 또한 함께 이뤄진다. Pod에는 컨테이너가 하나만 있을 수도, 여러 개가 있을 수도 있다. 보통은 1 Pod =
1. 쿠버네티스(Kubernetes, k8s)란? 쿠버네티스는 컨테이너화된 애플리케이션의 배포, 확장, 관리를 자동화하는 오픈소스 오케스트레이션 플랫폼이다. 2014년 구글에 의해 공개되었으며 현재는 CNCF에 의해 관리되고 있다. 쿠버네티스를 사용하면 컨테이너를 여러 서버에 분산 배포하거나 서버 장애 시 자동 복구, 트래픽에 따른 자동 확장 등이 가능해진다. *k8s라는 약어는 'K'와 's' 사이에 8개의 글자가 있다는 의미에서 유래되었다. 2. 클러스터(Cluster) 클러스터는 컨테이너화된 애플리케이션을 실행하는 노드(Nod