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 |
Tags
- createvsapply
- servicemesh
- nodeport
- ingress
- 포트추적
- 인그래스
- apply
- 쿠버네티스
- 이미지풀시크릿생성
- 프라이빗레지스트리
- chrony
- ingressrules
- kubectl
- 쿠버네티스 구조
- 인그래스컨트롤러
- 여러 레지스트리를 하나의 시크릿으로 묶고
- servertimesync
- kubernetes
- 노드포트
- clustermanagement
- ingresscontroller
- 컨테이너런타임 재시작
- networktimeprotocol
- 도커프라이빗레지스트리
- 원격서버지원
- 인증서설치후 런타임 재시작
- k8s
- timesynchronization
- ingressservice
- 쿠버네티스 인그래스 컨트롤러 구성 예시
Archives
- Today
- Total
madebychung
📌 kubectl describe로 리소스 상태 추적하는 방법 본문
📌 kubectl describe로 리소스 상태 추적하는 방법
쿠버네티스를 처음 사용하는 초보자라면 kubectl get 명령어는 익숙할 수 있지만, 리소스 내부의 상세 상태를 확인하고 원인을 추적할 때는 kubectl describe 명령어가 훨씬 강력합니다.
이 글에서는 kubectl describe 명령어로 어떤 정보를 얻을 수 있는지, 어떤 상황에서 어떻게 사용해야 하는지 자세히 설명합니다.
✅ kubectl describe란?
kubectl describe는 특정 Kubernetes 리소스(Pod, Deployment, Node 등)의 자세한 상태 정보를 보여주는 명령어입니다.
단순히 현재 상태만 보는 것이 아니라, 이벤트, 스케줄링 정보, 컨테이너 상태, 오류 로그 등을 포함합니다.
📄 기본 명령어 형식
kubectl describe [리소스 종류] [리소스 이름] -n [네임스페이스]
예시:
kubectl describe pod nginx-deploy-6f9d6bbf9b-zxzlp -n default
🔍 주요 리소스 별 사용 예시
kubectl describe pod <이름>: 컨테이너 상태, 이벤트, 재시작 횟수 등kubectl describe deployment <이름>: 레플리카 상태, 업데이트 전략, PodTemplatekubectl describe node <노드이름>: CPU/메모리 자원, Pod 스케줄링 상태, kubelet 연결kubectl describe service <이름>: 클러스터 IP, 포트 정보, Endpoints
🧠 초보자가 봐야 할 핵심 항목
1️⃣ Events
자주 문제가 생기는 부분입니다. Pod가 왜 Pending인지, ImagePull에 실패했는지 등은 대부분 이벤트에 기록됩니다.
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Normal Scheduled 1m default-scheduler Successfully assigned default/nginx to node01
Normal Pulled 1m kubelet Container image "nginx" already present
Normal Created 1m kubelet Created container nginx
Normal Started 1m kubelet Started container nginx
2️⃣ Conditions
Pod나 Node가 어떤 상태인지 보여줍니다. 예를 들어 Ready 상태가 False면 서비스 연결이 불가능할 수 있습니다.
Conditions:
Type Status
Initialized True
Ready True
ContainersReady True
PodScheduled True
3️⃣ Containers 상태
컨테이너 별로 실행 상태, 재시작 횟수, 오류 메시지 등을 확인할 수 있습니다.
Containers:
nginx:
Container ID: docker://...
Image: nginx
Image ID: ...
State: Running
Ready: True
Restart Count: 0
4️⃣ Node 리소스 정보
Node의 자원이 부족할 때 Pod이 Pending에 걸릴 수 있으므로, describe로 리소스를 확인해볼 수 있습니다.
kubectl describe node node01
Capacity:
cpu: 4
memory: 8Gi
Allocated resources:
cpu: 3
memory: 6Gi
🛠 실전: Pod 오류 추적 예제
kubectl describe pod my-app -n default
📌 출력 내용 중 아래와 같은 메시지가 보일 수 있습니다:
Warning Failed 2m kubelet Failed to pull image "my-app:v2": image not found
이 경우 원인은 명확합니다: 이미지 이름이 잘못되었거나, 이미지가 registry에 없음.
즉, describe는 단순 상태뿐 아니라 원인 파악까지 가능한 디버깅 도구입니다.
✅ 정리
kubectl describe는 리소스의 상세 상태 + 이벤트 로그까지 보여주는 핵심 디버깅 명령어- 문제가 생겼을 때 가장 먼저 확인해야 하는 도구
- 특히 Events, Conditions, Container 상태 항목은 꼭 읽는 습관을 들이자
'K8s' 카테고리의 다른 글
| nginx ingress controller 설치 후 Ingress 리소스 연동하는 방법 (0) | 2025.04.08 |
|---|---|
| 쿠버네티스 Ingress 완전 정리 (Ingress / Ingress Controller / Ingress Service 헷갈림 끝!) (0) | 2025.04.08 |
| kubectl apply로 리소스를 업데이트할 때 실제로 어떤 정보가 어떻게 바뀌는가?(apply, patch) (0) | 2025.04.08 |
| 📌 kubectl apply vs create 차이점 정복 (0) | 2025.04.08 |
| 🧩 쿠버네티스 구조: kubectl 명령어가 처리되는 전체 흐름도 + 구성 요소 역할 (0) | 2025.04.07 |