
apiVersion: v1 # Pod를 생성할 때 사용하는 API 버전
kind: Pod # 생성하려는 리소스 종류(Pod)
metadata:
name: nginx-pod # Pod의 이름
spec:
containers:
- name: nginx-container # 컨테이너 이름
image: nginx:1.26.4 # 사용하려는 Docker 이미지
ports:
- containerPort: 80 # 컨테이너에서 사용할 포트 (문서화)
Pod 생성 명령어:
$ kubectl apply -f nginx-pod.yaml
Pod 생성 확인 명령어:
$ kubectl get pods
만약, Pod 생성 중 문제가 발생하면 STATUS에 에러가 표시됩니다.

ErrImagePull은 Docker 이미지를 가져오지 못했음을 의미합니다. 그러나 에러 원인을 구체적으로 알기 위해서는 추가적인 디버깅이 필요합니다.kubectl describe 명령어를 사용하면 Pod의 세부 정보를 확인할 수 있습니다.
$ kubectl describe pods nginx-pod


Pod 내부에서 애플리케이션이 출력한 로그를 확인하여 문제를 분석할 수 있습니다.
nginx-pod.yaml
apiVersion: v1
kind: Pod
metadata:
name: nginx-pod
spec:
containers:
- name: nginx-container
image: nginx:1.26.2 # 잘못된 태그를 수정 (1.26.4 → 1.26.2)
ports:
- containerPort: 80
$ kubectl apply -f nginx-pod.yaml
Pod의 로그를 확인하려면 다음 명령어를 실행합니다.
출력된 로그를 통해 애플리케이션에서 발생한 에러 메시지나 상태를 확인할 수 있습니다.
$ kubectl logs nginx-pod

Pod 내부에서 실행 중인 애플리케이션 상태를 직접 확인하거나, 필요한 명령을 실행하기 위해 Pod에 접속할 수 있습니다.
# bash 쉘로 접속
$ kubectl exec -it nginx-pod -- bash
# sh 쉘로 접속 (bash가 없는 경우)
$ kubectl exec -it nginx-pod -- sh
docker exec -it [컨테이너 ID] bash)과 비슷합니다.bash가 설치되어 있지 않은 컨테이너에서는 sh를 사용하면 됩니다.kubectl get pods로 Pod 상태를 확인합니다.kubectl describe pods [Pod 이름]으로 구체적인 에러 메시지를 확인합니다.kubectl logs [Pod 이름]으로 애플리케이션 로그를 확인합니다.kubectl exec -it [Pod 이름] -- [쉘 명령]으로 직접 접속해 문제를 해결합니다.