문제 있는 pod 및 node만 describe 하기.sh

김건호·2023년 1월 31일
0

개요

점검 시, Running 상태가 아닌 파드 들은 기본적으로 describe를 확인하여 Event 확인이 필요합니다.
1, 2개일 경우 수작업으로 확인이 쉽지만, pod나 node가 많은 경우 어려움이 있어
pod는 running, completed 상태가 아니면, node는 Ready 상태가 아니면 describe 한 결과를 파일로 저장하도록 shell scripts 를 작성하였습니다.

#!/bin/sh

pod=$(kubectl get pods -A | awk '{print $2}') # pod의 이름
ns=$(kubectl get pods -A | awk '{print $1}') # pod가 속한 namespace
status=$(kubectl get pods -A | awk '{print $4}') # pod의 상태

pod_array=($pod) # pod의 이름을 배열화
ns_array=($ns) # namspace의 이름을 배열화
status_array=($status) # pod의 상태값 목록을 배열화

for (( i=1; i<${#status_array[@]}; i++ )); do # pod의 개수 만큼
        # pod가 비정상이라면
        if [ ${status_array[i]} != "Running" ] && [ ${status_array[i]} != "Completed" ] 
        then
        		# describe 한 결과를 파일로 저장
                kubectl describe po -n ${ns_array[i]} ${pod_array[i]} >> ./descirbe-po-${ns_array[i]}_${pod_array[i]}.log              
        fi
done

node=$(kubectl get node | awk '{print $1}') # node의 hostname
node_status=$(kubectl get node | awk '{print $2}') # node의 상태

node_array=($node) # node의 hostname을 배열화
node_status_array=($node_status) # node의 상태를 배열화

for (( i=1; i<${#node_array[@]}; i++ )); do # node의 개수만큼
        # node가 비정상이라면
        if [ ${node_status_array[i]} != "Ready" ] 
        then
                # describe 한 결과를 파일로 저장
                kubectl describe node ${node_array[i]} >> ./descirbe-node_${node_array[i]}.log
        fi
done
profile
Ken, 🔽🔽 거노밥 유튜브(house icon) 🔽🔽

0개의 댓글