티스토리 뷰

 

 

https://kubernetes.io/ko/docs/concepts/workloads/controllers/replicaset/

 

레플리카셋

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

kubernetes.io

 

 

 

 

 

 

Replicaset 이란?

일정한 개수의 동일한 파드가 항상 실행되도록 관리한다. 이러한 기능이 필요한 이유는 서비스의 지속성 때문!

이미지상 맨 좌측에 레플리카셋 안에 파드1, 파드2는 -replicas=2 라는 옵션입니다.

 

제가 replicas:3 옵션을 주어서 이 yaml파일을 통해 레플리카셋을 생성한다면

같은 이미지로 3개의 파드가 생기겠죠? 테스트해보겠습니다.

$ cat replicaset.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: 3-replicaset
spec:
  template:
    metadata:
      name: 3-replicaset
      labels:
        app: 3-replicaset
    spec:
      containers:
      - name: 3-replicaset
        image: nginx
        ports:
        - containerPort: 80
  replicas: 3 #레플리카 개수 3개
  selector:
    matchLabels:
      app: 3-replicaset

 

 

레플리카셋을 생성해봅니다.

$ kubectl apply -f replicaset.yaml

 

해당 이미지 보시면 3-replicaset라는 label을 달고 3개의 파드가 생성되었습니다.

나머지 두개는 아직 컨테이너가 만들어지는 중이네요!!

 

 

레플리카셋의 정보를 확인하는 방법도 있습니다.

yaml 파일을 기초로 만들어져있겠네요.

 

 

 

제가 만약 하나의 파드를 삭제한다면 어떻게 될까요?

삭제한 후에, 파드 목록을 다시 확인해보겠습니다.

엇,!! 파드를 삭제했는데도 새 파드가 생성되어있네요.

실시간으로 파드를 관리하는거 같습니다.

 

레플리카셋과 파드 정보를 가져오는 명령어를 통해 아래와같이 한 번에 확인하실 수 있습니다.

 

 

여러가지 방법을 통해 파드를 생성해보았는데요.

다음을 위해 깨끗하게 지워보겠습니다.

 

아래 명령어를 참고해주세요.

* --cascade=orphan: 레플리카셋만 삭제하고 파드는 남기고 싶다면 해당 명령어 사용.

$ kubectl get replicaset,pods

$ kubectl delete -f [이름] --cascade=orphan

$ kubectl delete pods -l app=[앱 이름]

 

 

 

 

감사합니다.