본문 바로가기

Cloud-native/Kubernetes

[Kubernetes]What is Annotation in Kubernetes?

  • label과 마찬가지로 key-value 쌍으로 구성하며 label처럼 사용자가 설정할 수 있다.
  • label → 사용자가 설정한 특정 label의 오브젝트들을 선택
  • annotation → 쿠버네티스 시스템이 필요한 정보들을 담았으며, 쿠버네티스 클라이언트나 라이브러리가 자원을 관리하는 데 활용.
    • e.g. 릴리즈 정보, 로깅, 모니터링에 필요한 정보등

Example - Annotation

annotation 설정

apiVersion: apps/v1
kind: Deployment
metadata:
  name: annotation
  labels:
    app: nginx
  annotations:
    manager: "admin-name" # 관리자 정보
    contact: "010-0000-0000" # 관리자 번호
    release-version: "v1.0" # 디플로이먼트 버전 정보
spec:
  replicas: 1
  selector:
    matchLabels:
      app: nginx
  template:
    metadata:
      labels:
        app: nginx
    spec:
      containers:
      - name: nginx
        image: nginx
        ports:
        - containerPort: 80

설정한 annotation 확인

[dewble@instance-1 annotations]$ kubectl apply -f .
deployment.apps/annotation created
[dewble@instance-1 annotations]$ kubectl describe deploy annotation
Name:                   annotation
Namespace:              kube-system
CreationTimestamp:      Fri, 02 Oct 2020 15:49:38 +0000
Labels:                 app=nginx
Annotations:            contact: 010-0000-0000
                        deployment.kubernetes.io/revision: 1
                        manager: admin-name
                        release-version: v1.0
Selector:               app=nginx

describe로 확인해보면 위에서 설정한 Annotation을 확인할 수 있다.


2022.05.01 - [리뷰/도서] - [도서]쿠버네티스 입문