Controller
Controller Overview
- Kubernetes에는 여러 Controller가 존재하며, 각 Controller는 특정 리소스 상태를 지속적으로 감시하고 실제 상태가 원하는 상태(Desired State)가 되도록 조정(Reconciliation Loop) 하는 역할을 수행
- ReplicaSet → Pod 개수 유지 (Auto Healing)
- Deployment → 롤링 업데이트 / 롤백
- HPA → Auto Scaling
- Job / CronJob → 배치성 실행

Controller - ReplicaSet
Template
- Replication에 Selector로 매핑된 pod이 죽으면 template에 정의된 pod을 재생성
→ 위 방식을 활용해 수동으로 버전 업데이트 가능 (template 정의 파일 수정 후 version 부분 변경 후 기존 pod 직접 삭제) - ReplicaSet이 Pod를 소유하려면 selector가 템플릿의 라벨과 일치해야함

Replicas
- replicas 로 정의한 수만큼 Pod을 유지하는 방식
- 사용자가 직접 생성한 pod의 경우 replicaSet의 관리 범위를 벗어나게 됨
→ 별도 pod 생성 없이 replicaSet를 생성하면 replicas와 template를 참조해 자동 생성함

Selector의 matchLabels
- matchLabels 값과 같은 Label들의 Pod을 선택


Selector의 matchExpressions
- matchLabels 보다 더 다양한 표현식을 활용하여 여러 Label 들을 선택
- Exists: 해당 Key가 Label에 있을 경우
- DoesNotExist: 해당 Key가 Label에 없을 경우
- In: 해당 Key가 Label에 있으며, 지정된 values 목록 중 하나와 일치할 경우
- NotIn: 해당 Key가 Label에 있으며, 지정된 values 목록에 없을 경우

Reference : https://inf.run/yW34
'Tech > [Container] Kubernetes' 카테고리의 다른 글
| 쿠버네티스 기본 오브젝트 - Namespace, ResourceQuota, LimitRange (0) | 2025.12.02 |
|---|---|
| 쿠버네티스 기본 오브젝트 - ConfigMap, Secret (0) | 2025.12.01 |
| AWS 환경에 Kubespray를 활용하여 Kubernetes Cluster 배포하기 (0) | 2025.05.21 |
| 쿠버네티스 기본 오브젝트 - Volume (0) | 2025.04.14 |
| 쿠버네티스 기본 오브젝트 - Service (0) | 2025.04.14 |