반응형
컨트롤러 두 번째! Replica Set
ReplicaSet은 Pod의 개수를 보장해준다는 성격으로는 앞서 배운 Replication Controller와 동일하다.
하지만 더 다양한 selector를 제공한다는 점에서 차이점이 있다.
Replication Controller의 selector는 key와 value가 일치하는 것만 확인할 수 있었다면 ReplicaSet은 matchLabels와 matchExpression 두 종류의 selector와 Operator를 통해서 더 풍부한 조건을 표현할 수 있다.
matchExpression 연산자
In : key와 value를 지정하여 key, value가 일치하는 pod만 연결
NotIn : key는 일치하고 value는 일치하지 않는 pod에 연결
Exists : key 에 맞는 label의 pod를 연결
DoesNotExist : key와 다른 label의 pod를 연결
yaml 파일 비교
[Replication Controller] | [Replica Set] |
apiVersion: v1 kind: Replication Controller metadata: name: rc-nginx spec: replicas: 3 selector: app: webui version: "1.13" template: metadata: name: nginx-pod labels: app: webui spec: containers: - name: nginx-container image: nginx:1.13 |
apiVersion: apps/v1 kind: ReplicaSet metadata: name: rs-nginx spec: replicas: 3 selector: matchLabels: app: webui matchExpressions: - {key: version, operator: In, value:["1.13", "1.14"]} template: metadata: name: nginx-pod labels: app: webui spec: containers: - name: nginx-container image: nginx:1.13 |
matchExpressions value에 브라켓을 통해 여러 옵션을 주면 그 중 하나와 일치하는 pod를 보장해준다.
예를 들어, 위와 같이 ["1.13", "1.14"] 두 버전이 표현되어 있으면 version 키에 value가 1.13 또는 1.14인 pod를 3개 보장한다.
파일을 통해 생성
kubectl create -f rs-nginx.yaml
생성된 replicaset은 다음으로 확인할 수 있다.
kubectl get rs
스케일 조절 방법
kubectl scale rs rs-nginx --replicas=2
ReplicaSet으로 생성된 pod들은 ReplicaSet을 삭제하면 모두 삭제된다.
ReplicaSet을 삭제해도 pod를 삭제하지 않고 남겨두려면 cascade 옵션을 주면 된다.
kubectl delete rs rs-nginx --cascade=false
1번
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: rs-mainui
spec:
replicas: 2
selector:
matchLabels:
name: apache
app: main
rel: stable
template:
metadata:
name: httpd-pod
labels:
name: apache
app: main
rel: stable
spec:
containers:
- name: httpd-container
image: httpd:2.2
2번
kubectl scale rs rs-mainui --replicas=1
반응형
'Kubernetes' 카테고리의 다른 글
[Kubernetes] Rolling Update를 위한 Deployment (0) | 2023.05.19 |
---|---|
livenessProbe : Self-healing Pod 만들기 (0) | 2023.05.17 |
[Kubernetes] VM 쿠버네티스 실습환경 설정 - kubectl 설치 (0) | 2023.04.07 |
[Kubernetes][따배쿠 6-1] Controller - Replication Controller (0) | 2023.03.22 |
[Kubernetes] 따배쿠 5강 문제풀이 (0) | 2023.03.17 |