2017-05-02 18 views
1

私はminikubeでkubernetesを実行しています。プロキシの背後にあるので、/etc/systemd/system/docker.serviceのdockerにenv変数(HTTP_PROXY & NO_PROXY) .d/http-proxy.conf は私がドッキングウィンドウプルを行うことができたが、私は以下の例を実行したときにKubernetesポッドが起動していない、実行中のプロキシをバインド中

kubectl run hello-minikube --image=gcr.io/google_containers/echoserver:1.4 --port=8080 
kubectl expose deployment hello-minikube --type=NodePort 
kubectl get pod 

ポッドが開始したことがないと私はそれはあなたのように見える

desc = unable to pull sandbox image \"gcr.io/google_containers/pause-amd64:3.0\"

docker pull gcr.io/google_containers/echoserver:1.4

+0

'docker pull gcr.io/google_containers/pause-amd64:3.0'を実行すると、実際にはネットワーク上の問題と思われます。 – Crazykev

+0

はい私はそれを実行することができます – PMat

+0

@Crazykevお願いします。下の私の答えを参照してください – PMat

答えて

3

私はそれを自分で修正することができました。 私は私のホストにDockerを持っていて、MinikubeにDockerがあります。 Minukubeで ドッカーは私が合格したminikubeを開始するには、これを行うには良い方法があるはず、私はminikube VMにSSHと

Cannot download Docker images behind a proxy この記事を追跡するために持っていたし、それがすべてNOWSを作品

を発行していました以下のようなドッキングウィンドウのENV、

minikube start --docker-env HTTP_PROXY=http://xxxx:8080 --docker-env HTTPS_PROXY=http://xxxx:8080 
--docker-env NO_PROXY=localhost,127.0.0.0/8,192.0.0.0/8 --extra-config=kubelet.PodInfraContainerImage=myhub/pause:3.0 

を動作しませんでした私はrはそれが

0

正常に動作し、エラーを取得しますno_proxyにミニキューブipを追加する必要があります。

export NO_PROXY=$no_proxy,$(minikube ip)

このスレッドを表示:kubectl behind a proxy

+0

私はドッカーが同じイメージを引っ張ってもらうことができました – PMat

+0

私の答えは以下を参照してください – PMat

1

を動作させるために、Minikube VM内の同じENV変数を設定していました同じ問題に陥ってしまって、何度か間違ったターンをした後に学んだことを分かち合っています。これはminikube v0.19.0です。古いバージョンをお持ちの場合は、更新したいかもしれません。

  1. デスクトップ上minikubeに接続するときkubctlがプロキシを経由しないことを確認してください:

    は、我々が達成するために必要な2つのものがあることを覚えておいてください。

  2. イメージリポジトリに接続する必要があるときに、ミニキューブのドッカーデーモンがになっていることを確認してください。

まず、ご使用の環境でプロキシ設定が正しいことを確認してください。ここに私の.bashrcからの例です:

export {http,https,ftp}_proxy=http://${MY_PROXY_HOST}:${MY_PROXY_PORT} 
export {HTTP,HTTPS,FTP}_PROXY=${http_proxy} 
export no_proxy="localhost,127.0.0.1,localaddress,.your.domain.com,192.168.99.100" 
export NO_PROXY=${no_proxy} 

注意するカップルの事:

  1. 私は下と上の両方のケースを設定します。時にはこれは重要です。
  2. 192.168.99.100は、minikube ipである。クラスタの起動後に追加することができます。

OK、正しく動作するkubectlを処理する必要があります。次に、次の問題があります。これは、minikube内のDockerデーモンがプロキシ設定で構成されていることを確認しています。設定撮影した学位論文ことを確認するために

$ minikube delete 
$ minikube start --docker-env HTTP_PROXY=${http_proxy} --docker-env HTTPS_PROXY=${https_proxy} --docker-env NO_PROXY=192.168.99.0/24 

、次の操作を行います:あなたは、このようPMATで述べたように、これを行う

$ minikube ssh -- systemctl show docker --property=Environment --no-pager 

あなたが記載されているプロキシ環境変数が表示されるはずです。

minikube deleteはなぜですか?それがなければ、前もってクラスタを作成していれば(プロキシ情報なしで)Docker環境が更新されないからです。たぶん、これはPMatが--docker-envを起動するのに成功しなかった理由です(あるいは古いバージョンのminikubeにあったかもしれません)。

+0

rcファイルに大文字のenv変数は必要ありません – PMat

+0

私のコメントの先に述べたように、私はホストのドッカーも持っていました。だから、2つのドッカーがあり、それが原因です。これは既知の問題です。 – PMat

関連する問題