728x90
Labels & Selectors
- 라벨과 셀렉터는 객체를 그룹화하는 표준 방법
- 예를 들어, 다양한 종들을 클래스로 구분하거나, 가축과 야생 동물로 구분할 수 있음.
- 색상이나 기타 여러 조건을 기준으로 필터링할 수 있음.
- 라벨을 사용하여 객체에 속성을 부여하고, 셀렉터를 사용하여 이러한 속성에 따라 필터링할 수 있음.
- 예시: class=mammal인 경우 포유류 목록을 얻을 수 있고,
- color=green인 경우 초록색 포유류 목록을 얻을 수 있음.
일반적인 사용 사례
- YouTube 비디오나 블로그에 태그를 추가하여
- 사용자가 올바른 콘텐츠를 필터링하고 찾도록 도울 수 있음.
- 온라인 스토어의 항목에 라벨을 추가하여
- 다양한 필터를 사용해 제품을 볼 수 있게 할 수 있음.
Kubernetes에서의 Labels & Selectors
- Kubernetes에서는 Pod, 서비스, 레플리카셋, 디플로이먼트 등 다양한 객체를 생성
- 시간이 지남에 따라 클러스터 내에 수백 또는 수천 개의 객체가 생길 수 있음.
- 라벨과 셀렉터를 사용하여 이러한 객체들을 타입별, 애플리케이션별, 기능별로 그룹화하고 필터링할 수 있음.
- 각 객체에 필요한 대로 app, function 등의 라벨을 추가함.
- 특정 객체를 선택할 때는 조건을 지정하여 필터링할 수 있음.
ex) app=app1
Kubernetes에서 라벨 지정 방법
- Pod 정의 파일의 metadata 섹션 아래에 labels 섹션을 생성
- 여기에 key-value 형식으로 라벨을 추가
- Pod를 생성한 후, kubectl get pods 명령어와 --selector 옵션을 사용하여
- 라벨을 가진 Pod를 선택할 수 있음. ex) app=app1.
내부 사용 사례
- Kubernetes 객체는 라벨과 셀렉터를 사용하여 서로 다른 객체를 연결함.
- 예를 들어, 세 개의 Pod로 구성된 레플리카셋을 생성하려면,
- Pod 정의 파일에 라벨을 추가하고, 레플리카셋의 셀렉터를 사용하여 Pod를 그룹화할 수 있음.
- 레플리카셋 정의 파일에는 두 곳에 라벨이 정의되어 있음.
- 템플릿 섹션 아래의 라벨은 Pod에 설정된 라벨임.
- 상단의 라벨은 레플리카셋 자체의 라벨임.
- 레플리카셋을 Pod와 연결하려면 레플리카셋의 셀렉터 필드를 Pod에 정의된 라벨과 일치하도록 설정해야 함.
- 한 개의 라벨로 충분하지만, 다른 기능을 가진 Pod가 있을 수 있으므로 여러 라벨을 지정할 수 있음.
- 라벨이 일치하면 레플리카셋이 성공적으로 생성됨.
- 서비스 같은 다른 객체에서도 동일하게 동작함.
- 서비스는 정의 파일에 설정된 셀렉터를 사용하여
- 레플리카셋 정의 파일에 설정된 라벨과 일치하는 Pod를 선택함.
Annotations
- 라벨과 셀렉터는 객체를 그룹화하고 선택하는 데 사용됨.
- 어노테이션은 정보를 기록하기 위해 사용됨.
- ex) 툴 정보(이름, 버전, 빌드 정보 등)나 연락처 정보(전화번호, 이메일 등).
- 이는 통합 목적으로 사용될 수 있음.
728x90
'자격증 > CKA' 카테고리의 다른 글
[CKA] Udemy 63. Node Affinity (0) | 2024.07.13 |
---|---|
[CKA] Udemy 59. Taints and Tolerations (0) | 2024.07.10 |
[CKA] Udemy 53. Manual Scheduling (0) | 2024.07.05 |
[CKA] Udemy 45. 시험 Tips - Imperative Commands with Kubectl (0) | 2024.07.04 |
[CKA] Udemy 44. Imperative vs Declarative (0) | 2024.07.04 |