@@ -11,17 +11,19 @@ Kubernetes 클러스터에서 이벤트, Pod, Node 상태 등을 빠르게 확
1111### 주요 기능
1212
13131 . ** Event Monitoring**
14- - 전체 이벤트 혹은 정상(Normal)이 아닌 이벤트만 실시간(` watch ` )으로 모니터링
14+ - 2초 간격으로 ` kubectl get events ` 를 재실행해 최신 이벤트를 확인
15+ - 실제로 실행된 ` kubectl ` 명령을 화면 하단에 함께 표기
1516
16172 . ** Container Monitoring (재시작된 컨테이너 및 로그)**
1718 - 최근에 재시작된 컨테이너를 시간 기준으로 정렬하여 확인하고, 특정 컨테이너의 이전 로그(-p 옵션)를 확인
1819
19203 . ** Pod Monitoring**
2021 - 생성된 순서, Running이 아닌 Pod, 전체/정상/비정상 Pod 개수를 조회
22+ - CPU/Memory 사용량 기준 상위 Pod를 실시간으로 확인하며 NodeGroup 필터링 가능
2123
22244 . ** Node Monitoring**
2325 - 생성된 순서(노드 정보), Unhealthy Node, CPU/Memory 사용량이 높은 노드를 확인
24- - NodeGroup(라벨 기반)으로 필터링 가능
26+ - 모든 뷰에서 NodeGroup(라벨 기반) 필터링을 지원하고, 실행된 ` kubectl ` 명령을 하단에 노출
2527
2628## Requirements
2729
@@ -131,17 +133,28 @@ Kubernetes Monitoring Tool
131133│ 3 │ Pod Monitoring (생성된 순서) [옵션: Pod IP 및 Node Name 표시] │
132134│ 4 │ Pod Monitoring (Running이 아닌 Pod) [옵션: Pod IP 및 Node Name 표시] │
133135│ 5 │ Pod Monitoring (전체/정상/비정상 Pod 개수 출력) │
134- │ 6 │ Node Monitoring (생성된 순서) [AZ, NodeGroup 표시 및 필터링 가능] │
135- │ 7 │ Node Monitoring (Unhealthy Node 확인) [AZ, NodeGroup 표시 및 필터링 가능] │
136- │ 8 │ Node Monitoring (CPU/Memory 사용량 높은 순 정렬) [NodeGroup 필터링 가능] │
136+ │ 6 │ Pod Monitoring (CPU/Memory 사용량 높은 순 정렬) [NodeGroup 필터링 가능] │
137+ │ 7 │ Node Monitoring (생성된 순서) [AZ, NodeGroup 표시 및 필터링 가능] │
138+ │ 8 │ Node Monitoring (Unhealthy Node 확인) [AZ, NodeGroup 표시 및 필터링 가능] │
139+ │ 9 │ Node Monitoring (CPU/Memory 사용량 높은 순 정렬) [NodeGroup 필터링 가능] │
137140│ Q │ Quit │
138141╰───┴───────────────────────────────────────────────────────────────────────────────────╯
139142```
140143
144+ > 참고: Live 모니터링 중 입력한 키는 화면에 표시되지 않으며, 루프 종료 시 자동으로 버려집니다. 이를 통해 화면 밀림 없이 안정적으로 갱신됩니다.
145+
146+ #### Slack 공유용 스냅샷 저장
147+
148+ - Live 화면에서 ` s ` , ` :s ` , ` save ` , ` :save ` , ` :export ` 중 하나를 입력하고 Enter를 누르면 현재 프레임을 Slack 호환 Markdown으로 ` /var/tmp/kmp/YYYY-MM-DD-HH-MM-SS.md ` 경로에 저장합니다.
149+ - 출력 파일에는 화면에 표시된 표/텍스트와 함께 실제 실행된 ` kubectl ` 명령이 Markdown 형식으로 포함되며, 동일한 결과를 Slack 등에 붙여넣어도 가독성이 유지됩니다.
150+ - 저장이 완료되면 CLI 하단에 저장 경로가 표시됩니다.
151+ - ` /var/tmp/kmp ` 에 쓰기 권한이 없으면 저장이 실패하며, CLI 하단에 오류 메시지가 표시됩니다. 운영 환경에서 권한을 사전에 점검하세요.
152+ - Live 모드 상단 ` command input ` 패널에서 ` : ` 프롬프트에 따라 입력 중인 문자열을 실시간으로 확인할 수 있어, ` :save ` 등 명령이 제대로 입력됐는지 즉시 파악할 수 있습니다.
153+
141154### 1. Event Monitoring
142155
143- - 전체 이벤트 혹은 ` type!=Normal ` 이벤트를 실시간( ` watch -n2 ` )으로 확인
144- - 최신 이벤트부터 tail -n [ 사용자 지정] 개수로 표시
156+ - 전체 이벤트 혹은 ` type!=Normal ` 이벤트를 2초 간격으로 재조회하여 최신 상태를 확인
157+ - tail -n [ 사용자 지정] 개수만큼 표시하며, 실행된 ` kubectl get events ... ` 명령을 화면 하단에서 확인 가능
145158
146159### 2. Container Monitoring (재시작된 컨테이너 및 로그)
147160
@@ -150,31 +163,38 @@ Kubernetes Monitoring Tool
150163
151164### 3. Pod Monitoring (생성된 순서)
152165
153- - Pod 생성 시간( ` . metadata.creationTimestamp` ) 기준 정렬
154- - tail -n [ 사용자 지정] 개수 표시
166+ - ` kubectl get po ... --sort-by=. metadata.creationTimestamp` 명령을 2초 간격으로 실행하여 최신 생성 순서를 확인
167+ - tail -n [ 사용자 지정] 개수만큼 표시하며, 화면 하단에서 실행 명령을 확인 가능
155168
156169### 4. Pod Monitoring (Running이 아닌 Pod 확인)
157170
158- - ` kubectl get pods ` 결과에서 ` grep -ivE 'Running' ` 조건으로 Running이 아닌 Pod만 필터링
159- - Pod IP 및 Node Name 확인 옵션
171+ - ` kubectl get pods ... | grep -ivE ' Running' ` 명령을 2초 간격으로 실행해 Running이 아닌 Pod만 필터링
172+ - Pod IP 및 Node Name 표시 옵션 제공, 실행 명령은 항상 화면 하단에 노출
160173
161174### 5. Pod Monitoring (전체/정상/비정상 Pod 개수)
162175
163176- 2초 간격으로 전체 Pod 개수, 정상(Running 또는 Succeeded) Pod 개수, 비정상 Pod 개수를 표시
177+ - API 호출 결과가 변할 때만 콘솔을 갱신해 깜빡임을 최소화
178+
179+ ### 6. Pod Monitoring (CPU/Memory 사용량 높은 순 정렬)
180+
181+ - ` kubectl top pod ` 결과를 2초마다 조회하고 CPU/Memory 기준으로 정렬하여 상위 N개 Pod를 표시
182+ - NodeGroup 라벨 기반 필터링을 지원하며, 실제 실행된 명령을 화면 하단에서 확인 가능
164183
165- ### 6 . Node Monitoring (생성된 순서)
184+ ### 7 . Node Monitoring (생성된 순서)
166185
167- - 노드의 생성 시간(` .metadata.creationTimestamp ` ) 기준 정렬
168- - Zone(` topology.ebs.csi.aws.com/zone ` )와 NodeGroup(` NODE_GROUP_LABEL ` )을 표시 및 필터링 가능
186+ - 노드 생성 시간(` .metadata.creationTimestamp ` ) 기준으로 정렬된 목록을 2초마다 재조회
187+ - Zone(` topology.ebs.csi.aws.com/zone ` )와 NodeGroup(` NODE_GROUP_LABEL ` )을 함께 출력하며, 실행 명령을 하단에 표기
169188
170- ### 7 . Node Monitoring (Unhealthy Node 확인)
189+ ### 8 . Node Monitoring (Unhealthy Node 확인)
171190
172- - ` kubectl get nodes ` 결과에서 ` grep -ivE ' Ready' ` 로 Ready가 아닌 노드만 필터링
191+ - ` kubectl get nodes ... | grep -ivE ' Ready ' ` 명령을 2초마다 실행하여 Ready가 아닌 노드만 필터링
192+ - NodeGroup 필터링을 지원하고, 실행 명령을 하단에서 제공
173193
174- ### 8 . Node Monitoring (CPU/Memory 사용량 높은 순 정렬)
194+ ### 9 . Node Monitoring (CPU/Memory 사용량 높은 순 정렬)
175195
176- - ` kubectl top node ` 결과에서 CPU나 메모리 기준으로 정렬 후 상위 N개 표시
177- - NodeGroup 라벨 기반 필터링 가능 (` -l node.kubernetes.io/app=<값> ` )
196+ - ` kubectl top node ` 결과를 2초마다 조회해 CPU 혹은 메모리 기준으로 정렬, 상위 N개 노드를 표시
197+ - NodeGroup 라벨 기반 필터링을 지원하며, 실행된 명령을 항상 하단에서 확인 가능 (` -l node.kubernetes.io/app=<값> ` )
178198
179199## Development
180200
0 commit comments