티스토리 뷰

검색어 필터링 후 컴포넌트 삭제 Deleting components which are filtered by search text

Outline

쿠버네티스를 공부하며 이런저런 시도를 하다보니 Pod의 수가 엄청나게 많아졌다. 그래서 삭제를 할려고 하니 일일히 이름을 복사 붙여넣기 해서 삭제해야 한다.

O 삭제 명령어

kubectl delete po <pod name>

O 전체 Pod 목록

NAME                                                      READY   STATUS    REST                                                                                                                                                             ARTS   AGE
batch-job-wczks                                           1/1     Running   0                                                                                                                                                                       11s
jordi-9r74l                                               1/1     Running   0                                                                                                                                                                       5d23h
jordi-hwp4r                                               1/1     Running   0                                                                                                                                                                       5d23h
jordi-liveness                                            1/1     Running   0                                                                                                                                                                       16d
jordi-skxq7                                               1/1     Running   0                                                                                                                                                                       5d23h
jordi2-j7vxh                                              1/1     Running   0                                                                                                                                                                       11d
jordi2-tkkfv                                              1/1     Running   0                                                                                                                                                                       11d
jordi2-twtw9                                              1/1     Running   0                                                                                                                                                                       11d
jordi44444444444444444444444444444444444444444444-9xlz7   1/1     Running   0                                                                                                                                                                       18h
jordi44444444444444444444444444444444444444444444-flssc   1/1     Running   0                                                                                                                                                                       18h
jordi44444444444444444444444444444444444444444444-kjcg8   1/1     Running   0                                                                                                                                                                       18h
kubia-manual-test                                         1/1     Running   0                                                                                                                                                                       16d
kubia1                                                    1/1     Running   0                                                                                                                                                                       18h
ssd-monitor-n562r                                         1/1     Running   0

한, 두개 쯤 지우다가 방법을 찾았다. 난 개발자다, 돈 안 받고 미친 반복을 하지 않는다.

Solution

O Pod 텍스트 필터링 삭제 명령어

kubectl get pods --no-headers=true | grep <search text> | awk '{print $1}' | xargs kubectl delete pods

무진장 긴 명령어가 나왔다. 뒤로가기 혹은 ctrl+W 를 누르고 싶은 마음을 조금만 다독이고 함께 쪼깨어 분석해보자.

위 명령어의 처리 순서는 아래와 같다

  1. 헤더 항목을 제외하고 전체 Pods 조회
  2. grep 을 통해 일부 Pods만 선택
  3. 이름 컬럼만 선택
  4. Pods 삭제

1번 부터 보자.

O 헤더 항목을 출력하지 않는 전체 Pod 조회

kubectl get pods --no-headers=true

batch-job-wczks                                           1/1     Running   0                                                                                                                                                                       11s
jordi-9r74l                                               1/1     Running   0                                                                                                                                                                       5d23h
jordi-hwp4r                                               1/1     Running   0                                                                                                                                                                       5d23h
jordi-liveness                                            1/1     Running   0                                                                                                                                                                       16d
jordi-skxq7                                               1/1     Running   0                                                                                                                                                                       5d23h
jordi2-j7vxh                                              1/1     Running   0                                                                                                                                                                       11d
jordi2-tkkfv                                              1/1     Running   0                                                                                                                                                                       11d
jordi2-twtw9                                              1/1     Running   0                                                                                                                                                                       11d
jordi44444444444444444444444444444444444444444444-9xlz7   1/1     Running   0                                                                                                                                                                       18h
jordi44444444444444444444444444444444444444444444-flssc   1/1     Running   0                                                                                                                                                                       18h
jordi44444444444444444444444444444444444444444444-kjcg8   1/1     Running   0                                                                                                                                                                       18h
kubia-manual-test                                         1/1     Running   0                                                                                                                                                                       16d
kubia1                                                    1/1     Running   0                                                                                                                                                                       18h
ssd-monitor-n562r                                         1/1     Running   0

O jordi란 이름이 포함된 row만 필터링

grep jordi

jordi 부분에 원하는 단어를 입력한 된다.

jordi-9r74l                                               1/1     Running   0                                                                                                                                                                       5d23h
jordi-hwp4r                                               1/1     Running   0                                                                                                                                                                       5d23h
jordi-liveness                                            1/1     Running   0                                                                                                                                                                       16d
jordi-skxq7                                               1/1     Running   0                                                                                                                                                                       5d23h
jordi2-j7vxh                                              1/1     Running   0                                                                                                                                                                       11d
jordi2-tkkfv                                              1/1     Running   0                                                                                                                                                                       11d
jordi2-twtw9                                              1/1     Running   0                                                                                                                                                                       11d
jordi44444444444444444444444444444444444444444444-9xlz7   1/1     Running   0                                                                                                                                                                       18h
jordi44444444444444444444444444444444444444444444-flssc   1/1     Running   0                                                                                                                                                                       18h
jordi44444444444444444444444444444444444444444444-kjcg8   1/1     Running   0   

O 이름 컬럼만 선택

awk '{print $1}'

$ 뒤에 숫자가 몇 번째 컬럼인지 명시하는 역할을 한다.

jordi-9r74l   
jordi-hwp4r   
jordi-liveness
jordi-skxq7   
jordi2-j7vxh  
jordi2-tkkfv  
jordi2-twtw9  
jordi44444444444444444444444444444444444444444444-9xlz7
jordi44444444444444444444444444444444444444444444-flssc
jordi44444444444444444444444444444444444444444444-kjcg8

O 앞선 명령어의 결과를 Parameter로 받아 Pods 삭제

xargs kubectl delete po

xargs 를 통해서 앞선 명령어의 결과를 입력으로 받아 인자를 연속으로 나열하여 커맨드를 실행할 수 있다.

그래서 개별로우 마다 delete 처리를 할 수 있다.

pod "jordi-9r74l" deleted   
pod "jordi-hwp4r" deleted   
pod "jordi-liveness" deleted
pod "jordi-skxq7" deleted   
pod "jordi2-j7vxh" deleted  
pod "jordi2-tkkfv" deleted  
pod "jordi2-twtw9" deleted   
pod "jordi44444444444444444444444444444444444444444444-9xlz7" deleted
pod "jordi44444444444444444444444444444444444444444444-flssc" deleted
pod "jordi44444444444444444444444444444444444444444444-kjcg8" deleted

-

END

정말 쉽고 간단하게 pod 검색 삭제를 해보았다. Pods 자리에 다른 Component 명을 입력하면 다른 것도 검색 삭제가 가능하다. (ex.replica set, deployment).

불필요한 단순 반복 작업 하지말고 영리하게 명령어로 일괄 처리 하자!

'Infra > Kubernetes' 카테고리의 다른 글

About Service(2), Basic Concept 2  (0) 2019.11.23
About Service(1), Basic Concept  (0) 2019.11.19
About Daemon Set  (2) 2019.11.12
About Replication Controller  (0) 2019.11.08
Differences Between Replica Set and Replica Controller  (0) 2019.11.01
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
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
글 보관함