[쿠버네티스]레플리카셋

jhyoon
3 min readDec 15, 2020

--

Replicaset

쿠버네티스의 가장 최소의 단위인 포드가 장애가 나거나 실수로 삭제 되었을때는 어떻게 해야할까요? 관리자가 포드를 일일이 상태를 확인하고, 다시 재 배포 하여야 안정적으로 서비스를 운영할 수 있을까요?

이를 위해 레플리카셋을 사용합니다. 레플리카셋은 관리자가 원하는 만큼 여러 포드를 실행시킬수 있고 포드가 장애가 나거나 삭제가 되면 쿠버네티스는 실시간으로 파드의 개수를 확인하고 정의된 포드의 수보다 실행되고 있는
포드가 적다면 새로 생성해 줍니다.

예를 들면 레플리카셋을 배포하고 명시된 포드가 3개 실행 되고 있습니다.
그런데 갑자기 3번 포드가 장애가 났습니다. 그러면 어떻게 될까요 ?

위와 같이 정의된 포드의 갯수가 3개이기 때문에 쿠버네티스는 3번 포드가 장애가 난 것을 확인하고 새로운 포드를 생성하기 위해 명시된 파드 템플릿을 사용합니다. 레플리카셋은 장애난 파드를 재생성 하기만 하지 않습니다. 만약에명시딘 파드는 3개인데 실행되고 있는 파드는 5개라면 레플리카셋은 2개의 파드를 삭제합니다.

Replicaset 배포하기

아래와 같이 레플리카셋을 배포하기 위해 manifest파일을 작성하였습니다.
Pod를 배포할때와 같은 명령어를 사용하시면 됩니다.

kubectl apply -f [배포할 파일].yaml

배포하고 난 후 레플리카셋과 파드를 확인해 봅시다.

$kubectl get replicaset #레플리카셋을 확인

$kubectl get pods #파드를 확인

위와 같은 명령어를 입력하면 아래와 같이 출력됩니다.

test-replicaset-xxxx 라는 파드가 명시된 대로 3개 생성 되었습니다.
제가 설명 드린대로 파드를 한번 삭제해볼까요 ?

pod를 삭제하는 명령어

kubectl delete pod [삭제할 포드 이름]

test-replicaset-kqfx4포드를 삭제했습니다. 그런데 제가 삭제한 포드는 삭제 되었고 test-replicaset-4fx2q 라는 이름을 가진 새로운 파드가 생성 되었습니다. 이와 같이 레플리카셋을 사용하면 더 안정적으로 서비스를 운영 할 수 있습니다. 그런데 포드를 더 생성하고 싶으면 어떻게 하면 될까요 ?

replicas 의 숫자를 늘리면 됩니다. 5개로 변경해보고 다시 배포해보겠습니다.

다시 배포하면 파드가 5개로 늘어난 것을 볼 수 있습니다. 이와 같이 레플리카셋은 정말 유용한 워크로드 중 하나입니다.

감사합니다.

--

--