2017-04-18 3 views
2

로컬 컴퓨터에서 도커 이미지를 빌드하고 kubectl을 사용하여 도커 이미지를 가져 오려고합니다. 그러나 docker 컨테이너를 시작하지 않습니다.kubectl 로컬 도커 이미지 실행 - ImagePullBackOff 상태

이미지는 docker 명령으로 시작됩니다.

REPOSITORY           TAG     IMAGE ID   CREATED    SIZE 
tomcat9            latest    8b228ac6f19f  About an hour ago 111 MB 

ImagePullBackOff 마사지를 사용하여 통계를 표시합니다.

$ kubectl get pods 
NAME        READY  STATUS    RESTARTS AGE 
tomcat9-511437148-sgkwp   0/1  ImagePullBackOff 0   9m 

어떻게이 도커 이미지를 실행하려면 kubectl을 만들 수 있습니까?

감사

의견에서 내가 볼
+0

어떻게 포드를 시작 하시겠습니까? 'Deployment' 또는 사용중인 명령이 무엇입니까? 클러스터는 어디에서 호스팅됩니까? 클러스터에 로컬 저장소에 대한 네트워크 액세스 권한이 있습니까? –

+0

@OswinNoetzelmann 시작하려면 다음 명령을 사용하십시오 : kubectl runcatcat --image tomcat9 미니 크ube에서 이것을 시도하면 내 포드가 이미 실행 중입니다. 이미지와 minikube 같은 기계에서 실행됩니다. – sfgroups

답변

4

는 로컬 Minikube를 사용하고 울부 짖는 소리.

Minikube는 가상 시스템 내에서 실행되며 Minikube에서 실행되는 Docker와 사용자 컴퓨터에서 실행되는 Docker는 두 개의 개별 인스턴스이므로 동일한 이미지에 액세스 할 수 없지만 Minikube 내부의 Docker를 로컬 Docker에 연결할 수 있습니다. eval $(minikube docker-env), here을 더 읽을 수 있습니다.

또한 kubectl describe pods tomcat9-511437148-sgkwp을 실행하여 ImagePullBackOff이 발생한 이유에 대한 자세한 정보를 얻을 수 있습니다.

+0

yaml 파일을 사용해 보았습니다. 코멘트 주셔서 감사합니다. – sfgroups

0

이 yaml 파일을 사용 했으므로 이미지가 클러스터에 배포됩니다.

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: tomcat9 
    labels: 
    app: tomcat9 
spec: 
    template: 
    metadata: 
     labels: 
     app: tomcat9 
    spec: 
     containers: 
     - image: tomcat9:latest 
     name: tomcat9 
     imagePullPolicy: IfNotPresent 
     ports: 
     - name: http 
      containerPort: 8080 
--- 
apiVersion: v1 
kind: Service 
metadata: 
    name: tomcat9 
    labels: 
    app: tomcat9 
spec: 
    ports: 
    - nodePort: 30080 
    port: 8080 
    protocol: TCP 
    targetPort: 8080  
    selector: 
    app: tomcat9 
    sessionAffinity: None 
    type: NodePort 
status: 
    loadBalancer: {}  
관련 문제