💻
[Kubernetes] Pod에 Lable 설정해보기
On this page
❐ 실습 내용
yaml 파일을 이용하여 파드를 생성하고, 파드에 레이블을 설정해봅시다.
파드 확인
root@instance-1:~# kubectl get podNo resources found in default namespace.
pod1.yaml 파일 생성
pod1.yaml 파일을 생성합니다.
root@instance-1:~# vi pod.1yaml
yaml 파일 작성
pod1.yaml 파일에 아래와 같이 작성합니다.
apiVersion: v1 # 디스크립터가 사용하는 API 버전kind: Pod # 리소스 종류metadata:name: nginx # 파드 이름labels:creation_method: manualenv: productionspec:containers:- name: nginx # 생성할 컨테이너 이름image: nginx # 생성할 컨테이너 이미지ports:- containerPort: 80 # 애플리케이션 포트
yaml 파일 적용
pod1.yaml 파일 내용을 적용합니다.
root@instance-1:~# kubectl create -f pod1.yamlpod/nginx created
pod2.yaml 파일 생성
pod2.yaml 파일을 생성합니다.
root@instance-1:~# vi pod2.yaml
yaml 파일 작성
pod2.yaml 파일에 아래와 같이 작성합니다.
apiVersion: v1 # 디스크립터가 사용하는 API 버전kind: Pod # 리소스 종류metadata:name: jenkins # 파드 이름labels:creation_method: manualenv: developspec:containers:- name: jenkins # 생성할 컨테이너 이름image: jenkins # 생성할 컨테이너 이미지ports:- containerPort: 80 # 애플리케이션 포트
yaml 파일 적용
pod2.yaml 파일 내용을 적용합니다.
root@instance-1:~# kubectl create -f pod2.yamlpod/jenkins created
파드 확인
root@instance-1:~# kubectl get podNAME READY STATUS RESTARTS AGEjenkins 0/1 ErrImagePull 0 10snginx 1/1 Running 0 6m58s
레이블 확인
root@instance-1:~# kubectl get pod --show-labelsNAME READY STATUS RESTARTS AGE LABELSjenkins 0/1 ImagePullBackOff 0 76s creation_method=manual,env=developnginx 1/1 Running 0 8m4s creation_method=manual,env=production
레이블 추가
nginx 파드에 team 레이블을 추가합니다.
root@instance-1:~# kubectl label pod nginx team=dev1 --overwritepod/nginx labeledroot@instance-1:~# kubectl get pod --show-labelsNAME READY STATUS RESTARTS AGE LABELSjenkins 0/1 ImagePullBackOff 0 76s creation_method=manual,env=developnginx 1/1 Running 0 8m4s creation_method=manual,env=production,team=dev1
레이블 삭제
nginx 파드의 creation_method 레이블을 삭제합니다.
root@instance-1:/etc/kubernetes/manifests# kubectl label pod nginx creation_method-pod/nginx labeledroot@instance-1:~# kubectl get pod --show-labelsNAME READY STATUS RESTARTS AGE LABELSjenkins 0/1 ImagePullBackOff 0 76s creation_method=manual,env=developnginx 1/1 Running 0 8m4s env=production,team=dev1
특정 레이블만 확인
env 레이블 값을 확인할 수 있습니다.
root@instance-1:~# kubectl get pod -L envNAME READY STATUS RESTARTS AGE ENVjenkins 0/1 ErrImagePull 0 3m34s developnginx 1/1 Running 0 10m production
특정 레이블을 가진 파드만 필터하여 확인
team 레이블을 가진 파드만 확인할 수 있습니다.
root@instance-1:~# kubectl get pod --show-labels -l teamNAME READY STATUS RESTARTS AGE LABELSnginx 1/1 Running 0 10m env=production,team=dev1
특정 레이블을 가지고 있지 않은 파드만 필터하여 확인
team 레이블을 가지고 있지 않은 파드만 확인할 수 있습니다.
root@instance-1:~# kubectl get pod --show-labels -l '!team'NAME READY STATUS RESTARTS AGE LABELSjenkins 0/1 ImagePullBackOff 0 4m11s creation_method=manual,env=develop
특정 레이블의 값을 조건으로 일치하는 파드만 필터하여 확인
env 레이블의 값이 production인 파드만 확인할 수 있습니다.
root@instance-1:~# kubectl get pods --show-labels -l env=productionNAME READY STATUS RESTARTS AGE LABELSnginx 1/1 Running 0 14m env=production,team=dev1