control plane의 구성요소
control plane(이하 cp)는 다양한 api들을 관리하는 역할을 하며 cp 내부에는 api server, etcd, scheduler, controller가 있다. 그 중 controller는 pod의 개수를 보장해주는 역할을 한다.
Replication Controller
apiVersion: v1
kind: ReplicationController
metadata:
name: rc-nginx # replication controller 이름
spec:
replicas: 3 # 보장할 pod 개수
selector:
app: webui # 보장할 pod의 라벨
template:
metadata:
name: nginx-pod
labels:
app: webui # pod의 라벨, 라벨은 (key: value) 형태로 구성됨
spec:
containers:
- name: nginx-container
image: nginx:1.14
위의 yaml 파일은 app=webui라는 라벨을 가진 pod의 개수를 3개 보장해주는 replication controller를 생성하는 yaml 파일이다. 여기서 label은 키=값의 형태로 명시하며 만일 cli를 통해서 app=webui라는 nginx 컨테이너 파드를 생성하는 명령어는 다음과 같다
$ kubectl run nginx-pod --image=nginx:1.14 --labels=app=webui
암튼 rc-nginx는 app=webui라는 라벨을 가진 pod의 개수를 항상 3개로 보장하기 때문에 그 이상 생성하려 하거나 삭제하려 해도 그 개수는 항상 3개로 변함없이 유지된다.
scaling
만일 파드의 개수를 변경하고 싶은 경우 두가지 방법을 사용할 수 있다.
$ kubectl edit rc [NAME]
$ kubectl edit rc rc-nginx # replication controller 수정
edit 명령어를 통해서 직접 yaml 파일에서 replicas 를 수정한다.
$ kubectl scale rc [NAME] --replicas=[POD_NUM]
$ kubectl scale rc rc-nginx --replicas=5
혹은 scale 명령어를 통해서 replicas를 수정 가능하다.
'CI-CD > Kubernetes' 카테고리의 다른 글
Kubernetes- Service (0) | 2024.06.07 |
---|---|
Kubernetes- Multi Container Pod 생성 (0) | 2024.06.03 |
Kubernetes- Context (0) | 2024.06.01 |
Kubernetes- 동작원리 (0) | 2024.06.01 |
Kubernetes- 기본 개념 정리 (0) | 2024.05.27 |