본문 바로가기
[DevOps]/Kubernetes

쿠버네티스 Labels & Selector 간단 정리

by 황원용 2023. 11. 10.
728x90

📌 Labels

  • Labels는 키-값 쌍으로 구성되어 있으며 리소스를 식별하는데 사용된다.
  • 사용자가 자유롭게 정의하고 할당할 수 있습니다.
  • 예를 들어, 애플리케이션의 특정 구성 요소를 나타내기 위해 'app=frontend'와 같은 레이블을 사용할 수 있다.

 

📌 Selector

  • Selector는 레이블을 기반으로 리소스를 필터링하고 선택하는데 사용된다.
  • 셀렉터는 기본적으로 두 가지 유형이 있다.

Equality-based selector

  • 키와 값이 정확하게 일치하는 리소스를 선택한다.
  • 예를 들어 'app=frontend' 셀렉터는 'app' 레이블의 값이 'frontend'인 모든 리소스를 선택한다.

Set-based selector

  • 값 집합 내에 있는 리소스를 선택한다.
  • 예를 들어 'environment in (production, qa)' 셀렉터는 'environment' 레이블의 값이 'production' 또는 'qa'인 모든 리소스를 선택한다.

 

📜 정리

  • Labels와 Selector를 통해 사용자는 필요에 따라 특정 리소스를 쉽게 선택하고 조직할 수 있다.
  • 예를 들어 특정 레이블을 가진 모든 파드를 업데이트하거나 특정 레이블을 가진 모든 리소스를 모니터링할 수 있다.

 

⌨️ 예시

 

  • labels로 정한 key = value를 --selector 명령어를 통해 검색할 수 있다.

 

⌨️ 예시 YAML 파일

apiVersion: apps/v1 
kind: ReplicaSet 
metadata: 
  name: replicaset-1 
  labels: # (1)
    tier: front-end 
spec: 
  replicas: 2 
  selector:  # (3)
    matchLabels: 
      tier: front-end 
  template: 
    metadata: 
      labels: # (2)
        tier: front-end 
    spec: 
      containers:
        - name: nginx 
          image: nginx
  • (1) 위의 metadata.name: replicaset-1의 labels는 레플리카셋 자체의 라벨이다.
    • 이 labels는 레플리카셋을 사용하는 다른 리소스를 구성할 때 사용될 것이다.
  • (2) 아래 template의 labels는 파드에서 구성된 레이블이다.
  • (3) 레플리카셋을 파드에 연결하기 위해 selector가 이용된다.

 

 

 

참고

뤼튼

Udemy - Certified Kubernetes Administrator (CKA) with Practice Tests

728x90