2017-10-07 9 views
1

私はMinkubeで遊んでいます。私が見ることができるダッシュボードでKubernetes minikube、公衆IPの範囲でサービスを公開することはできません

PS C:\Users\Will> kubectl expose deployment/test-flask-deploy -- 
type="NodePort" --port 8080 
service "test-flask-deploy" exposed 

:私も、サービスとしての展開を公開するために管理してきました

PS C:\Users\Will> kubectl run test-flask-deploy --image 
192.168.1.201:5000/test_flask:1 
deployment "test-flask-deploy" created 

は、私はシンプルなPythonのフラスココンテナを展開するために管理してきましたそのサービスにはクラスタIPがあります。 10.0.0.132

私は192.168.xxx.xxxアドレスのダッシュボードにアクセスしています。そのサービスをその外部IPに公開することを望んでいます。

私はこれについてどのように考えていますか?

私はネットワーク上のドッカーレジストリとミニキュブを話しています。私がまだminikubeにローカルにプルされていないイメージをデプロイすると、デプロイメントは失敗しますが、ローカルでminikubeでdocker pullコマンドを実行すると、デプロイメントは成功します。ですから、minikubeはドッカーイメージを取得することができますが、レジストリを介してアクセス可能なイメージを展開してもローカルでは取得できない場合は失敗します。何かご意見は?

EDIT:コメントへの応答で詳細:

PS C:\Users\Will> kubectl describe pod test-flask-deploy 
Name:   test-flask-deploy-1049547027-rgf7d 
Namespace:  default 
Node:   minikube/192.168.99.100 
Start Time:  Sat, 07 Oct 2017 10:19:58 +0100 
Labels:   pod-template-hash=1049547027 
       run=test-flask-deploy 
Annotations: kubernetes.io/created-by={"kind":"SerializedReference","apiVersion":"v1","reference":{"kind":"ReplicaSet","namespace":"default","name":"test-flask-deploy-1049547027","uid":"b06a14b8-ab40-11e7-9714-080... 
Status:   Running 
IP:    172.17.0.4 
Created By:  ReplicaSet/test-flask-deploy-1049547027 
Controlled By: ReplicaSet/test-flask-deploy-1049547027 
Containers: 
    test-flask-deploy: 
    Container ID:  docker://577e339ce680bc5dd9388293f1f1ea62be59a6acc25be22889310761222c760f 
    Image:    192.168.1.201:5000/test_flask:1 
    Image ID:   docker-pullable://192.168.1.201:5000/[email protected]:d303ed635888394f69223cc0a66c5778444fd3636dfcde42295fd512be948898 
    Port:    <none> 
    State:    Running 
     Started:   Sat, 07 Oct 2017 10:19:59 +0100 
    Ready:    True 
    Restart Count:  0 
    Environment:  <none> 
    Mounts: 
     /var/run/secrets/kubernetes.io/serviceaccount from default-token-5rrpm (ro) 
Conditions: 
    Type   Status 
    Initialized True 
    Ready   True 
    PodScheduled True 
Volumes: 
    default-token-5rrpm: 
    Type:  Secret (a volume populated by a Secret) 
    SecretName: default-token-5rrpm 
    Optional: false 
QoS Class:  BestEffort 
Node-Selectors: <none> 
Tolerations: <none> 
Events:   <none> 
+1

質問の2番目の部分については、 'kubectl pod test-flask-deploy'を記述して質問の一部として表示できますか?また、デプロイメントのimagePullPolicyを常に動作するように変更するかどうかを確認します。 'kubectl editデプロイメントテストフラスコ展開 'と' imagePullPolicy:Always'に変更 – iamnat

+0

詳細を追加し、次のデプロイ時にimagePullPolicyも試します – Xerphiel

答えて

1

まず、あなたのサービスに割り当てられているnodeportチェック:

$ kubectl get svc test-flask-deploy 
NAME    CLUSTER-IP EXTERNAL-IP PORT(S)   AGE 
test-flask-deploy 10.0.0.76 <nodes>  8080:30341/TCP 4m 

を今、あなたは192.168.xxxx:30341上でそれにアクセスすることができる必要がありますかあなたのminikubeIP:nodeportが何であれ。

+0

iamnatありがとうございます。上記のコマンドは次のようになります: ** NAME CLUSTER-IP EXTERNAL-IP PORT(S)AG test-flask-deploy 10.0.0.5 8080:32471/TCP 1h ** しかし、追加されたポートでURLをロードしようとすると、 192.168.99.100:8080または:32471、接続が拒否されました。 同じIP上のダッシュボードにポート3000 – Xerphiel

+1

でアクセスすることもできます。技術的には、 'minikube service test-flask-deploy'を実行するとブラウザがそのURLに正確に表示されます。 'minikube service test-flask-deploy -url'の出力は何ですか?また、私はIE経由でミニクイプのものにアクセスできないという問題を覚えています。 – iamnat

+0

この2つのコマンドは元のコメント、同じURLに合わせてありがとうございます。 問題は、私のフラスコのアプリケーションに戻って、それが0.0.0.0(すべて聞いて、良い)でエンドポイントを提供することをデフォルトにしているが、ポート:5000で提供するかもしれないと思う。 ホストポートをコンテナ5000にマップできるため、単一のコンテナを実行しても問題ありませんが、これは問題ありませんが、固定ポートにサービスを提供するコンテナとサービスを公開するポートを調整する方法がわかりません。元の質問の範囲を超えて。あなたの考えがあれば教えてください。しかし、あなたは私の元の質問に答えました。 – Xerphiel

関連する問題