반응형
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 리소스에 추가 설정이나 설명을 붙이는 주석/메모야.
도구나 컨트롤러가 이걸 보고 특수한 동작을 할 수 있어!
반응형