2016-05-18 5 views
4

私は最初のkubernetesポッドをローカルで実行しようとしています。 私は(hereから)次のコマンドを実行しました:kubectlポッド取得 - kubectl取得ポッド - STATUS ImagePullBackOff

export ARCH=amd64 
docker run -d \ 
    --volume=/:/rootfs:ro \ 
    --volume=/sys:/sys:ro \ 
    --volume=/var/lib/docker/:/var/lib/docker:rw \ 
    --volume=/var/lib/kubelet/:/var/lib/kubelet:rw \ 
    --volume=/var/run:/var/run:rw \ 
    --net=host \ 
    --pid=host \ 
    --privileged \ 
    gcr.io/google_containers/hyperkube-${ARCH}:${K8S_VERSION} \ 
    /hyperkube kubelet \ 
     --containerized \ 
     --hostname-override=127.0.0.1 \ 
     --api-servers=http://localhost:8080 \ 
     --config=/etc/kubernetes/manifests \ 
     --cluster-dns=10.0.0.10 \ 
     --cluster-domain=cluster.local \ 
     --allow-privileged --v=2 

その後、私は次のことを実行しようとしました:

kubectl create -f ./run-aii.yaml 

実行aii.yamlを:

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: aii 
spec: 
    replicas: 2 
    template: 
    metadata: 
     labels: 
     run: aii 
    spec: 
     containers: 
     - name: aii 
     image: aii 
     ports: 
     - containerPort: 5144 
     env: 
     - name: KAFKA_IP 
      value: kafka 
     volumeMounts: 
     - mountPath: /root/script 
      name: scripts-data 
      readOnly: true 
     - mountPath: /home/aii/core 
      name: core-aii 
      readOnly: true 
     - mountPath: /home/aii/genome 
      name: genome-aii 
      readOnly: true 
     - mountPath: /home/aii/main 
      name: main-aii 
      readOnly: true 
     - name: kafka 
     image: kafkazoo 
     volumeMounts: 
     - mountPath: /root/script 
      name: scripts-data 
      readOnly: true 
     - mountPath: /root/config 
      name: config-data 
      readOnly: true 
     - name: ws 
     image: ws 
     ports: 
     - containerPort: 3000 
     volumes: 
     - name: scripts-data 
     hostPath: 
      path: /home/aii/general/infra/script 
     - name: config-data 
     hostPath: 
      path: /home/aii/general/infra/config 
     - name: core-aii 
     hostPath: 
      path: /home/aii/general/core 
     - name: genome-aii 
     hostPath: 
      path: /home/aii/general/genome 
     - name: main-aii 
     hostPath: 
      path: /home/aii/general/main 

今実行したとき:kubectl get pods 私は次のようになります:

ところで
NAME     READY  STATUS    RESTARTS AGE 
aii-806125049-18ocr  0/3  ImagePullBackOff 0   52m 
aii-806125049-6oi8o  0/3  ImagePullBackOff 0   52m 
aii-pod     0/3  ImagePullBackOff 0   23h 
k8s-etcd-127.0.0.1  1/1  Running   0   2d 
k8s-master-127.0.0.1 4/4  Running   0   2d 
k8s-proxy-127.0.0.1  1/1  Running   0   2d 
nginx-198147104-9kajo 1/1  Running   0   2d 

docker imagesリターン:

REPOSITORY         TAG     IMAGE ID   CREATED    SIZE 
ws           latest    fa7c5f6ef83a  7 days ago   706.8 MB 
kafkazoo         latest    84c687b0bd74  9 days ago   697.7 MB 
aii          latest    bd12c4acbbaf  9 days ago   1.421 GB 
node          4.4     1a93433cee73  11 days ago   647 MB 
gcr.io/google_containers/hyperkube-amd64 v1.2.4    3c4f38def75b  11 days ago   316.7 MB 
nginx          latest    3edcc5de5a79  2 weeks ago   182.7 MB 
docker_kafka        latest    e1d954a6a827  5 weeks ago   697.7 MB 
spotify/kafka        latest    30d3cef1fe8e  12 weeks ago  421.6 MB 
wurstmeister/zookeeper      latest    dc00f1198a44  3 months ago  468.7 MB 
centos          latest    61b442687d68  4 months ago  196.6 MB 
centos          centos7.2.1511  38ea04e19303  5 months ago  194.6 MB 
gcr.io/google_containers/etcd    2.2.1    a6cd91debed1  6 months ago  28.19 MB 
gcr.io/google_containers/pause    2.0     2b58359142b0  7 months ago  350.2 kB 
sequenceiq/hadoop-docker     latest    5c3cc170c6bc  10 months ago  1.766 GB 

なぜ私はImagePullBackOffを得るのですか?

+1

「aii」はあなたが作成したプライベート画像ですか? –

+0

はい、aii、kafkazoo、wsは私のものです – ItayB

答えて

6

デフォルトでは、KubernetesはパブリックDockerレジストリで画像を検索します。あなたのイメージがそこに存在しないなら、それを引くことはできません。

registry cluster addonでローカルKubernetesレジストリを実行できます。

docker tag aii localhost:5000/dev/aii 

プッシュKubernetesレジストリへの画像::

はその後 localhost:5000であなたのイメージにタグを付け

docker push localhost:5000/dev/aii 

、代わりにaiilocalhost:5000/dev/aii画像を使用するために実行aii.yamlを変更します。今、Kubernetesはイメージを引き出すことができるはずです。

また、これを提供するプロバイダー(AWS ECR、GCRなど)の1つでプライベートDockerレジストリを実行することもできますが、これはローカル開発のためのものであれば、 Kubernetes Dockerレジストリ。

+0

うわー!ありがとう!私は明日それを試してみると、それが動作する場合更新する – ItayB

+0

私はhttps://docs.docker.com/registry/deploying/(簡単に見てみました)を試みた - しかしどのように/ kubernetesで私のレジストリの場所を設定することができますか? – ItayB

+0

ドッキング・レジストリ(ローカル)を使用できますか?私はそれをkubernetesのどこかで設定する必要がありますか?私はそれを正しく始めるでしょうか(上記の長いコマンドで)? – ItayB

1

同じ問題が発生した原因は、.ymlファイルを使用してドッカーの画像からポッドを作成したことですが、test-app:1.0.1というテストアプリが必要なときにその名前を誤って入力しました:私の.ymlファイルの1.0.2。だから私はを実行して問題のあるポッドを取り除き、kubectl create -f name_of_file.ymlを解決して私の問題を解決しました。

関連する問題