작성
·
347
·
수정됨
0
안녕하세요 '컨테이너 인프라 환경 구축을 위한 쿠버네티스/도커 공부하고 있는 학생입니다.
3장 kubelet을 실습하면서 kubectl get pod
명령어 실행했을 때
NAME READY STATUS RESTARTS AGE
nginx-pod 0/1 ImagePullBackOff 0 62m
위와 같은 에러가 발생합니다. 구글링 해봐도 해결이 안돼서 문의 드립니다.
kubectl describe pod nginx-pod
실행했을 때 출력되는 결과입니다.
Name: nginx-pod
Namespace: default
Priority: 0
Node: w1-k8s/192.168.1.101
Start Time: Wed, 27 Dec 2023 00:43:39 +0900
Labels: <none>
Annotations: cni.projectcalico.org/podIP: 172.16.221.129/32
Status: Pending
IP: 172.16.221.129
IPs:
IP: 172.16.221.129
Containers:
container-name:
Container ID:
Image: nginx
Image ID:
Port: <none>
Host Port: <none>
State: Waiting
Reason: ImagePullBackOff
Ready: False
Restart Count: 0
Environment: <none>
Mounts:
/var/run/secrets/kubernetes.io/serviceaccount from default-token-xvtth (ro)
Conditions:
Type Status
Initialized True
Ready False
ContainersReady False
PodScheduled True
Volumes:
default-token-xvtth:
Type: Secret (a volume populated by a Secret)
SecretName: default-token-xvtth
Optional: false
QoS Class: BestEffort
Node-Selectors: <none>
Tolerations: node.kubernetes.io/not-ready:NoExecute for 300s
node.kubernetes.io/unreachable:NoExecute for 300s
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning Failed 3m19s (x260 over 63m) kubelet, w1-k8s Error: ImagePullBackOff
[root@m-k8s ~]# kubectl get nodes --kubeconfig admin.conf
NAME STATUS ROLES AGE VERSION
m-k8s Ready master 5h26m v1.18.4
w1-k8s Ready <none> 5h24m v1.18.4
w2-k8s Ready <none> 5h22m v1.18.4
w3-k8s Ready <none> 5h21m v1.18.4
[root@m-k8s ~]# kubectl get nodes
NAME STATUS ROLES AGE VERSION
m-k8s Ready master 5h27m v1.18.4
w1-k8s Ready <none> 5h26m v1.18.4
w2-k8s Ready <none> 5h24m v1.18.4
w3-k8s Ready <none> 5h22m v1.18.4
kubectl create -f ~/_Book_k8sInfra/ch3/3.1.6/nginx-pod.yaml
=> 구분선 아래의 사진들은 해당 명령어의 실행 화면들입니다. pod/nginx-pod created 까지는 성공을 했는데 kubectl get pod에서 ImagePullBackOff 에러가 뜨는데 해결이 안됩니다. 도와주세요
답변 1
0
안녕하세요, 인프런 AI 인턴입니다.
isu님, 문의하신 kubectl get pod
명령어 실행 중 발생한 ImagePullBackOff
에러는 쿠버네티스가 컨테이너 이미지를 가져오려 할 때 발생하는 문제입니다. 이 에러는 주로 다음과 같은 경우에 발생합니다:
처음으로 해야할 것은 nginx
이미지의 이름과 태그를 정확하게 지정했는지 확인하는 것입니다. nginx-pod.yaml
파일에서 이미지를 nginx:latest
또는 특정 버전으로 적절하게 지정했는지 확인해주세요.
또한, ImagePullBackOff
상태로 인해 문제가 발생한 경우, 해당 이미지를 수동으로 로컬에서 끌어다 놓으려 시도하여 문제를 해결할 수 있습니다. 다음의 명령어를 사용하여 도커에서 이미지를 미리 가져올 수 있습니다:
docker pull nginx
만약 사설 레지스트리를 사용하고 계신다면, 쿠버네티스 클러스터에 레지스트리 인증 정보를 제대로 설정했는지 확인해보세요.
네트워크 연결에 문제가 없는지, 그리고 도커 허브 등 외부 레지스트리로부터 이미지를 정상적으로 가져올 수 있는지를 확인하는 것도 중요합니다. 만약 무료 사용량이 초과됐다면, 해당 레지스트리 서비스의 사용량 제한을 검토해보시는 것이 좋습니다.
아래 명령어를 사용하여 실패한 팟의 이벤트를 확인하고, 왜 이미지를 가져올 수 없는지에 대한 추가 정보를 얻을 수 있습니다:
kubectl describe pod nginx-pod
에러 메시지 중 Error: ImagePullBackOff
밑의 부분에서 보다 자세한 원인을 알 수 있을 것입니다.