-
Kubernetes) Kubernetes ReplicaSetCloud/Kubernetes 2022. 10. 21. 02:04
학습 목표 : k8s의 서비스가 지속되도록하는 ReplicaSet에 대해 알아본다.
ReplicaSet 이란?
- 쿠버네티스 프로젝트 초기부터 있던 Replication Controller의 발전형
- 정해진 개수의 pod가 항상 실행상태가 되도록 관리한다.
- 노드나 pod에 이상이생겨 사용할수 없을 때, 동일 cluster안의 다른 노드의 pod를 생성하고 실행한다.
- YAML 파일을 통해 사용자가 요구하는 상태가 되도록 pod를 관리할 수 있다.
ReplicaSet 사용해보기
- replicaset 설정 (replicaset-nginx.yaml)
apiVersion: apps/v1 kind: ReplicaSet metadata: name: replicaset-nginx # name - replicaset 이름 설정 spec: replicas: 3 # replicas - 유지할 파드개수를 설정하는 필드 selector: # selector - 관리할 레이블의 파드를 선택 matchLabels: # matchLabels - 레이블 체크 조건 app: my-nginx-pods-label # 탬플릿의 레이블 설정과 같게한다 template: metadata: name: my-nginx-pod # name - pod 이름 설정 labels: # labels - 템플릿 레이블 설정 app: my-nginx-pods-label spec: containers: - name: nginx # name - 컨테이너 이름 설정 image: nginx:1.20.0 # image - 컨테이너에 사용할 이미지 ports: # ports - 컨테이너에 접속할 포트번호 설정 - containerPorts: 80
- replicaset 목록 확인
kubectl get replicasets
- replicaset 상태목록 설명
DESIRED : replicaset 설정시 지정한 pod의 개수
CURRENT : replicaset으로 동작하는 pod의 개수
- replicaset 상세정보 확인
kubectl describe replicaset/replicaset-nginx # kubectl describe replicaset/<ReplicaSet 이름>
ReplicaSet 와 Pod
- pod는 레이블 기준으로 관리되고 replicaset 레이블을 지정하여 사용한다. replicaset 과 pod는 느슨하게 결합되어있다.
- replicaset 설정으로 생성된 pod를 삭제하면 지정된 개수만큼 pod를 생성한다.
- replicaset 설정으로 생성된 pod를 변경하면 변경된 pod를 제외하고 지정된 개수만큼 pod를 생성한다.
- replicaset pod를 한꺼번에 삭제할 때
kubectl delete replicaset <ReplicaSet이름>
- replicaset의 컨트롤러만 삭제하고 pod를 유지할 때
kubectl delete replicaset <Replicaset 이름> --cascade=orphan
'Cloud > Kubernetes' 카테고리의 다른 글
Kubernetes) Kubernetes Deployment (0) 2022.10.27 Kubernetes) Application 배포 (0) 2022.10.24 Kubernetes) AWS 기반 쿠버네티스 H.A 구축 프로젝트 2편 (1) 2022.10.18 Kubernetes) AWS 기반 쿠버네티스 H.A 구축 프로젝트 1편 (0) 2022.10.18 Kubernetes) Kubernetes Volume (0) 2022.10.13