Post

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를 조회하는 방법

  • kubectl get replicationController
  • kubectl get pods => yml 파일에서 지정한 replicas의 숫자만큼 파드가 생성된다.

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을 띄우는 방법은 다음과 같다.
    • 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.