2016-12-03 21 views
0

私は自分のMacにミニクイブをインストールし、私のnodejsアプリケーションのデプロイメントとサービスを作成しました。私は、次のコマンドを使用して私のサービスのURLを取得することですべてが動作していることをテストしました:同じネットワーク内の別のマシンからNodePortサービスにアクセス

minikubeサービスmy-nodejs-app --urlそしてブラウザでこのURLを実行して結果を得ました。問題は、同じネットワーク内の別のマシンから同じURLにアクセスしようとしたときです。

私のサービス.ymlファイルは次のとおりです。

apiVersion: v1 
kind: Service 
metadata: 
    name: my-nodejs-app 
spec: 
    type: NodePort 
    ports: 
    - port: 80 
    targetPort: 1337 
    protocol: TCP 
    name: app-server 
    selector: 
    app: my-nodejs-app 

私は私のローカルホストに私のポッドポートを転送するポート転送を使用しようとしましたが、それが唯一のクラスタをホストし、私がアクセスしようとすると、同じマシン上で動作します同じネットワーク上の別のマシンから(クラスタが展開されたマシンのIPアドレスを介して)私はまだページが見つかりません。

ありがとうございました。

答えて

0

他のマシンから届くような音は、ウェブにsseviceを公開することに比べて似ています。あなたが仕様/タイプを検討する必要があるような場合には :ロードバランサ(http://kubernetes.io/docs/user-guide/load-balancer/) 前記、minikubeと私は単一のマシン開発に固執したい私が正しくあなたの問題を理解していればだけ

+0

ありがとう、私はモバイルアプリを開発しています。実際のモバイルデバイスでアプリをテストしようとすると、モバイルデバイスからサービスにアクセスできないため不可能です。 BTW - リクエストをサービスに転送するリバースプロキシ(NGINX)をインストールすることでその方法を見つけましたが、より良い方法があるかどうかを知りたがっています。 –

+0

ロードバランサタイプのサービスを設定しましたか?これはより良い方法(kubernetes方法)であり、それは私が上で意味したものです – Ben

+0

ミニバブでLoadBalancerを使用することはできません。サービスのタイプはNodePortでなければなりません。 –

0

をテスト:

あなたのマシンのIP:192.168.1.4 あなたminikube IP:192.168.99.100 はあなたのマシン上のブラウザからのサービスへのアクセス:今すぐhttp://192.168.99.100:30080

、あなたは別のマシンにしているとしましょう、192.168.1.5を言うと、あなたはこのよアクセスしたいですエイリアス。

問題は、マシンのポートをミニクーブの30080にマップする必要があるということです。これは、ミニクーブがマシン上で実行されているVM(マシンの外部からアクセスできない)であるためです。

だからあなたは試してみることができます:Virtualbox "port forward" from Guest to Host

もう1つの方法は、kubectl port-forwardを使用して、ローカルホストのポートをポッドに直接転送することです(残念なことにk8s svcではなく)。

+0

こんにちは@iamnat、kubectlポートフォワード(これは最善の解決策と思われる)を試みましたが、動作しません...私はVirtualBoxで "ポートフォワード"リバースプロキシとしてNGINXをインストールする方が良いと思いませんか? (これは私の現在の作業ソリューションです..) –

関連する問題