사용 예제
‣
https://kubernetes.io/docs/concepts/overview/working-with-objects/annotations/
k8s 오브젝트에 메타데이터를 첨부하는 방법은 레이블을 이용한 방법과, 바로 어노테이션을 이용한 방법이 있다.
전자는 오브젝트를 선택하기 위해 특정 조건을 만족하는 오브젝트를 그루핑하고 선택하는 기능을 한다. 반면 어노테이션은 오브젝트 식별이나 선택에 사용되지 않으며, 단지 여러가지 용도의 메타데이터를 저장하기 위한 용도이다. 어노테이션에는 레이블에서는 허용되지 않는 문자도 포함할 수 있다.
어노테이션 역시 레이블과 같이 키 : 값 형태의 맵 구조이다.
"metadata": {
"annotations": {
"key1" : "value1",
"key2" : "value2"
}
}
이때 키와 값은 반드시 문자열이어야 한다. 숫자, 불리언, 리스트 등의 다른 형식을 키나 값에 사용할 수 없다.
유효한 어노테이션에는 두 개의 세그먼트가 있다. 두 개의 세그먼트는 접두사와 이름이고, 둘의 구분자는 슬래시(/ )이다.
이름세그먼트에는 중간에 대시, 밑줄, 점이 들어갈 수 있고, 접두사는 선택적이다.
접두사가 지정된 경우에 접두사는 DNS 서브도메인이어야 한다.
이 DNS 서브도메인은 점(.) 으로 구분된 DNS레이블의 모음임.
접두사가 생략될 경우 해당 어노테이션 키는 사용자에게 비공개로 간주된다. 따라서 사용자가 사용할 오브젝트에 어노테이션을 추가하는 자동화된 구성요소들(kube-scheduler, kube-controller-manager, kubectl 등)은 반드시 접두사를 지정해야 한다.
💡
kubernetes.io/와k8s.io/는 쿠버네티스 핵심 요소들을 위해 미리 예약된 접두사이다.