2017-08-31 8 views
0

kubernetesに複数のコンテナインスタンスを配置しています。kubernetesのコンテナからパブリックIPを取得する方法

コンテナ内のアプリケーションには、ポッド/ノードからのパブリックIPが必要です。配置マニフェストから

、私は以下を使用しようとした、

  • status.podIP
  • spec.nodeName

しかし、それらの両方が、むしろ私のノードのプライベートIPアドレスを返します公的なIP。

誰かがstatus.podIPの値の由来を説明するのに役立つことができますか?ノードのマニフェストから来ていますか?またはVM /ドッカーの設定から? 私のコンテナにパブリックIPアドレスを取得する方法に関する提案はありますか?

ありがとうございます。

答えて

0

パブリックIPは、Kubernetesからはご利用いただけません。しかし、外部サービスを使用してIPに問い合わせることができます。

$ curl ipinfo.io/ip 

1つの可能な方法です。しかし、彼らはレート制限があります。他のオプションもあります。次のオプションが設定

location = /ip { 
    add_header Last-Modified $date_gmt; 
    add_header Cache-Control 'private no-store, no-cache, must-revalidate, proxy-revalidate, max-age=0'; 
    if_modified_since off; 
    expires off; 
    etag off; 

    default_type text/plain; 
    return 200 "$remote_addr"; 
} 

以下とノウハウマシン上でnginxのサーバーを設定し、これはの公開を与えるこの

$ curl <publicipofnginx>/ip 

をホストのnginxのパブリックIPを使用して、このエンドポイントを呼び出すことですカールコールを作るマシン。

0

Kubernetesは、負荷分散サービスを通じて外部/パブリックIPアドレス(およびポート)を公開します。ほとんどの場合、コンテナはこの外部IPアドレスを知る必要はありません。設定されたポートでリッスンするだけで済みます。このサービスは、外部/パブリックIPに送信されたトラフィックが、(うまくいけばレプリケートされたレプリカセットの)コンテナにルーティングされるようにします。次のKubernetes Service Exampleをご覧ください。

関連する問題