레플리카셋의 목적은 명시된 동일 파드 개수에 대한 가용성을 보증하기 위해 레플리카 파드 집합의 실행을 항상 안정적으로 유지하는 것이다.
ReplicaSet YAML

메타데이터는 레플리카셋의 속성에 대한 정보를 담고 있다.
하단의 스펙에서는 유지할 레플리카 개수부터 파드 내의 컨테이너 스펙까지 지정한다. matchLabels는 파드를 식별할 때 사용하는 라벨로, 해당 라벨에 매칭된 파드의 개수를 지속적으로 파악한다. template > metadata > labels는 생성되는 파드에 설정할 라벨이며, 이 라벨이 matchLabels와 다르지 않도록 유의한다.
1. 레플리카셋 YAML 파일 설정

라벨이 'app:nginx'로 설정된 파드를 3개 유지하도록 하는 레플리카셋을 YAML파일로 구성했다.
컨테이너에 사용할 이미지는 nginx 등 원하는 이미지명을 쓰면 되며, 위 실습에서는 도커 실습때 수정하여 허브에 올려둔 이미지를 사용했다.
2. 레플리카셋 실행


YAML 파일에서 지정한대로 'rstest' 이름의 레플리카셋이 생성되고 파드는 레플리카셋 이름 뒤에 랜덤한 문자열을 붙여 구성한 이름으로 생성된다.
3. 라벨 확인 및 수정
레플리카셋은 유지할 파드를 구분하기 위해 selector에 설정된 라벨을 확인하는데, 해당 라벨이 설정된 파드가 유지할 수보다 작으면 더 파드를 생성하고 많으면 파드를 삭제한다.


① 4개의 파드가 운영되고 있는 것을 확인하고, nginx 파드의 라벨을 추가한다.
② 레플리카셋에 설정된 라벨을 가진 파드가 4개가 되자 그 중 하나를 삭제하기 시작한다.
③ 최종적으로 유지하고자 하는 3개의 파드만 남게된다.
위 실습처럼 기존 파드의 라벨을 변경하여 레플리카셋에 포함시킨 경우, 레플리카셋을 삭제하면 함께 삭제된다. 해당 파드를 레플리카셋에서 격리가 필요할 때, 파드의 라벨을 변경하면 레플리카셋에서 파드를 제거할 수 있다.
4. 레플리카셋 삭제

kubectl delete 명령어로 레플리카셋을 삭제하고 레플리카셋과 파드가 남아있는지 확인한다.
'Kubernetes' 카테고리의 다른 글
| [Lab] Deployment 실행 및 삭제 (0) | 2020.10.13 |
|---|---|
| [Lab] GKE 기본 구성 실습 (0) | 2020.10.12 |
| [Lab] Docker로 컨테이너 구성 (0) | 2020.10.12 |