728x90
반응형
안녕하세요 이웃님들 ^.^
오늘의 포스팅은 Replicaset을 이용해 Pod를 관리 하는 방법에 대해서 알아 보겠습니다.
ReplicaSet의 목적은 레플리카 Pod 집합(Pod의 복제본들)의 실행을 항상 안정적으로 유지하는 것입니다. 정해진 수의 Pod를 유지하기 위해서 Object들의 상태(Status)를 살피고, Spec과 Status에 차이가 발생하면 이를 다시 일치시키기 위해서 조치를 취합니다.
ReplicaSet의 Spec에는 다음 정보들이 포함되어 있습니다.
- replicas : 유지해야 하는 Pod 개수
- selector : 획득 가능한 파드를 식별하는 방법 (ReplicaSet에 의해 관리되는 Pod의 선택방법)
- template : Pod 생성에 사용되는 데이터 (Pod의 metadata와 spec)
그럼 이제 Rplicaset을 생성해 보겠습니다.
1. vi로 아래의 yaml 파일을 생성 합니다.
ubuntu@ip-172-31-31-84:~/dockertext2/chap07$ vi test-replicaset.yaml
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: nginx-replicaset
labels: ==> Replcaset에서 관리 하는 Pod들의 Label
app: my-nginx
tier: frontend
spec:
replicas: 3 ==> 유지해야 되는 Pod 수
selector:
matchLabels:
app: my-nginx
template:
metadata:
labels:
app: my-nginx
name: my-nginx
spec:
containers:
- image: nginx:1.19.3
name: my-nginx
ports:
- containerPort: 80
2. 아래 명령으로 Replicaset을 생성 하고 조회를 해봅니다.
ubuntu@ip-172-31-31-84:~/dockertext2/chap07$ kubectl apply -f test-replicaset.yaml
ubuntu@ip-172-31-31-84:~/dockertext2/chap07$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-replicaset-cfs2w 1/1 Running 0 56s 172.17.0.8 ip-172-31-31-84 <none> <none>
nginx-replicaset-rt5h2 1/1 Running 0 56s 172.17.0.9 ip-172-31-31-84 <none> <none>
nginx-replicaset-shkn6 1/1 Running 0 56s 172.17.0.10 ip-172-31-31-84 <none> <none>
3. 그럼 이제 Pod를 삭제를 해보고 Replicaset이 어떻게 동작하고 있는지 살펴 봅시다.
아래 명령으로 Pod하나를 삭제를 하고 조회를 해봅니다.
ubuntu@ip-172-31-31-84:~/dockertext2/chap07$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-replicaset-cfs2w 1/1 Running 0 56s 172.17.0.8 ip-172-31-31-84 <none> <none>
nginx-replicaset-rt5h2 1/1 Running 0 56s 172.17.0.9 ip-172-31-31-84 <none> <none>
nginx-replicaset-shkn6 1/1 Running 0 56s 172.17.0.10 ip-172-31-31-84 <none> <none>
ubuntu@ip-172-31-31-84:~/dockertext2/chap07$ kubectl delete pod nginx-replicaset-cfs2w
pod "nginx-replicaset-cfs2w" deleted
ubuntu@ip-172-31-31-84:~/dockertext2/chap07$
ubuntu@ip-172-31-31-84:~/dockertext2/chap07$
ubuntu@ip-172-31-31-84:~/dockertext2/chap07$ kubectl get pod -o wide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
nginx-replicaset-hnr24 1/1 Running 0 4s 172.17.0.3 ip-172-31-31-84 <none> <none>
nginx-replicaset-rt5h2 1/1 Running 0 2m40s 172.17.0.9 ip-172-31-31-84 <none> <none>
nginx-replicaset-shkn6 1/1 Running 0 2m40s 172.17.0.10 ip-172-31-31-84 <none> <none>
위에서 보듯이 첫번재 Pod인 cfs2w 를 삭제를 하면 다른 신규 Pod를 hnr24 생성하여 Rplicaset에 설정된 Pod의 수 3개를 맞춥니다.
잘 동작하고 있네요.. 그럼 오늘은 이만 ^.^
728x90
반응형
'쿠버네티스' 카테고리의 다른 글
[쿠버네티스] Kubernetis Volume 사용하기 (128) | 2024.03.19 |
---|---|
[쿠버네티스] Deployment 컨트롤러 관리 방법 (63) | 2024.03.16 |
[쿠버네티스] Kubernetis Pod 구동 하는 방법 (62) | 2024.03.13 |
[쿠버네티스] 쿠버네티스 서비스 객체 사용 하기 (143) | 2024.03.07 |
[쿠버네티스] curl로 API 접근하기 (31) | 2024.03.05 |