0Pricing
Kubernetes Basics · 강의

파드 및 서비스 디버깅

kubectl 명령어와 기타 도구를 활용하여 비정상적으로 작동하는 파드와 연결 문제를 효과적으로 디버깅하세요.

파드 및 서비스 디버깅은(는) CoddyKit의 무료 Kubernetes Basics 강의입니다. 이것은 4개 중 2번째 강의입니다. 아래에서 전체 강의를 무료로 읽을 수 있으며, 내장 코드 에디터와 24/7 AI 튜터와 함께 브라우저에서 직접 실습할 수 있습니다. 이 강의는 Kubernetes Basics 학습 경로의 일부이며, 진행 상황이 웹과 CoddyKit 앱에 동기화됩니다. Kubernetes Basics 강의에는 총 4개의 강의가 포함되어 있습니다.

디버깅이 중요한 이유

쿠버네티스에서 애플리케이션이 예상대로 작동하지 않을 때 디버깅은 강력한 해결 수단이 됩니다! 무엇이 잘못되었는지 이해하고 해결 방법을 찾는 데 도움이 됩니다.

문제가 있음을 나타내는 일반적인 징후는 다음과 같습니다.

  • 파드가 'Pending' 또는 'CrashLoopBackOff' 상태에서 멈춤
  • 서비스에 연결할 수 없음
  • 애플리케이션이 예상대로 응답하지 않음

이러한 문제를 진단하는 데 필요한 도구를 배워 보겠습니다.

kubectl 디버깅 도구 모음

쿠버네티스는 클러스터를 검사하고 문제를 해결할 수 있도록 강력한 명령줄 도구를 제공합니다. 대표적인 도구가 kubectl입니다.

이번에 살펴볼 주요 명령은 다음과 같습니다.

  • kubectl describe: 리소스의 자세한 정보를 확인합니다.
  • kubectl logs: 컨테이너 출력을 확인합니다.
  • kubectl exec: 컨테이너 내부에서 명령을 실행합니다.
  • kubectl port-forward: 로컬에서 서비스에 접근합니다.

이 명령을 능숙하게 사용하면 쿠버네티스 디버깅 전문가가 될 수 있습니다!

kubectl describe로 깊이 살펴보기

kubectl describe 명령은 모든 쿠버네티스 리소스, 특히 파드에 관한 자세한 정보를 확인할 때 가장 먼저 사용하는 명령입니다.

이 명령은 이벤트, 상태, IP 주소, 볼륨, 컨테이너 세부 정보 등 다양한 데이터를 제공합니다. 단서를 찾으려면 하단의 'Events'를 확인하세요!

kubectl describe pod my-nginx-pod

클러스터 이벤트 이해

이벤트는 파드나 다른 리소스에서 무슨 일이 발생했는지 이해하는 데 중요합니다. 이벤트를 통해 생성, 스케줄링, 오류 등의 과정을 확인할 수 있습니다.

describe를 사용하면 특정 리소스의 이벤트를 확인할 수 있고, kubectl get events를 사용하면 클러스터 전체의 이벤트를 확인할 수 있습니다.

kubectl get events --sort-by='.lastTimestamp'

컨테이너 로그 해석

애플리케이션은 일반적으로 표준 출력 및 오류 스트림에 중요한 메시지, 오류, 디버깅 정보를 출력합니다. kubectl logs를 사용하면 이러한 내용을 확인할 수 있습니다.

파드가 비정상 종료되고 있다면 로그를 확인해 왜 실패하는지 파악하는 것이 중요합니다. 로그를 실시간으로 따라가며 확인할 수도 있습니다.

kubectl logs my-app-pod -f

컨테이너에서 명령 실행

때로는 로그를 보는 것만으로 충분하지 않습니다. 서버에 SSH로 접속하는 것처럼 실행 중인 컨테이너 내부에서 명령을 실행해 문제를 진단해야 할 수도 있습니다.

kubectl exec를 사용하면 컨테이너 내부에서 직접 명령을 실행하거나 bash 또는 sh와 같은 셸을 열 수 있습니다.

kubectl exec -it my-app-pod -- /bin/bash

포트 전달로 로컬 접근

서비스에 연결할 수 없다고 생각되거나 외부에 노출하지 않고 로컬에서 테스트하려는 경우 kubectl port-forward를 사용하면 됩니다.

이 명령은 로컬 컴퓨터에서 클러스터의 파드 또는 서비스까지 보안 터널을 만들어 localhost를 통해 접근할 수 있도록 합니다.

kubectl port-forward service/my-web-service 8080:80

서비스 문제 진단

서비스를 통해 애플리케이션에 접근할 수 없다면 다음 두 가지를 확인하세요.

  • 서비스 셀렉터: 파드의 레이블과 올바르게 일치하나요?
  • 엔드포인트: 서비스에 활성 엔드포인트(즉, 실행 중인 파드)가 있나요?

kubectl get svc와 kubectl get ep를 사용해 이를 검사하세요.

kubectl get svc my-web-service
kubectl get ep my-web-service

일반적인 문제 해결

자주 발생하는 파드 문제 두 가지를 살펴보겠습니다.

  • CrashLoopBackOff: 컨테이너가 반복해서 시작되었다가 비정상 종료되는 상태입니다. 오류를 확인하려면 kubectl logs를 사용하세요.
  • ImagePullBackOff: 쿠버네티스가 컨테이너 이미지를 가져오지 못하는 상태입니다. 이미지 이름, 태그, 레지스트리 접근 권한을 확인하세요.

kubectl describe pod의 'Events' 섹션에서 최초 원인을 확인할 수 있는 경우가 많습니다.

디버깅 도전!

data-processor-xyz라는 이름의 파드가 CrashLoopBackOff 상태인 것을 발견했습니다. 파드가 충돌하는 이유를 조사해야 합니다.

즉각적인 원인을 진단하기 위해 다음 중 어떤 두 명령을 먼저 실행해야 할까요?

복습: 디버깅 숙련

잘하셨습니다! 주요 kubectl 명령을 사용해 파드와 서비스를 디버깅하는 방법을 배웠습니다.

  • 자세한 리소스 정보와 이벤트는 kubectl describe로 확인합니다.
  • 컨테이너 내부에서 무슨 일이 일어나는지는 kubectl logs로 확인합니다.
  • 대화형 문제 해결에는 kubectl exec를 사용합니다.
  • 로컬 서비스 접근에는 kubectl port-forward를 사용합니다.

이러한 도구는 쿠버네티스 애플리케이션을 원활하게 실행하는 데 필수적입니다. 계속 연습해 보세요!

자주 묻는 질문

“파드 및 서비스 디버깅” 강의는 무료인가요?

네 — “파드 및 서비스 디버깅” 전체 내용을 이 웹사이트에서 무료로 읽을 수 있습니다. 인터랙티브하게 실습하려면(내장 코드 에디터와 24/7 AI 튜터), CoddyKit PRO로 업그레이드하면 Kubernetes Basics 강의 전체를 잠금 해제할 수 있습니다. Kubernetes Basics 강의에는 총 4개의 강의가 포함되어 있습니다.

“파드 및 서비스 디버깅”에서 뭘 배우나요?

kubectl 명령어와 기타 도구를 활용하여 비정상적으로 작동하는 파드와 연결 문제를 효과적으로 디버깅하세요. 브라우저에서 직접 실행하는 실습 코드로 Kubernetes Basics을(를) 배우며, 24/7 AI 튜터가 강의를 진행하면서 질문에 답변해줍니다.

Kubernetes Basics을(를) 시작하는 데 경험이 필요한가요?

사전 경험은 필요하지 않습니다. CoddyKit의 Kubernetes Basics은(는) 초급자부터 고급 학습자까지를 위해 구성되어 있으므로, 여기서 시작하거나 처음부터 시작할 수 있으며 자신의 속도대로 진행할 수 있습니다. 이것은 4개 중 2번째 강의입니다.

“파드 및 서비스 디버깅” 강의는 얼마나 걸리나요?

대부분의 CoddyKit 강의는 약 5~10분이 소요됩니다. 각 강의는 간결하고 인터랙티브하여 꾸준한 진행이 가능하며, 웹과 앱에서 중단한 부분부터 바로 시작할 수 있습니다.

이 Kubernetes Basics 강의에서 코드를 작성하고 실행할 수 있나요?

네. 모든 Kubernetes Basics 강의에는 내장 코드 에디터가 포함되어 있으므로, 브라우저에서 바로 실제 코드를 작성하고 실행한 후 즉시 AI 피드백을 받을 수 있습니다 — 로컬 설정이 필요 없습니다.

이 강의의 모든 강의

  1. 일반적인 문제 진단
  2. 파드 및 서비스 디버깅
  3. 프로덕션 모범 사례 및 팁
  4. 리소스 할당량과 Limit 범위
← Kubernetes Basics(으)로 돌아가기