kok202
쿠버네티스 입문 - 02 - 컨트롤러 1 - 레플리카셋

2020. 4. 4. 02:39[정리] 기능별 개념 정리/Kubernetes

레플리카셋

클러스터 안에서 지정한 숫자 만큼 파드가 유지되도록 관리한다.

레플리케이션 컨트롤러를 대체하는 컨트롤러다.

레플리케이션 컨트롤러는 셀렉터가 등호기반(같거나 다르거나)이다.

레플리카 셋은 셀렉터가 집합기반(in, notin, exists 등이 추가)이다.

레플리카 셋은 파드를 선택하는 기준이 레이블 기준으로 관리하므로 레플리카셋과 파드는 느슨한 결합이되어있다.

즉 설정을 통해 레플리카 셋이 생성한 파드는 유지한 채 레플리카셋만 제거할 수도 있다.

또한 레플리카셋이 생성한 파드중 하나를 kubectl edit 하여 레이블을 레플리카셋의 selector 가 찾을 수 없게 바꾸면, 레플리카셋은 해당 파드를 유실했다 판단하고 갯수를 유지하기 위해 새로운 파드를 만든다.

 

 

 

레플리카셋 Sample

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: nginx-replicaset
spec:
  template:
    metadata:
      name: nginx-replicaset
      labels:
        app: nginx-replicaset
    spec:
      containers:
      - name: nginx-replicaset
        image: nginx
        ports:
        - containerPort: 80
  replicas: 3
  selector:
    matchLabels:
      app: nginx-replicaset

.spec.template : 레플리카셋이 관리하려는 파드 정보를 설정

.spec.template.metadata.labels : 반드시 .spec.selector.matchLabels 가 찾을 수 있는 값이어야한다.

.spec.selector.matchLabels : 관리하려는 파드들의 라벨을 명시한다. 설정하지 않으면 .spec.template.metadata.labels가 기본 값이다.