728x90
반응형
쿠버네티스는 다양한 사용자와 어플리케이션이 동시에 실행되기 때문에 **역할 기반 접근 제어(RBAC: Role-Based Access Control)**와 **서비스 어카운트(SA)**로 권한을 체계적으로 관리해.
- SA: 어플리케이션이나 자동화된 작업에 권한을 부여할 때 사용됨
- RBAC: Role, ClusterRole 등을 만들어 SA에게 권한을 할당
- 예시) Linux의 /etc/sudoers, DB의 Role 개념과 유사
종류 | 설명 |
Role | 특정 네임스페이스 내 자원(파드, 서비스 등)에 대한 권한 정의 |
ClusterRole | 클러스터 전체 또는 네임스페이스에 속하지 않는 자원(노드, PV 등)에 대한 권한 정의 |
Aggregation | 여러 ClusterRole을 묶어 재사용 가능 |
📦 자원 제한과 오버커밋
- Request: 최소 자원 보장 (예: RAM 500MB)
- Limit: 최대 자원 한도 (예: RAM 1GB)
- OverCommit: 여유 리소스를 다른 파드에 재배분할 수 있게 함
컨테이너는 요청된 최소 자원을 보장받고, 시스템이 허용하면 Limit까지 사용할 수 있어.
🎯 스케쥴링과 노드 제어
파드를 어떤 노드에 배치할지는 쿠버네티스가 결정하지만, 조건을 설정할 수 있어.
- NodeSelector / Node Affinity: 특정 노드 조건에 따라 파드 배치
- Pod Affinity: 특정 파드 근처에 배치
- Taint & Toleration: 특정 노드에 파드 배치를 막되, 허용 조건도 설정 가능
- cordon/drain/uncordon: 노드 유지보수나 업데이트 시 파드 이동 또는 노드 제외/복구
🔄 롤링 업데이트 & 프로브
- Rolling Update: 파드를 순차적으로 교체하며 무중단 서비스 제공
- Liveness Probe: 컨테이너 생존 여부 확인, 실패 시 재시작
- Readiness Probe: 서비스 요청 수신 준비 여부 확인
- Startup Probe: 앱 초기화 완료 여부 확인
Probe 종류 | 설명 |
Liveness | 살아 있는지 체크, 실패 시 재시작 |
Readiness | 요청 받을 준비 됐는지, 실패 시 서비스 제외 |
Startup | 초기화 완료 여부, 실패 시 재시작 |
📈 오토 스케일링 (HPA)
- HPA(Horizontal Pod Autoscaler): CPU, 메모리 등의 메트릭에 따라 파드 수 자동 조정
- metrics-server 설치 필요
⚙️ CRD (Custom Resource Definition)
- 사용자가 직접 오브젝트를 정의해서 쿠버네티스에서 관리 가능
- 예: Redis를 CRD로 정의 → 사용자 정의 리소스로 활용
📅 Jobs & CronJobs
- Job: 특정 작업을 한 번 실행하고 종료
- CronJob: 주기적으로 Job 실행 (ex: 매일 백업)
🧱 DaemonSet & StatefulSet
- DaemonSet: 모든 노드에 하나씩 파드를 배포 (모니터링, 로깅 등)
- StatefulSet: 상태 유지가 필요한 앱(DB 등)을 위한 파드 관리
StatefulSet의 경우는 headless service를 이용해 파드에 고유한 이름으로 접속 가능.
💾 StatefulSet + PV
- 상태 있는 데이터 저장 시 Persistent Volume(PV) 사용
- 파드 수만큼 PVC를 따로 만들기 귀찮을 경우 동적 프로비저닝 사용
📊 모니터링
쿠버네티스 자체는 모니터링 도구가 부족해서 외부 도구를 사용해야 함.
도구 | 기능 |
CAdvisor | 컨테이너 리소스 모니터링 (/metrics 경로) |
Prometheus | 시계열 데이터 수집, 저장 |
Grafana | Prometheus 데이터를 시각화 |
AlertManager | 경고 알림 전송 (예: Slack) |
- Exporter: /metrics 데이터를 Prometheus로 보내는 중간자 역할
- 모니터링 레벨: 인프라 수준 / 컨테이너 수준 / 어플 수준
반응형
'클라우드' 카테고리의 다른 글
☁️ 클라우드 모니터링 with Prometheus & Grafana + SDN(OpenStack) 구성 정리 (0) | 2025.05.29 |
---|---|
🎯 쿠버네티스(Kubernetes) 리소스 관리 완전 정리 (0) | 2025.05.27 |
🧭 쿠버네티스 핵심 개념 총정리 (0) | 2025.05.26 |
🧾 Kubernetes YAML 예제 실습 모음 (0) | 2025.05.23 |
📦 Kubernetes(K8s) 클러스터 구성과 CNI, YAML 완전 정리 (0) | 2025.05.23 |