Kubernetes는 ContainerCreating에 붙어


99

생성을 실행 한 후 Kubernetes 클러스터의 포드가 "ContainerCreating"에 붙어 있습니다. 이 작업이 중단 된 이유를 진단하기 위해이 작업에 대한 로그를 보려면 어떻게합니까? kubectl logs컨테이너가 보류 중이 아니어야하므로 작동하지 않는 것 같습니다.


kubernetes.io/docs/concepts/workloads/pods/pod-lifecycle/… 은 가능한 단계에 대한 문서입니다. 불행히도 그것은 포함되지 않습니다 ContainerCreating...
— Xiong Chiamiov

답변:


125

kubectl describe pods이미지 가져 오기, 컨테이너 시작을 포함하여 포드와 관련된 모든 이벤트가 나열됩니다. 도움이 될 수 있습니다.


5
컨테이너가 이벤트없이 ContainerCreating에 붙어 있으면 어떻게됩니까? 나를 위해 이벤트는 "이벤트 없음"으로 표시됩니다.
— Bob

1
일부 이벤트가 표시되는 데 시간이 걸리는 것 같습니다. 예를 들어 디스크를 마운트하려고 시도하는 시간 초과가 이벤트로 표시 되려면 약 2 분이 걸립니다.
— jwadsack

8
비밀을 사용할 때 발생하며 비밀을 찾을 수 없습니다 (yaml의 오타처럼 또는 이전에 생성하지 않은 경우). 거의 모든 가능한 오류의 경우 CrashLoopback 또는 Error 상태가되지만 비밀을 사용하면 ContainerCreating에 갇히게됩니다. 포드를 설명하면 마지막에 비밀을 찾을 수 없다는 메시지가 표시되지만 간신히 말합니다 문제에 대해서는 아무것도 없습니다.
— danius

예, 보통 무언가를 시작하기 전에는 아무런 행사가 없습니다.
— erikbwork

오늘 아침에 나에게 일어 났으며 볼륨에 대한 hostPath의 오타였습니다. 야이 스티커 키보드.
— 조 블록

4

제 경우에는 도커의 인터넷 액세스가 차단되었습니다. 프록시를 사용하여 해결되었습니다 ( sandylss 's comment 사용 ).

  1. minikube stop
  2. minikube delete
  3. export http_proxy=http://user:pass@ip:port
  4. export https_proxy=http://user:pass@ip:port
  5. export no_proxy=192.168.99.0/24
  6. minikube start --logtostderr --v=0 --bootstrapper=localkube --vm-driver hyperv 
      --hyperv-virtual-switch "Primary Virtual Switch" --docker-env HTTP_PROXY=$http_proxy \
      --docker-env HTTPS_PROXY=$https_proxy --docker-env NO_PROXY=$no_proxy
    
  7. export no_proxy=$no_proxy,$(minikube ip)
  8. export NO_PROXY=$no_proxy,$(minikube ip)

그런 다음 docker가 인터넷에 액세스 할 수 있는지 확인하려면 다음을 실행하십시오.

$ docker pull tutum/hello-world

클러스터에서 (를 사용하여 클러스터에 연결 minikube ssh); 다운로드가 시작되면 프로세스를 중지하십시오.

두 번째 문제는 인터넷 연결 속도가 느 렸습니다. 필요한 고정 표시기 이미지 인 100MB 정도이기 때문에, 모두 고정 표시기 용기는 Kubernetes 포드에 잔류 \pause하고 ContainerCreating30 분간 말한다.

docker가 이미지를 다운로드하는지 확인하려면 다음을 실행하십시오.

$ ls -l /var/lib/docker/tmp

클러스터에서 다운로드중인 임시 이미지 파일을 표시하고 그렇지 않으면 비 웁니다.

minikube에서 개발 중이고 VPN을 사용하는 경우 docker는 fiddler 를 통해 VPN을 사용할 수 있습니다 . 즉, 도커는 피들러의 ip : port에 연결되고 피들러는 VPN에 연결됩니다. 그렇지 않으면 호스트와 minikube VM간에 VPN이 공유되지 않습니다.


오늘이 버그로 조금 벗어났습니다. 그래도 원인이 무엇인지 확실하지 않습니다. 1 분 동안 문제가 해결되고 다음에이 문제가 발생했습니다. 수정 해 주셔서 감사합니다. 그것은 나를 위해 일했다.
— Jim

0

내가 한 번은 내 리소스 선언이 실수로 매우 작기 때문입니다.

리소스 : 제한 : CPU : 1000m 메모리 : 1024M 요청 : CPU : 1000m 메모리 : 1024M

vs

리소스 : 제한 : CPU : 1000m 메모리 : 1024m 요청 : CPU : 1000m 메모리 : 1024m

m을 사용하면 자원 사용에 큰 차이가 있습니다. 컨테이너에 충분한 메모리를 제공하지 않아 ContainerCreating에 갇혀있었습니다.

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