Search

Labels & Selectors

Created
2023/09/30 10:58
Tags
k8s
CKA
Mumshad Mannambeth
Scheduling

1) Grouping & Filtering

라벨은 쿠버네티스 객체의 속성을 꼬리표처럼 붙여놓는 것이고, 라벨링이 된 객체들은 가상의 그룹을 형성하게 됨 (실제로 무언가 생기는 것은 아님)
이와 같은 라벨을 바탕으로 selector로 특정 라벨을 선택하여 필터링 할 수 있고, 객체들을 걸러낼 수 있음
kubectl get pod —selector ${KEY}=${VALUE}
위 명령어 형태로 특정 라벨이 붙은 Pod를 읽을 수 있고, Pod가 아닌 다른 객체들도 비슷하게 사용할 수 있음

2) Connecting

그룹으로 묶고 필터링 하는 것 외에도 라벨과 selector는 쿠버네티스의 객체들을 연결하는 역할을 하기도 함
예를 들어 ReplicaSet 혹은 Deployment 에서 spec.template에 작성한 metadata.labels는 이 객체들을 구성하는 Pod의 라벨이며, 이 라벨들이 selector가 찾는 라벨이 됨
** ReplicaSet 혹은 Deployment의 metadata.labels는 다른 객체들이 해당 객체를 찾아서 연결할 때 사용될 수 있음
서비스의 경우도 마찬가지로 spec.selector로 명시한 라벨을 이용하여 다른 객체들과 연결하여 접근성을 설정

3) Annotations

번외로 annotations라는 필드가 있는데, 라벨과 selector가 위와 같은 기능을 위해 키와 값을 명시하는 것이었다면, annotations는 구체적인 특정 정보를 기록하는 용도의 말 그대로 주석으로 동작