카테고리 없음

✍️ 어노테이션이란?

idea9329 2025. 4. 9. 14:45
반응형

 

Annotation = 메타데이터를 위한 “주석” 같은 것

Kubernetes 리소스에 정보를 추가로 붙이는 방법이야.
그 정보는 Kubernetes가 직접 기능적으로 처리하진 않지만,
컨트롤러나 다른 도구들이 보고 특정 동작을 하도록 참고하는 용도로 써.


✅ 형식 예시

metadata:
  name: my-service-account
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/MyAppRole

위처럼 annotations: 아래에 key: value 형태로 적는 구조야.


📌 Annotation vs Label

항목LabelAnnotation

목적 리소스를 선택/그룹화하기 위해 사용 리소스에 부가 설명/정보 부착
구조 key-value key-value
용도 kubectl get pods -l app=nginx 외부 컨트롤러/툴이 참고
용량 제한 작음 (주로 필터링용) 큼 (문서, 설정 등 첨부 가능)

🔧 EKS 예시: IAM과 연결할 때 어노테이션

EKS에서는 ServiceAccount에 아래 어노테이션을 붙이면,
Pod가 그 IAM Role로 AWS 리소스에 접근할 수 있어:

apiVersion: v1
kind: ServiceAccount
metadata:
  name: s3-access-sa
  annotations:
    eks.amazonaws.com/role-arn: arn:aws:iam::123456789012:role/EksS3AccessRole

→ 이러면 이 SA를 사용하는 Pod는 S3 같은 AWS 서비스에 접근 가능해!


✅ 실전에서 어디 쓰이냐면:

  • ALB Ingress Controller 설정 시
  • external-dns, cert-manager, autoscaler 등 설정 시
  • Helm Chart에서 외부 시스템 설정 전달할 때
  • AWS EKS IAM 연동할 때 (가장 많이 씀!)

🧠 요약 한 줄로

어노테이션은 Kubernetes 리소스에 추가 설정이나 설명을 붙이는 주석/메모야.
도구나 컨트롤러가 이걸 보고 특수한 동작을 할 수 있어!

반응형