728x90
반응형
라벨
1) 키-값 쌍의 형태로 리소스에 추가하는 메타데이터
2) 다양한 리소스를 관리, 필터링, 선택할 수 있음
3) 리소스를 식별하고 그룹화하는 데 사용함
4) pod, node에 부여 가능함
Label value조회
특정 key의 value를 조회
#kubectl get po -L key [root@]$ kubectl get po -L run NAME READY STATUS RESTARTS AGE RUN applyfyml 1/1 Running 1 6d applyfyml |
#kubectl get po pod명 -oyaml [root@]$ kubectl get po applyfyml -oyaml apiVersion: v1 kind: Pod metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{},"labels":{"run":"applyfyml"},"name":"applyfyml","namespace":"default"},"spec":{"containers":[{"image":"nginx","name":"nginx"}]}} creationTimestamp: "2024-08-14T06:30:01Z" labels: run: applyfyml # label에 등록된 key: value name: applyfyml namespace: default resourceVersion: "18940" ... |
Label 전체 조회
Pod별 등록된 label의 key=value를 조회
#kubectl get po --show-lables [root@]$ kubectl get po --show-labels NAME READY STATUS RESTARTS AGE LABELS applyfyml 1/1 Running 1 6d run=applyfyml |
pod 필터링
key 또는 key,value를 사용해 특정 pod를 조회
#yaml파일 출력 #kubectl get pod pod명 -oyaml [root@]$ kubectl get pod applyfyml -oyaml apiVersion: v1 kind: Pod metadata: annotations: kubectl.kubernetes.io/last-applied-configuration: | {"apiVersion":"v1","kind":"Pod","metadata":{"annotations":{},"labels":{"run":"applyfyml"},"name":"applyfyml","namespace":"default"},"spec":{"containers":[{"image":"nginx","name":"nginx"}]}} creationTimestamp: "2024-08-14T06:30:01Z" labels: #등록된 라벨 author: taejoolim blog: tistory run: applyfyml name: applyfyml namespace: default resourceVersion: "20103" selfLink: /api/v1/namespaces/default/pods/applyfyml uid: d082ff3a-59e4-42cd-b7e1-f75f5b0db93c |
#label에 필터링 조건(key)이 있는 pod만 조회 #kubectl get po -l key [root@]$ kubectl get po -l author NAME READY STATUS RESTARTS AGE applyfyml 1/1 Running 1 6d |
#label에 필터링 조건(key=value)이 있는 pod만 조회 #kubectl get po -l key=value [root@]$ kubectl get po -l blog=tistory NAME READY STATUS RESTARTS AGE applyfyml 1/1 Running 1 6d [root@]$ kubectl get po -l blog=naver error: name cannot be provided when a selector is specified |
노드셀렉터
1) pod가 특정 노드에서만 실행되도록 제어하는 기능을 제공함
2) pod가 적절한 노드에서 실행되도록 보장할 수 있음
3) 특정 하드웨어나 소프트웨어 요구 사항을 충족시킬 수 있음
4) 더욱 상세한 제어가 필요하다면 nodeAffinity를 사용해야 함
노드 라벨 부여
#라벨 부여 #kubectl label nodes 노드명 key=value [root@]$ kubectl label nodes master disktype=ssd node/master labeled |
#yaml파일 출력 #kubectl get node node명 -oyaml [root@]$ kubectl get node master -oyaml apiVersion: v1 items: - apiVersion: v1 kind: Node metadata: annotations: flannel.alpha.coreos.com/backend-type: vxlan flannel.alpha.coreos.com/kube-subnet-manager: "true" creationTimestamp: "2024-08-12T05:46:04Z" finalizers: - wrangler.cattle.io/node labels: beta.kubernetes.io/arch: amd64 beta.kubernetes.io/instance-type: k3s beta.kubernetes.io/os: linux disktype: ssd # 부여된 라벨 확인 weather: tooHot name: master ... |
노드셀렉터를 사용한 pod 실행
라벨이 부여된 노드에서만 pod를 실행하도록 설정할 수 있음
#nodeSelector 추가 [root@]$ vi applyfyml.yaml apiVersion: v1 kind: Pod metadata: labels: run: applyfyml name: applyfyml spec: containers: - name: nginx image: nginx nodeSelector: #nodeSelector 추가 disktype: ssd #노드의 라벨이 disktype: ssd인 노드에 pod를 실행 #pod 생성 [root@]$ kubectl apply -f applyfyml.yaml pod/applyfyml created |
728x90
반응형
'클라우드 > 쿠버네티스' 카테고리의 다른 글
[클라우드/쿠버네티스] initContainers (1) | 2024.09.11 |
---|---|
[클라우드/쿠버네티스] 볼륨 (0) | 2024.09.06 |
[클라우드/쿠버네티스] Pod 구조 (0) | 2024.08.20 |
[클라우드/쿠버네티스] kubectl 명령어 정리 (0) | 2024.08.15 |
[클라우드/쿠버네티스] 쿠버네티스 윈도우 설치 (0) | 2024.08.12 |
댓글