728x90
반응형
10/24(목) 실습 내용 중
ReplicaSet 이란?
- ReplicaSet은 동일한 파드(pod)를 일정한 개수만큼 실행하여 서비스의 지속성을 보장하는 중요한 객체다.
- 클라우드 환경에서는 노드의 하드웨어 장애나 네트워크 문제로 인해 파드가 중단될 수 있다. 이때 ReplicaSet은 다른 노드에서 새로운 파드를 생성하여 사용자에게 중단 없는 서비스를 제공하는 역할을 한다.
(실습) ReplicaSet 구성하
1. replicaset.yml 파일 생성
nano nginx-replicaset.yml 명령어로 파일을 생성한 후 아래와 같이 작성해준다.
apiVersion: apps/v1
kind: ReplicaSet
metadata:
name: 3-replicaset
spec:
template:
metadata:
name: 3-replicaset
labels:
app: 3-replicaset
spec:
containers:
- name: 3-replicaset
image: nginx
ports:
- containerPort: 80
replicas: 3
selector:
matchLabels:
app: 3-replicaset
- apiVersion: 사용할 Kubernetes API의 버전을 지정한다.
- kind: 생성할 리소스의 유형을 정의. 여기서는 ReplicaSet을 생성한다.
- metadata: 이 섹션은 리소스에 대한 메타 정보를 포함한다.
- name: 3-replicaset 이 필드는 ReplicaSet의 이름을 정의한다. 클러스터 내에서 이 이름으로 식별된다.
- spec: 이 섹션은 ReplicaSet의 내부 정보를 포함한다.
- template: ReplicaSet에서 관리할 파드의 텝플릿을 정의한다. 여기서는 name을 통해 파드의 이름을 정의하고, app: 3-replicaset 라벨을 통해 파드를 식별하는 데 활용한다.
- spec: 파드의 세부 사항을 정의한다. containers는 파드 내에서 실행할 컨테이너를 정의한다.
- replicas: 이 필드는 ReplicaSet이 유지해야 하는 파드의 수를 정의한다. 여기서는 3개의 Nginx 파드를 항상 실행하도록 설정했다.
- selector: ReplicaSet이 관리할 파드를 선택하기 위한 규칙을 정의한다. matchLables는 ReplicaSet이 어떤 파드를 관리할지 결정하는 조건을 설정한다.
2. yaml 정보를 가지고 ReplicaSet 적용
kubectl apply -f replicaset.yml
- 이 명령어를 실행하여, replicaset.yml 파일에 정의된 Replicaset이 Kubernetes 클러스터에 적용되고 지정한 대로 파드가 생성된다.
- apply를 사용하여 현재 클러스터의 상태와 비교하여, 변경된 부분만 적용된다.
3. ReplicaSet 상태 확인
kubectl get replicaset
- 이 명령어로 클러스터 내 현재 ReplicaSet을 확인할 수 있다.
- 모든 ReplicaSet의 개요를 제공하고, 이름(NAME), 원하는 복제본 수, 현제 복제분 수 등을 확인할 수 있다.
- 아래 이미지와 같이 명령어 실행한 이후에, 3-replicaset 이 만들어진 것을 확인할 수 있다.
4. 파드 확인
kubectl get pods
- 파드의 상태를 확인할 때 사용한다.
- 현재 네임스페이스의 모든 파드를 나열하고, 상태와 소속된 ReplicaSet을 보여준다.
- 아래 이미지와 같이 3개의 파드가 생성된 것을 확인할 수 있다.
5. 스케일 변경
kubectl scale --replicas=5 replicaset/3-replicaset
- ReplicaSet의 주요 기능 중 하나는 애플리케이션을 손쉽게 스케일 업 또는 스케일 다운하는 것이다.
- 복제본 수를 변경하려면 scale 명령어와 --replicas 옵션을 사용한다.
- 위 명령어는 replicaSet의 복제본 수를 5개로 스케일링 하는 것이다.
- 아래 이미지와 같이 기존에는 3개였던 파드가 5개로 증가한 것을 확인할 수 있다.
6. 삭제
kubectl delete -f replicaset.yml
kubectl delete -f replicaset.yml --cascade=orphan
- ReplicaSet을 삭제할 경우, delete 명령어를 사용한다.
- 이때 --cascade=orphan 옵션을 이용하면 파드는 유지된 채 ReplicaSet 만 삭제할 수 있다.
728x90
반응형
'Kubernetes' 카테고리의 다른 글
[Kubernetes] 쿠버네티스에서의 리소스 관리 및 모니터링 (0) | 2024.10.29 |
---|---|
[Kubernetes] Linux에서 MiniKube를 설치 및 쿠버네티스 실습 (2) | 2024.10.28 |
[Kubernetes] Deployment를 이용한 Pod 배포 - Deployment와 Pods의 차이점 (0) | 2024.10.24 |
[Kubernetes] 쿠버네티스 네트워크 통신 구조 (0) | 2024.10.24 |
[Kubernetes] 쿠버네티스 서비스: Cluster IP, NodePort, Load Balancer (0) | 2024.10.24 |