728x90
반응형
SMALL
Replication Controller와 유사하지만 더 유연한 셀렉터와 매칭하여 파드를 관리할 수 있으며, 롤링 업데이트 및 롤백을 지원합니다.
ReplicaSet spec: replicas: 3 selector: matchLabels: app: webui machExpressions: - {key:version, operator:in, value:["2.1","2.2"]} temp.. |
ex)
- {key:version, operator:in, value:["2.1","2.2"]} | 2.1, 2.2 버전이 들어간거 3개 운영해세요. |
- {key:version, operator:Notln, value:["2.1","2.2"]} | 2.1,2.2 버전이 아닌걸로 해주세요 . |
- {key:version, operator:Exists } | 버전이 존재하기만 하면됩니다 |
- {key:version, operator:nolth Exists } | 버전이 존재하면 안됩니다. |
RC apiVersion: v1 kind: ReplicationController metadata: name: rc-nginx spec: replicas: 3 selector: app: webui template: metadata: name: nginx-pod labels: app: webui spec: containers: - name: nginx-container image: nginx:1.14 |
RS apiVersion: apps/v1 kind: ReplicaSet metadata: name: rs-nginx spec: replicas: 3 selector: matchLabels: app: webui template: metadata: name: nginx-pod labels: app: webui spec: containers: - name: nginx-container image: nginx:1.14 |
# vi rs-nginx.yaml |
apiVersion: apps/v1 kind: ReplicaSet metadata: name: rs-nginx spec: replicas: 3 selector: matchLabels: app: webui template: metadata: name: nginx-pod labels: app: webui spec: containers: - name: nginx-container image: nginx:1.14 |
# kubectl create -f rs-nginx.yaml |
# kubectl get pod --show-labels NAME READY STATUS RESTARTS AGE LABELS rs-nginx-5582x 1/1 Running 0 36s app=webui rs-nginx-bdhw7 1/1 Running 0 36s app=webui rs-nginx-vrbbr 1/1 Running 0 36s app=webui |
# kubectl delete pod rs-nginx-vrbbr pod "rs-nginx-vrbbr" deleted |
삭제해도 pod 는 재 생성됩니다.
pod 줄이기 3 -> 2
# kubectl scale rs rs-nginx --replicas=2 |
Every 2.0s: kubectl get pods -o wide master: Fri Sep 8 10:23:38 2023 NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES rs-nginx-5582x 1/1 Running 0 2m14s 10.101.1.141 worker2 rs-nginx-bdhw7 1/1 Running 0 2m14s 10.101.1.85 worker1 |
해서 ReplicaSet 설정은 삭제하고 서비스중인 파드들은 그대로 둘려면 아래와 같이 진행하면됩니다.
# kubectl delete rs rs-nginx --cascade=orphan replicaset.apps "rs-nginx" deleted |
이제 여기서 2개 pod 가 작동중이고
Every 2.0s: kubectl get pods -o wide master: Fri Sep 8 10:50:37 2023 NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES rs-nginx-cbsx4 1/1 Running 0 111s 10.101.1.93 worker1 rs-nginx-jfdpm 1/1 Running 0 111s 10.101.1.149 worker2 |
# kubectl get rs NAME DESIRED CURRENT READY AGE rs-nginx 2 2 2 39s |
ReplicaSet controller 를 삭제 하였습니다.
# kubectl delete rs rs-nginx --cascade=orphan replicaset.apps "rs-nginx" deleted |
# kubectl get rs No resources found in vittorio namespace. |
여기서 다시 ReplicationController 를 실행 해보겠습니다 .
# kubectl create -f rc-nginx.yaml eplicationcontroller/rc-nginx created |
Every 2.0s: kubectl get pods -o wide master: Fri Sep 8 10:51:33 2023 NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES rc-nginx-mj9cl 1/1 Running 0 5s 10.101.1.95 worker1 rs-nginx-cbsx4 1/1 Running 0 2m47s 10.101.1.93 worker1 rs-nginx-jfdpm 1/1 Running 0 2m47s 10.101.1.149 worker2 |
rc rs작동됩니다.
여기서 보시다 싶이 중요한 부분은 labels: 에 입력된 app:webui 부분인거같습니다
# kubectl get rc NAME DESIRED CURRENT READY AGE rc-nginx 3 3 3 13s |
rc 가이제 3개의 nginx 를 관리하는것을 볼수있습니다.
728x90
반응형
LIST
'Linux&Ubuntu > Docker&kuber' 카테고리의 다른 글
DaemonSet 사용하기. (0) | 2023.09.11 |
---|---|
Deloyment 사용하기 (0) | 2023.09.08 |
controller종류와 Replication controller (0) | 2023.09.07 |
pod 환경변수, 패턴의 종류 3가지 (0) | 2023.09.07 |
pod에 Resource 할당하기 CPU/Memory requests Limit (0) | 2023.09.06 |