Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
Tags
- Prometheus 서버 설치
- Prometheus 서버 설정
- minikube 설치 및 실행
- 포트 9255 설정
- 애플리케이션 기본 사용자 인증 정보
- permission denied 에러 발생
- stackdriver exporter 설치
- compose.yml로 stackdriver-export 서비스 설정
- prometheus.yml 파일 설정
- prometheus 서버 서비스등록
- gke 클러스터 액세스 설정
- 리소스삭제
- aws-nuke
- ADC 사용자 인증
- dockerfile로 stackdriver-export이미지 생성
- git
- prometheus 연동
- 방화벽 오픈
- github 사용법
- kubectl 설치
- 스위치 4대 기능
- 리소스전체삭제
- GCP VM
- stackdriver exporter
- GCP 모니터링
- github
- 서비스 계정 키 설정
- vs code로 ssh 접속
- 정적 웹 사이트 호스팅
- prometheus dockerfile
Archives
- Today
- Total
My __ 노트
[ Kubernetes ] 레이블(labels) 생성 / 수정 / 조회 / 삭제 본문
개념 : 레이블은 pod와 같은 오브젝트에 첨부된 Key와 Value 쌍의 메타정보입니다. 레이블을 이용하여 오브젝트 하위 집합을 선택하고 구성하는 데 사용되며 실제 코어 시스템에 직접적인 영향이 없습니다.
>>✨ Selector 는 이런 레이블을 이용하여 쿠버네티스 리소스를 필터링하고 원하는 리소스 집합을 구하기 위한 label query를 말합니다.
※ Use case ※
레이블을 이용한 pod 삭제 작업
# key1 레이블을 가진 pod 모두 종료
kubectl delete pod -l key1=value
----------------------------------------
$ kubectl delete pod -l group=test
목차
▶ 레이블 생성
▶ 레이블 조회
▶ 레이블 수정
▶ 레이블 삭제
▶ 레이블 생성
Yaml 파일 형식으로 생성
(예시)
apiVersion: v1
kind: Pod
metadata:
name: test-app
labels:
group: test
spec:
containers:
- name: test-app-cn
image: nginx:1.14.2
ports:
- containerPort: 8080
env:
- name: POD_IP
valueFrom:
fieldRef:
fieldPath: status.podIP
- name: NODE_IP
valueFrom:
fieldRef:
fieldPath: status.hostIP
resources:
limits:
cpu: "100m"
memory: "120Mi"
command로 생성
(예시) pod의 레이블 생성
kubectl label pod <pod네임> key1=value key2=value
--------------------------------------------
$ kubectl label pod test-app group=test
▶ 레이블 조회
전체 레이블 조회
$ kubectl get pods --show-labels
----------------------------------------------------------
NAME READY STATUS RESTARTS AGE LABELS
test-app 1/1 Running 0 32m group=test
특정 레이블만 조회
🔍 대문자 -L 옵션 또는 --label-columns=[]
레이블들 key 명을 알고 있으면 지정한 key 명 기준으로 조회 가능
kubectl get pod -L key1,key2,key3..
$ kubectl get pod -L group,concept,element,position,version
---------------------------------------------------------------------------------------------
NAME READY STATUS RESTARTS AGE GROUP CONCEPT ELEMENT POSITION VERSION
prod-01 1/1 Running 0 25m prod new first v1
prod-02 1/1 Running 0 24m prod new-func second v2
test-01 1/1 Running 0 24m test new first v1
test-02 1/1 Running 0 24m test new-func second
🔍 소문자 -l 옵션 또는 --selector=''
레이블 key1=value에 해당하는 리소스만 조회 가능
(예시)Pod 조회
특정 Key/Value값을 가지고 있는 pod 조회
kubectl get pods -l key1=value1-1,key1=value1-2,key2=value2-1 $ kubectl get pods -l group=test ---------------------------------------------------- NAME READY STATUS RESTARTS AGE test-01 1/1 Running 0 32m test-02 1/1 Running 0 24m
또는
kubectl get pods -l 'key1 in (value1-1, value1-2)' kubectl get pods -l 'key1 in (value1-1), key2 in (value2-1)' $ kubectl get pods -l 'group in (test)' ---------------------------------------------------- NAME READY STATUS RESTARTS AGE test-01 1/1 Running 0 32m test-02 1/1 Running 0 24m
특정 Key/Value값을 가지고 있지 않은 pod 조회
kubectl get pods -l key1!=value1-1,key1!=value1-2,key2!=value2-1 $ kubectl get pods -l group!=test ----------------------------------------------- NAME READY STATUS RESTARTS AGE etc-app 1/1 Running 0 41m prod-app 1/1 Running 0 41m ----------------------------------------------------
또는
kubectl get pods -l 'key1 notin (value1-1, value1-2)' kubectl get pods -l 'key1 notin (value1-1), key2 notin (value2-1)' $kubectl get pods -l 'group notin (test)' ----------------------------------------------- NAME READY STATUS RESTARTS AGE etc-app 1/1 Running 0 42m prod-app 1/1 Running 0 42m
특정 Key값을 가지고 있지 않은 pod 조회
kubectl get pods -l '!key1, !key2' $ kubectl get pods -l '!group' -------------------------------------------- NAME READY STATUS RESTARTS AGE etc-app 1/1 Running 0 45m
▶ 레이블 수정
레이블 생성 command에서 --overwrite 옵션을 추가하면 됨
(예시) pod의 레이블 수정
kubectl label pod <pod네임> key1=value --overwrite
--------------------------------------------------------
$ kubectl label pod test-app group=prod --overwrite
>> 특정pod에 동일한 key 값, 다른 value 값을 넣으면 아래와 같은 error 문구가 출력 됩니다. " 더보기 " ⬇️
더보기
$ kubectl label pod test-app group=prod
--------------------------------------------------------------------
error: 'group' already has a value (test), and --overwrite is false
group이라는 key 값에 이미 test라는 value가 있으므로 수정 에러가 발생했고 --overwrite 가 잘못되었다고 출력됩니다.
▶ 레이블 삭제
(예시) pod의 레이블 삭제
kubectl label pod <pod네임> key1- key2-
$ kubectl label pod test-app group-
-----------------------------------
pod/test-app unlabeled
'Kubernetes' 카테고리의 다른 글
[ Kubernetes ] 특정 노드에 리소스 배포 - 레이블(labels) (1) | 2023.11.28 |
---|---|
[ Kubernets ] 컨테이너에 환경 변수(Node IP/ Pod IP) 정보 넣기 (0) | 2023.11.27 |
[ Kubernetes ] Pod 생성 / 조회 /삭제 (0) | 2023.11.27 |
[ Kubernetes ] api 오브젝트 목록 조회 & 속성 정보 확인 (0) | 2023.11.27 |
[ WSL -우분투 배포 환경 ] minikube 설치 및 실행 (0) | 2023.09.08 |