본문 바로가기

클라우드/쿠버네티스(Kubernetes)

쿠버네티스 Kubernetes 레이블 (Label)

# 레이블
1.검색의 기능
2.리소스-리소스의 관계를 정의해 줄 때 

레이블(라벨) 태그의 의미랑 비슷
검색을 할 수 있다
관리목적상 의미를 부여하고 검색한다
key value 형태
메타데이타에 정의한다
파드의 메인어플리케이셔는 하나
다른것들은 보조
더보기

# 레이블
1.검색의 기능
2.리소스-리소스의 관계를 정의해 줄 때 

레이블(라벨) 태그의 의미랑 비슷
검색을 할 수 있다
관리목적상 의미를 부여하고 검색한다
key value 형태
메타데이타에 정의한다
파드의 메인어플리케이셔는 하나
다른것들은 보조

 

# 레이블을 이용한 파드 정의 
vagrant@k-control:~$ cat ldh-pod-label.yaml
apiVersion: v1
kind: Pod
metadata:
  name: ldh-pod-label
  labels:
    env: dev
    tier: frontend
spec:
  containers:
  - image: ghcr.io/c1t1d0s7/go-myweb
    name: ldh
    ports:
    - containerPort: 8080
      protocol: TCP


# 파드 생성
vagrant@k-control:~$ kubectl create -f ldh-pod-label.yaml
pod/ldh-pod-label created

# 파드 레이블 확인 
vagrant@k-control:~$ kubectl get pods --show-labels
NAME            READY   STATUS    RESTARTS   AGE   LABELS
ldh-pod         1/1     Running   1          18h   <none>
ldh-pod-label   1/1     Running   0          19s   env=dev,tier=frontend

# 특정 필드를 지정하여 확인 가능 
vagrant@k-control:~$ kubectl get pods -L env,tier
NAME            READY   STATUS    RESTARTS   AGE   ENV   TIER
ldh-pod         1/1     Running   1          18h         
ldh-pod-label   1/1     Running   0          57s   dev   frontend

# 레이블이 없는 ldh-pod에 env 레이블 추가 
vagrant@k-control:~$ kubectl label pods ldh-pod env=dev
pod/ldh-pod labeled

# 확인 
vagrant@k-control:~$ kubectl get pods --show-labels
NAME            READY   STATUS    RESTARTS   AGE   LABELS
ldh-pod         1/1     Running   1          18h   env=dev
ldh-pod-label   1/1     Running   0          2m    env=dev,tier=frontend

# 레이블 수정
vagrant@k-control:~$ kubectl label pods ldh-pod-label env=debug --overwrite
pod/ldh-pod-label labeled
vagrant@k-control:~$ kubectl get pods -L env,tier
NAME            READY   STATUS    RESTARTS   AGE     ENV     TIER
ldh-pod         1/1     Running   1          18h     dev     
ldh-pod-label   1/1     Running   0          2m40s   debug   frontend