2016-12-09 12 views
3

私はMacOS 10.12でミニクーブを使用しており、ドッカーハブでホストされているプラ​​イベートイメージを使用しようとしています。私はminikubeが私の知っている限り、私のローカルkubernetesクラスタの一意のノードであり、それは私のポッドをすべてホストするVMを起動することを知っています。ミニクーブを使用してドッカーハブからプライベートイメージを引き出す

eval $(minikube docker-env)を実行して、VMのドッカーランタイムを使用することができます。だから私はそれらの変数を使用して私のローカルドッカーのランタイムから他のものに変更しました。 Running docker images変更が効果的に行われたことがわかりました。

私の次のステップは、docker loginを使用してドッカーハブにログインし、手動でイメージをプルすることでしたが、これはエラーなしで終了しました。その後、私はイメージがクラスタのどのポッドでも使用できるようになると考えましたが、私はいつもImagePullBackOffを得ています。私もminikube ssh経由でVMにsshしようとした結果は同じですが、イメージが使用されるが、何らかの理由で私はそれを使用することを拒否しているのか分からない。

それが助け場合は、これは私の展開記述ファイルです:

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: web-deployment 
spec: 
    replicas: 1 
template: 
    metadata: 
    labels: 
     app: nginx 
    spec: 
    containers: 
    - name: nginx 
     image: godraude/nginx 
     imagePullPolicy: Always 
     ports: 
     - containerPort: 80 
     - containerPort: 443 

そして、これはkubectl describe pod <podname>の出力です:

Events: 
    FirstSeen LastSeen Count From   SubobjectPath  Type  Reason  Message 
    --------- -------- ----- ----   -------------  -------- ------  ------- 
    1m  1m  1 {default-scheduler }    Normal  Scheduled Successfully assigned web-deployment-2451628605-vtbl8 to minikube 
    1m  23s  4 {kubelet minikube} spec.containers{nginx} Normal  Pulling  pulling image "godraude/nginx" 
    1m  20s  4 {kubelet minikube} spec.containers{nginx} Warning  Failed  Failed to pull image "godraude/nginx": Error: image godraude/nginx not found 
    1m  20s  4 {kubelet minikube}    Warning  FailedSync Error syncing pod, skipping: failed to "StartContainer" for "nginx" with ErrImagePull: "Error: image godraude/nginx not found" 

    1m 4s 5 {kubelet minikube} spec.containers{nginx} Normal BackOff  Back-off pulling image "godraude/nginx" 
    1m 4s 5 {kubelet minikube}    Warning FailedSync Error syncing pod, skipping: failed to "StartContainer" for "nginx" with ImagePullBackOff: "Back-off pulling image \"godraude/nginx\"" 

答えて

1

問題は、画像のプル方針でした。 Alwaysに設定されていたので、ドッカーが存在していてもイカゲンを引っ張ろうとしていました。 imagePullPolicy: Neverを設定すると問題が解決しました。私はuは必要なものだと思う

0

は今

kubectl get secret 
NAME   TYPE      DATA  AGE 
my-secret kubernetes.io/dockercfg 1   100d 

あなた分泌するのリストを表示するためにあなたのプライベート画像やその資格情報コマンド以下

kubectl create secret docker-registry my-secret --docker-server=DOCKER_REGISTRY_SERVER --docker-username=DOCKER_USER --docker-password=DOCKER_PASSWORD --docker-email=DOCKER_EMAIL 

を引っ張ることができる場所からKUBE教えてくれる秘密を作成することですデプロイメントの定義では、使用する秘密を定義する必要があります

apiVersion: extensions/v1beta1 
kind: Deployment 
metadata: 
    name: web-deployment 
spec: 
    replicas: 1 
template: 
    metadata: 
    labels: 
     app: nginx 
    spec: 
    containers: 
    - name: nginx 
     image: godraude/nginx 
     imagePullPolicy: Always 
     ports: 
     - containerPort: 80 
     - containerPort: 443 
    imagePullSecrets: 
     - name: my-secret 
関連する問題