kubernetes 포드에서 이미지 가져 오기를 다시 시도하는 방법은 무엇입니까?


92

저는 kubernetes를 처음 사용합니다. 포드에 문제가 있습니다. 명령을 실행할 때

 kubectl get pods

결과:

NAME                   READY     STATUS             RESTARTS   AGE
mysql-apim-db-1viwg    1/1       Running            1          20h
mysql-govdb-qioee      1/1       Running            1          20h
mysql-userdb-l8q8c     1/1       Running            0          20h
wso2am-default-813fy   0/1       ImagePullBackOff   0          20h

"wso2am-default-813fy"노드 문제로 인해 다시 시작해야합니다. 어떠한 제안?

답변:


70

일반적으로 "ImagePullBackOff"의 경우 몇 초 / 분 후에 다시 시도됩니다. 수동으로 다시 시도하려는 경우 이전 포드를 삭제하고 포드를 다시 만들 수 있습니다. 포드를 삭제하고 다시 만드는 한 줄 명령은 다음과 같습니다.

kubectl replace --force -f <yml_file_describing_pod>

6
이 포드를 관리하는 복제 세트 / 컨트롤러가있는 경우 새 포드가 자동으로 생성되어야합니다.
Hem

^^ 절대적으로. 죽이는 꼬투리가 영원히 사라지면 매우 걱정이 될 것입니다.
Damien Roche

3
나는 kubectl replace --force -f ...삭제하고 생성하는 것과 동등 하다고 믿습니다.
올리버

1
배포를 통해 포드가 생성 된 경우 포드를 삭제하면됩니다. 새 포드가 자동으로 생성됩니다
Illidan

--force옵션이 필요한 입니까?
mchawre 19-06-29

221

yaml 파일이없는 경우 :

kubectl get pod PODNAME -n NAMESPACE -o yaml | kubectl replace --force -f -


19
$ kubectl replace --force -f <resource-file>

모든 것이 잘되면 다음과 같은 내용이 표시됩니다.

<resource-type> <resource-name> deleted
<resource-type> <resource-name> replaced

이에 대한 자세한 내용은 작성 당시의 Kubernetes 문서, "manage-deployment"및 kubectl-cheatsheet 페이지에서 찾을 수 있습니다 .


포드의 리소스 파일이 어떻게 표시되어야하는지 어떻게 알 수 있습니까? ./pod.json 파일을 보았지만 링크에 템플릿이나 유사한 내용이 언급되어 있지 않습니다
Dominique Paul

7

이 또는의 Pod일부인 경우 삭제하면 다시 시작 되고 잠재적으로 다른 노드에 배치됩니다.DeploymentServicePod

$ kubectl delete po $POD_NAME

replace개인 인 경우 Pod:

$ kubectl get po -n $namespace $POD_NAME -o yaml | kubectl replace -f -


2

포드 삭제를 시도하면 이미지를 다시 가져 오려고합니다.

kubectl delete pod <pod_name> -n <namespace_name>


0

먼저 포드에 문제가 있는지 확인하십시오.

kubectl logs -p <your_pod>

제 경우에는 YAML 파일의 문제였습니다.

따라서 구성 파일을 수정하고 교체해야했습니다.

kubectl replace --force -f <yml_file_describing_pod>

0

ImagePullBackOff의 문제는 이미지가 존재하지 않거나 포드 YAML 파일에 문제가 있기 때문일 수 있습니다.

내가 할 것은 이거

kubectl get pod -n $namespace $POD_NAME --export > pod.yaml | kubectl -f apply -

이전 포드가 작동하지 않는 이유를 확인하기 위해 pod.yaml도 볼 수 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.