Infra

[k8s] Controller

뚜둔뚜둔 2022. 3. 12. 14:05
 

Controller

서비스를 관리, 운영하는데 도움을 줌

- Auto Healing: node 위에 파드가 있는데 node 또는 pod가 장애 났을때, 다른 node로 옮겨줌

- Auto Scaling: pod의 용량이 차면 하나의 pod를 더 생성해줌.

- Software Update: pods을 업데이트를 한번에 진행 가능. 업그레이드중 에러가 발생하면 롤백도 가능

- Job일시적인 작업을 해야할때, 부분적으로 파드를 만들어서 작업 후 사라지게 함.

 

1. Replication Controller, ReplicaSet

   Replication Controller: deprecated / ReplicaSet: Replaced

template

- label 과 selector 로 구성

- template을 update 해둔후, pod에 장애가 발생했을때, template을 가지고 pod를 새로 만듬

Replication

-Replication 수 만큼 pod가 관리 됨.

- pod는 replicas 개수 만큼 생성 시킴

Selector

- ReplicaSet 에 만 있는 기능

- Replication: 키와 라벨이 같은 파드에만 연결 

- ReplicaSet: 키와 라벨이 같은 파드에만 연결  , matchExpressions 기능도 있음

  ( matchExpressions : 상세 설정 가능 ,키 또는 라벨 만 같아도 가능하게 하는 상세 설정 가능: in, not in )

2. Deployment

운영중인 서비스를 업데이트 후, 재 배포 해야할 때 사용

- upgrade 방식

  • recreate
  • Rollong Update
  • Blue/Green
  • Canary

Recreate

- revisionHistoryLimit: 1 -> 0인 replicaSet을 1개만 남기겠다는 의미

 

RollingUpdate

- minReadySeconds: 10-> 10초라는 텀을 주고 다음 replicaSet으로 넘어가겠다는 의미.

3. DaemonSet, Job, CronJob

DaemonSet

- 노드의 자원상태와 상관없이 모든 노드에 파드가 하나씩 생성됨.

- DaemonSet 으로 설치 해야하는 경우.

  • Performace - Prometheus: 각노드의 성능 상태를 보기 위함 
  • Logging - Fluentd : 특정 노드에 장애가 발생 했을 때 보기 위한 log 수집
  • Storage - GlusterFS: 노드들을 가지고 네트워크 파일 시스템을 구축할 수 있음 

Job

- job으로 생성된 파드는 프로세스가 일하지 않으면 파드가 종료됨. 

 

CronJob

- job들을 특정시간에 주기적으로 반복할 수 있도록 함

반응형

'Infra' 카테고리의 다른 글

[code형상관리] AWS codecommit VS GitLab, GitHub  (0) 2022.04.12
[Tmux] 복사 붙여넣기 하기  (0) 2022.04.06
[k8s] Object Namespace, ResourceQuota, LimitRange  (0) 2022.03.07
[k8s] Object ConfigMap, Secret  (0) 2022.03.07
[k8s] Object Volume  (0) 2022.03.07