DevOps/Docker & K8S

쿠버네티스 레이블 vs 어노테이션

SKaSha 2020. 2. 12. 07:37

쿠버네티스에서 레이블과 어노테이션은 모두 key-value 형식으로 메타 데이터를 제공한다는데서 동일함을 가집니다.
그렇다면 두 기능의 차이점에 대해 알아보도록 하겠습니다.

레이블 (Label)

가장 큰 차이점은 레이블은 쿠버네티스 리소스를 식별한다는 것입니다.
그로인해 레이블은 서비스 셀렉터와 같이 관련된 리소스 그룹을 지정하는데 사용할수 있습니다.
또한 키와 값의 구조가 제한되어 있기때문에 최적화 된 데이터 구조와 알고리즘을 사용하여 쿼리를 빠르게 평가할 수 있습니다.
레이블의 키와 값 구조에 대한 제한

어노테이션 (Annotation)

어노테이션은 비식별 정보이며 쿠버네티스 내부에서 사용할수 없습니다.
하지만 헬름과 같은 외부 툴이나 라이브러리에서 참조하여 사용할수 있습니다.
어노테이션의 양이 크더라도, 쿠버네티스 성능에는 영향을 받지 않으므로 키와 값의 구조가 레이블처럼 제한되지 않습니다.

결론

리소스 그룹을 가리켜야 할 경우 레이블을 사용하는 것이 좋습니다.

쿠버네티스 내부에서 사용하지는 않지만 외부 툴에서 사용하는 데이터이거나 프로젝트 담당자 등을 적는 사람에게 도움이 되는 데이터일 경우 어노테이션을 이용하는 것이 좋습니다.