Kubernetes 기초 (6) - Lable & Selector

이것저것 개발자·2022년 4월 25일
3

kubernetes 기초

목록 보기
6/16
post-thumbnail
post-custom-banner

Label과 Selector란 무엇인가??

Label

쿠버네티스 오브젝트를 식별하기 위한 key/value 쌍의 메타정보
쿠버네티스 리소스를 논리적인 그룹으로 나누기 위해 붙이는 이름표

Selector

Label을 이용해 쿠버네티스 리소스를 필터링하고 원하는 리소스 집합을 구하기 위한 label query
Label을 이용해 쿠버네티스 리소스를 선택하는 방법(Label query)

언제 사용할까?

  1. 클러스터에서 서로 다른 팀의 수백개 Pod이 동시에 실행되고 있는 상황에서 주문 트래픽을 주문 Pod으로, 배달 트래픽을 배달 Pod으로 라우팅 해야 할 때
  2. 꽃배달 기능 추가로 배달 트래픽이 증가되는 상황에서 클러스터에서 실행중인 배달 관련 Pod들을 수평 확장해야 할 때

우리가 어떤 리소스를 선택해서 명령을 실행하고자 할 때 사용

Label

apiVersion:v1
kind:Pod
	`metadata:
    names:my-pod
    labels:
    	app:backend
        version:v1
        env:prod`
spec:
	containers:
    - image: my-pod
      name: my-pod
kubdctl bdg pod my-pod --show-labels

레이블을 확인하는 명령어

kubectl label pod my-pod app=backend

app=backend라는 label을 추가

kubectl label pod my-pod app=frontend --overwrite

label을 수정하는 명령어

kubectl label pod/my-pod --label-columns app,env
kubectl get pod/my-pod -L app,env

app, env로 저장된 label만 확인

kubectl label pod/my-pod app-

app 이라는 label을 삭제

Selector

kubectl get <오브젝트 타입> --selector <label query 1, ...>
kubectl get <오브젝트 타입> -l <label query 1, ...>

label query: key=value
kubectl get 명령어와 함께 Selector 사용

Selector 의 연산자

  • 같다(=), 같지 않다(!=)
kubectl get pod --selector app=backend

app=backend label을 가지고 있는 Pod만 조회

  • 집합 연산자
    - key in(value1, value2, ...)
    • key notin(value1, value2, ...)
  • 존재 유무
    - key: label에 key가 있을 때
    - !key: label에 key가 없을 때

profile
조호영, Developing something
post-custom-banner

0개의 댓글