본문 바로가기

CI-CD/Kubernetes

Kubernetes- Controller

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