본문 바로가기

k8s

3. labels

728x90

- 한 Pod에는 여러 개의 label을 붙일 수 있다.

- Label은 key:value 형태로 구성된다.

- Pod 뿐만 아니라 모든 리소스는 Label을 만들 수 있고, 해당 리소스의 정보를 주기 위한 용도

- 두번째 용도로 리소스 간의 연결을 하기 위한 용도로 사용

- Service -> Pod : Service로 부터 원하는 Pod에 연결

 

Pod 가 다양해지게 되면 혼란스러울 수 있으니, 이를 관리하기 위한 목적으로 labels를 사용한다.

 

apiVersion: v1
kind: Pod
metadata:
  name: pod-1
  # web서버의 역할을 담당하게 될 Pod 임을 표시하는 labels
  labels:
    # pod-1은 web서버 역할을 할거야!
    type: web
    # location의 약자인데, environment로 보자.
    lo: dev
spec:
  containers:
  - name: container
    image: kubetm/init
---
apiVersion: v1
kind: Pod
metadata:
  name: pod-2
  labels:
    type: db
    lo: dev
spec:
  containers:
  - name: container
    image: kubetm/init

 

label이 중요한 이유는 Kubernetes가 Pod를 선택(select)할 때 사용한다.

즉, label은 "검색 조건"으로 사용이 된다.

또한, label은 Service와 연결될 때 가장 중요하다.

그리고 Deployment에서도 label을 통해서 관리할 Pod를 찾는다.

 

그러니 Kubernetes 거의 모든 객체들이 서로 연결을 위해서 label을 사용한다고 보면 된다.

 

name vs label

1) name

name: pod-1

- Pod 고유 이름

- 중복 불가

- 딱 하나만 지정

 

2) label

labels:
    type: web
    lo: dev

- 여러 개 가능

- 같은 값 공유 가능

- 그룹 관리 목적으로 사용

 

label은 이런 방식으로 지정하여 사용하는 듯 하다.(확실치 않으니, 실제 환경을 마주할 일이 있으면 수정해보겠음)

labels:
    app: nginx
    env: production
    tier: frontend
    version: v1

'k8s' 카테고리의 다른 글

6. kubectl [create | apply | get | describe | delete | exec]  (0) 2026.05.08
5. Node Schedule  (0) 2026.05.07
4. Service  (0) 2026.05.07
1. Pod  (0) 2026.05.06
쿠버네티스 DAY1  (0) 2023.04.17