DevOps/Kubernetes

[Kubernetes Study - 09] - Replication Controller, ReplicaSet, Replicas, Selector

돌돌김 2021. 2. 20. 18:08

 

Controller

 

Controller의 기능

  • Auto Healing
    • Pod가 죽었을 때, 이 Pod를 다른 Node위에 새로 만들어준다.
  • Auto Scaling
    • Pod의 리소스 상태가 limit가 되었을 때, Controller가 Pod를 하나 더 만들어서 리소스의 부하를 낮춰준다.
  • Software Update
    • 여러 Pod에 대한 버전을 업데이트 하는 경우, 한번에 업데이트 가능
    • 업데이트 중 문제가 생기면 롤백도 가능
  • Job
    • 일시적인 작업을 해야하는 경우 그 순간에만 Pod(Job)을 만들어서 작업을 하고 삭제를한다.
    • 그 순간에만 일시적으로 리소스를 늘렸다가 삭제하기 때문에 효율적인 리소스 활용 가능

 

ReplicationController

 

ReplicationController는 Deprecated 되었으며, ReplicaSet으로 대체되는 추세이다. 기존의 리소스가 ReplicationController로 되어있다면 ReplicaSet으로 바꿔주자.

 

$ kubectl delete rc {rc-name} --cascade=false

 

cascade 옵션을 주면 기존 Rc에 연결된 파드들은 삭제되지 않는다. 이후, 레플리카 셋에 대한 매니페스트 파일을 만들어 기존의 리소스를 연결하면된다.

 

 

ReplicaSet

 

Selector는 ReplicaSet에서만 사용 가능하다

 

  • ReplicaSet에 apiVersion은 api 그룹에 속한다
    • apiVersion: apps/v1 이런식으로 써야함
    • 오브젝트 별 apiVersion 종류는 여기에 정리되어있다
  • ReplicaSet는 selector에서 다양한 표현식을 추가 가능하다
    • In, NotIn, Exists, DoesNotExist