쿠버네티스 라벨(Label)과 어노테이션(Annotation) 설계

💡 핵심 요약 (Executive Summary)

본 가이드는 label & annotation 핵심 가이드 및 실전 아키텍처의 핵심 개념, 실전 구성 명령어 및 아키텍처 베스트 프랙티스를 다룹니다. 클라우드 네이티브 및 인프라 엔지니어링 실무에 즉시 활용 가능하도록 체계적으로 정리했습니다.

📑 Table of Contents
Label
namespace
bash
#istio 카나리 배포
istio.io/rev=canary
#istio 프록시 주입 허용 or 불허
istio-injection=enabled or disabled
pod
bash
#istio 카나리 배포
istio.io/rev=canary
#istio 프록시 주입 허용 or 불허
sidecar.istio.io/inject="true" or "false"
Annotation
namespace Annotation
pod Annotation
bash
#linkerd 프록시 주입 허용
linkerd.io/inject: enabled
secret Annotation
bash
#sa인증토큰 발행
kubernetes.io/service-account.name: $sa
ingress Annotation
bash
#cert-manager certification 생성요청
cert-manager.io/cluster-issuer: $clusterissuer
cert-manager.io/issuer: $issuer

# nginx
## 세션 유지 및 웹소켓 고정 (Sticky Session)
#nginx.ingress.kubernetes.io/affinity: "cookie"
#nginx.ingress.kubernetes.io/session-cookie-name: "route"
#nginx.ingress.kubernetes.io/session-cookie-change-on-failure: "true"
## Client IP Hash 기반 Sticky Session
nginx.ingress.kubernetes.io/upstream-hash-by: "$remote_addr"
# 타임아웃 설정 (연결 유지)
nginx.ingress.kubernetes.io/proxy-read-timeout: "3600"
nginx.ingress.kubernetes.io/proxy-send-timeout: "3600"
## 데이터 처리
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
nginx.ingress.kubernetes.io/proxy-body-size: "50m"
nginx.ingress.kubernetes.io/proxy-buffer-size: "128k"
## custom header
nginx.ingress.kubernetes.io/custom-headers: "portal/no-cache-headers"
gateway Annotation
bash
#cert-manager certification 생성요청
cert-manager.io/cluster-issuer: $clusterissuer
cert-manager.io/issuer: $issuer
storageclass Annotation
bash
storageclass.kubernetes.io/is-default-class: "true" or "false"
pvc Annotation
yaml
pv.kubernetes.io/bind-completed: "yes"
pv.kubernetes.io/bound-by-controller: "yes"
volume.beta.kubernetes.io/storage-provisioner: cmp
volume.kubernetes.io/storage-provisioner: cmp

Comments

Leave a Reply

Your email address will not be published. Required fields are marked *