반응형
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}
- In 이용하여 한개 또는 여러개의 version
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
- ReplicaSet만 삭제하고 Pod는 유지하고 싶으면 --cascade=false 옵션 추가
- edit을 통해 template의 image정보를 바꾸고 저장하면 컨테이너의 이미지가 당장 바뀌지 않고 기존의 pod가 삭제되고 새로운 pod가 template을 통해 생성될 때 반영 됨
- 기존의 버전이 삭제되고 새로운 버전으로 변경되는 것을 rolling update 배포라고 함
Reference
반응형
'Kubernetes(k8s) > 따배쿠(따라하면서 배우는 쿠버네티스) 학습' 카테고리의 다른 글
[k8s]Kubernetes - DaemonSet (0) | 2023.03.03 |
---|---|
[k8s]Kubernetes - Deployment & Rolling Update (0) | 2023.02.23 |
[k8s]Kubernetes - Controller/ReplicationController (0) | 2023.02.21 |
[k8s]Kubernetes - Pod 환경 변수 & 구성 패턴 (0) | 2023.02.20 |
[k8s]Kubernetes - Pod에 Resource 할당하기 (0) | 2023.02.20 |