Section 2-2. ReplicationController, ReplicaSet
udemy의 Certified Kubernetes Administrator (CKA) with Practice Tests 강의 및 쿠버네티스 인 액션 (마르코 룩샤)를 참고하여 정리한 글입니다.
Section02. Core Concepts
ReplicationController
- 지정된 수의 파드 복제본이 실행될 수 있도록 한다.
- 즉 수동으로 생성된 파드와 달리 ReplicationController에서 유지 관리하는 파드는 실패하거나 삭제되거나 종료되면 자동으로 교체된다.
YAML 파일을 통해 ReplicationController를 생성하는 방법
- rc-definition.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
apiVersion: v1 kind: ReplicationController metadata: name: myapp-rc spec: replicas: 3 template: # 파드 정의 파일의 metadata 내용과 동일하다. metadata: name: myapp-pod labels: app: myapp type: front-end spec: containers: - name: nginx-container image: nginx
- 생성한 파일을 통해 ReplicationController를 띄우는 방법은 다음과 같다.
- kubectl create -f rc-definition.yml
- kubectl apply -f rc-definition.yml
YAML 파일을 통해 replicationController를 조회하는 방법
ReplicaSet
- 지정된 수의 파드 복제본이 지정된 시간에 실행될 수 있도록 한다.
YAML 파일을 통해 ReplicaSet을 생성하는 방법
- replicaset-definition.yml
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
apiVersion: apps/v1 kind: ReplicaSet metadata: name: myapp-replicaset labels: app: myapp type: frontend-end spec: # modify replicas according to your case replicas: 3 template: metadata: labels: app: myapp type: frontend-end spec: containers: - name: nginx-container image: nginx selector: matchLabels: type: frontend-end
- Replicaset은 selector 정의가 필요하다. selector는 replicaset 밑에 놓인 파드를 식별할 수 있도록 한다.
- ReplicaSet에서
spec.selector.
는.spec.template.metadata.labels
와 일치해야 한다 그렇지 않으면 API에서 거부된다.
- ReplicaSet에서
- 생성한 파일을 통해 Replicaset을 띄우는 방법은 다음과 같다.
- kubectl create -f replicaset-definition.yml
- kubectl apply -f replicaset-definition.yml
YAML 파일을 통해 Replicaset을 조회하는 방법
- kubectl get replicaset
- kubectl get pods => yml 파일에서 지정한 replicas의 숫자만큼 파드가 생성된다.
YAML 파일을 통해 Replicaset scale 조정하는 방법
- 기존 Replicaset 생성할 때 사용했던 yaml 파일의 replicas 값을 수정한 뒤 kubectl replace -f replicaset-definition.yml
- kubectl scale –replicas=6 -f replicaset-definition.yml
- kubectl scale –replicas=6 -f replicaset myapp-replicaset
This post is licensed under CC BY 4.0 by the author.