본문 바로가기
Kubernetes(k8s)/따배쿠(따라하면서 배우는 쿠버네티스) 학습

[k8s]Kubernetes - ReplicaSet

by 열정주니어 2023. 2. 23.
반응형

ReplicaSet

  • ReplicationController와 같은 역할을 하는 컨트롤러
    • 성격 = pod의 개수 보장
  • ReplicationController보다 풍부한 selector

  • matchLabels 연산자 까지는 ReplicationController와 동일
    • key:value
  • matchExpressions 연산자
    • In: key와 values를 지정하여 key, value가 일치하는 Pod만 연결
    • NotIn: key는 일치하고 value는 일치하지 않는 Pod에 연결
    • Exists: key에 맞는 label의 Pod를 연결
    • DoesNotExist: key와 다른 label의 Pod를 연결

 

ReplicationController/ReplicaSet Definition

ReplicaSet Selector Definition

ReplicationController vs ReplicaSet

  • ReplicaSet은 풍부한 label selector을 보장해줌
    • In 이용하여 한개 또는 여러개의 version
      • - {key: version, operator: In, value:["2.1","2.2"]}
    • NotIn 이용하여 특정 version 제외 모든 version
      • - {key: version, operator: NotIn, value:["2.1","2.2"]}
    • Exists 이용하여 모든 version
      • - {key: version, operator: Exists}
    • NotExist 이용하여 모든 version 제외
      • - {key: version, operator: NotExists}

 

ReplicaSet Example

  • create -f를 통해 ReplicationSet 실행
    • kubectl create -f rs-nginx.yaml
  • get, describe rs를 통해 ReplicationSet 확인
    • kubectl get rs
    • kubectl describe rs rs-nginx
  • edit, scale rs를 이용하여 보장 pod수 수평 확장&감소(scale-out & scale-down)
    • kubectl edit rs rs-nginx
    • kubectl scale rs rs-nginx --replicas=2
  • kubectl delete를 이용하면 ReplicaSet과 Pod 같이 삭제 됨
    • ReplicaSet만 삭제하고 Pod는 유지하고 싶으면 --cascade=false 옵션 추가
      • --cascade=false 옵션: 연쇄 삭제 기능을 비활성화.(default=true)
      • kubectl delete rs rs-nginx --cascade=false
  • edit을 통해 template의 image정보를 바꾸고 저장하면 컨테이너의 이미지가 당장 바뀌지 않고 기존의 pod가 삭제되고 새로운 pod가 template을 통해 생성될 때 반영 됨
    • 기존의 버전이 삭제되고 새로운 버전으로 변경되는 것을 rolling update 배포라고 함

 

Reference

따배쿠17강

 

반응형