Kubernetes

[k8s] kubectl annotate - 어노테이션 추가/삭제

비번변경 2023. 12. 12. 15:13

Annotation

2021.08.06 - Labels, Selectors and Annotation에서 간단히 정의했는데 쿠버네티스에서 어노테이션은 키-값 형식으로 객체에 대한 정보를 제공하는 임의의 비식별 메타데이터, 간단히 말해 주석을 의미한다.

"metadata": {
  "annotations": {
    "key1" : "value1",
    "key2" : "value2"
  }
}

yaml 정의 파일에서 spec.metadata.annotations로 정의한다.

 

어노테이션으로 지정하는 정보는 다음과 같을 수 있다.

  • 이미지 정보 : 빌드, 릴리즈, 타임스탬프, 릴리즈 아이디, Git 브랜치, 이미지 해시, 레지스트리 주소 등
  • 로깅, 모니터링, 분석 또는 감사 리포지터리에 대한 포인터
  • 디버깅 목적으로 사용하는 클라이언트 라이브러리 정보
  • 다른 시스템 구성 요소와 관련된 사용자, 도구, 시스템 정보

등등…….

 

이 글에서는 yaml 형식이 아니라 어노테이션을 추가하는 명령어인 kubectl annotate에 대해 적어둔다.

 

 

kubectl annotate

하나 이상의 객체에 대한 주석을 추가하거나 갱신한다.

kubectl annotate [--overwrite] (-f FILENAME | TYPE NAME) KEY_1=VAL_1 ... KEY_N=VAL_N [--resource-version=version]

--overwrite 옵션을 추가하면 기존 데이터를 갱신한다. 만약 --overwrite 옵션을 추가하지 않고 기존 데이터를 갱신하려고 시도하면 실패한다. 

 

 

사용 예시

- 어노테이션 추가

kubectl annotate pods nginx description='web-server'

 

실행 결과

 

 

- 어노테이션 갱신

kubectl annotate pods nginx --overwrite description='api-server'

 

실행 결과

 

 

- 어노테이션 삭제

kubectl annotate pods nginx description-

 

 

 

참고 문서

https://kubernetes.io/ko/docs/concepts/overview/working-with-objects/annotations/

https://kubernetes.io/docs/reference/generated/kubectl/kubectl-commands#annotate

https://jamesdefabia.github.io/docs/user-guide/kubectl/kubectl_annotate/