개발 이야기/쿠버네티스

쿠버네티스 - 레플리카셋 - 18

석구석구 2021. 9. 28. 00:05

레플리카셋은 우리가 배웠던 레플리케이션을 대체할 새로운 요소다.

 

레플리케이션컨트롤러와 레플리카셋의 차이점은 다음과 같다.

 

1. 레플리카셋은 특정 레이블이 없는 파드를 매칭시킬 수 있다.

2. 레플리카셋은 특정 레이블의 키를 갖는 파드를 매칭시킬 수 있다. (key=*)

3. 두개의 레이블의 조합으로 파드를 매칭시킬 수 있다.

apiVersion: apps/v1
kind: ReplicaSet
metadata:
  name: suk9-rc
spec:
  replicas: 3
  selector:
    matchLabels:
      app: suk9-rc
  template:
    metadata:
      labels:
        app: suk9-rc
    spec:
      containers:
      - name: suk9-rc
        image: seokkyulee/suk9
        ports:
        - containerPort: 8080
kubectl create -f rs.yaml
kubectl get rs

어떤가? 결과는 레플리케이션 컨트롤러와 완전히 동일하다.

레플리카셋만의 강점은 셀렉터에 있다.

...
  selector:
    matchExpressions:
      - key: app
        operator: In
        values:
        - 
 ...

In : 레이블의 값이 지정된 값 중 하나와 일치해야 한다.

NotIn : 레이블의 값이 지정된 값과 일치하지 않아야 한다. (와우)

Exists : 지정된 키를 가진 레이블이 포함되어야 한다.

DoesNotExist : 지정된 키를 가진 레이블이 포함되어 있지 않아야 한다.