이세개발
article thumbnail

쿠버네티스에서 레이블(Label)은 사용자가 오브젝트를 식별하기 위해 부착하는 키-값 쌍입니다. 레이블을 사용하면 사용자가 자신의 리소스를 구성하고 관리하는 데 유용한 방식으로 오브젝트를 선택하고 조직화할 수 있습니다.

다음은 myapp-pod-label이라는 이름의 Pod를 생성하는 myapp-pod-label.yaml 파일입니다. 이 Pod에는 env: devtier: frontend라는 두 개의 레이블이 부착되어 있습니다.

apiVersion: v1
kind: Pod
metadata:
  name: myapp-pod-label
  labels:
    env: dev
    tier: frontend
spec:
  containers:
  - name: myapp
    image: ghcr.io/c1t1d0s7/go-myweb:alpine
    ports:
    - containerPort: 8080
      protocol: TCP

레이블을 사용하여 Pod를 선택하고 관리하는 방법은 다음과 같습니다:

  • 모든 Pod의 레이블을 표시하려면 다음 명령어를 사용합니다:

    kubectl get pods --show-labels
  • env=dev 레이블이 있는 모든 Pod를 선택하려면 다음 명령어를 사용합니다:

    kubectl get pods -l env=dev
  • env=devtier=frontend 레이블이 모두 있는 모든 Pod를 선택하려면 다음 명령어를 사용합니다:

    kubectl get pods -l env=dev,tier=frontend
  • env=dev 레이블이 있고 tier=backend 레이블이 없는 모든 Pod를 선택하려면 다음 명령어를 사용합니다:

    kubectl get pods -l env=dev,tier!=backend
  • env 레이블이 있는 모든 Pod를 선택하려면 다음 명령어를 사용합니다:

    kubectl get pods -l env
  • env 레이블의 값이 dev 또는 prod인 모든 Pod를 선택하려면 다음 명령어를 사용합니다:

    kubectl get pods -l 'env in (dev,prod)'
  • tier=control-planecomponent=kube-apiserver 레이블이 모두 있는 모든 Pod를 선택하려면 다음 명령어를 사용합니다:

    kubectl get pods -A -l tier=control-plane,component=kube-apiserver

레이블을 추가하거나 변경하려면 kubectl label 명령어를 사용합니다:

  • Pod에 새 레이블을 추가하려면 다음 명령어를 사용합니다:

    kubectl label pod myapp-pod-label version=0.1
  • Pod의 레이블을 변경하려면 --overwrite 플래그를 사용합니다:

    kubectl label pod myapp-pod-label version=0.2 --overwrite
  • Pod의 레이블을 제거하려면 레이블 이름 뒤에 -를 붙입니다:

    kubectl label pod myapp-pod-label version-

이렇게 레이블을 사용하면 쿠버네티스 리소스를 효과적으로 선택하고 관리할 수 있습니다.

profile

이세개발

@print(name)

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!