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.