본문 바로가기
클라우드

🔐 SA(ServiceAccount)와 RBAC

by Mostlove 2025. 5. 28.
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로 보내는 중간자 역할
  • 모니터링 레벨: 인프라 수준 / 컨테이너 수준 / 어플 수준

 

반응형