2017-04-18 256 views
2

我在本地機器上構建docker鏡像並嘗試使用kubectl來拖動docker鏡像。但它並未啓動碼頭集裝箱。kubectl運行本地docker image-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運行這個docker鏡像?

謝謝

+0

你打算如何開始吊艙?是否有'部署'或您正在使用的命令是什麼?你的集羣託管在哪裏?你的集羣是否有網絡訪問你的本地存儲庫? –

+0

@OswinNoetzelmann我用這個命令啓動:kubectl run tomcat9 --image tomcat9 在minikube中試試這個,我的豆莢已經在運行了。圖像和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: {}