2017-02-27 17 views
0

問題が発生しました。 1)配備内のPODに対してhostNetwork = trueを宣言し、配備を作成します。 2)nodePortでサービスをデプロイメントポッドに宣言するKubenetes PODホストネットワーク原因nodePortが機能しない

ポッドが稼働していないホストのserviceClusterIP:nodePortからnodePortにアクセスできないことがわかりました。

私はhostnetwork = trueを削除していますが、serviceClusterIP:nodePortはクラスタ内の任意のホストノードからアクセスできます。

ワゴンとは何ですか?

私のkubernetesのバージョンを以下に示します。私はweave netを使用しています。 Kubernetesで

# kubectl version 
Client Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.1", GitCommit:"82450d03cb057bab0950214ef122b67c83fb11df", GitTreeState:"clean", BuildDate:"2016-12-14T00:57:05Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"} 
Server Version: version.Info{Major:"1", Minor:"5", GitVersion:"v1.5.0", GitCommit:"58b7c16a52c03e4a849874602be42ee71afdcab1", GitTreeState:"clean", BuildDate:"2016-12-12T23:31:15Z", GoVersion:"go1.7.4", Compiler:"gc", Platform:"linux/amd64"} 

答えて

0

nodePortは、すべてのノード上のポートに出ポッドのネットワークインタフェース上のポートをマッピングするためのメカニズムです。

普通のケースでは、hostNetwork=trueと言っていないときは、各ポッドに固有の「ネットワークネームスペース」があります。固有のIPアドレスを持つ独自の仮想ネットワークデバイスがあり、127.0.0.1ではlocalhostインターフェイスポッド内のすべてのコンテナで共有されます。

hostNetwork=trueと言ってポッドにホストのネットワークインターフェイスを使用するように要求すると、上記のいずれも表示されません。それは単にホストネットワークデバイスを使用します。また、このモードではnodePortメカニズムを使用できません。

kubectl eventsまたはkubeletのログファイルを参照すると、おそらくどこかでエラーメッセージが表示されます。どこかでエラーが見つからない場合は、この事実をKubernetesに対するバグとして報告してください。

+0

ありがとうございました。私の理解は:1)nodePortは指定されたノードとnodePortでサービスを公開することです。 2)hostNetworkは、実行中のノードでポッドを実行することです。ポッドがホストネットワークモデルで動作しているが、サービスがポートの一部をサービスノードポートに公開する可能性がある場合は、私は正しいのでしょうか? –

+0

"nodePortは指定されたノードを持つサービスを公開する" - いいえ、_all_ノードを公開します。私はドキュメントにリンクしました。また、私はhostNetworkと通常のポッドネットワーキングを説明するために私の答えを広げました。 – Bryan

関連する問題