[쿠버네티스] - Labels & Selectors

chancehee·2023년 12월 19일
0

쿠버네티스

목록 보기
13/17
post-thumbnail
post-custom-banner

[ 개요 ]

쿠버네티스 클러스터에서 수 많은 리소스가 있다면, 구분하기 위한 방법이 필요하다.
즉, 어떤 리소스를 선택해서 명령을 실행하고자 할 때 Label과 Selector를 사용할 수 있다.

[ Label ]

  • 쿠버네티스 리소스를 식별하기 위한 key-value 쌍의 메타정보

  • 리소스의 하위 집합을 선택하고, 구성하는데 사용할 수 있다.

  • key는 고유한 값이어야 한다.

    apiVersion: v1
    kind: Pod
    metadata:
        names: my-pod
        labels:
            app: my-app # key-value
            env: prod # key-value
    spec:
        containers:
        - image: my-pod
          name: my-pod

[ Selector ]

  • Label을 이용해 쿠버네티스 리소스를 필터링하고 원하는 리소스 집합을 구할 수 있다

  • =, ==, != 3가지 연산자만 허용한다.

    kubectl get pods --selector app=my-app,env=prod

[ 참고 ]

Deployment 파일 살펴보기

apiVersion: apps/v1
kind: Deployment
metadata:
	name: chan # Deployment의 이름
    labels:
    	app: chan # Deployment를 식별하기 위한 Labels
spec:
	replicas: 3 
	selector:
    	matchLabels:
        	app: chan # Label과 일치하는 Pod을 찾기위한 Selector
        matchExpressions:
        	- {key: tier, operator: In, values: [backend, backend2, backend3]} # 'tier' Label에 대해서 backend, backend2, backend3 값을 갖고 있는 Pod을 식별한다.
template:
	metadata:
    	labels:
        	app: chan # 생성될 Pod에 부여하는 Label
            tier: backend
    spec:
    	containers:
        	- name: chan
              image: 이미지 경로
              ports:
              	- name: http
                  containerPort: 80

참고자료

post-custom-banner

0개의 댓글