자격증/CKA

[CKA] Udemy 56. Labels and Selectors

14ben 2024. 7. 9. 23:21
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