2017-09-26 6 views
1

2つのコンテナを持つポッドがあります。アプリケーションとデータベース。私はポッド用の2つのレプリカを持っています。2つのポートを公開します.1つはClusterIP、もう1つはNodePortです。

アプリケーションポートがクラスタ外で公開されていることを公開したいので、データベースポートを公開したくありません。

しかし、トラフィックのバランスをとるためにDNSを使用してデータベースポートにアクセスしたいとします。

ノードポートとして2つのサービスを作成し、アプリケーションポートとその他のサービスをClusterIPとして公開して、データベースポートを公開することができます。

トラフィックのバランスが以前と同じように、アプリケーションサーバーからlocalhostに接続することもできます。そして、アプリケーションサーバーをnodeportとして公開するだけです。

質問は次のとおりです。データベースポートをクラスタIPとして、アプリポートをnodeportとして1つのサービスだけで公開できますか?

ありがとうございます。

答えて

0

いいえ。できません。

実際には、レプリケートされたセットアップで同じポッドにデータベースを保持することは、まれにありますが、実際には異なる展開/サービスに分けたい場合は、まれな状況です。

+0

データベースがポッドで実行されているアプリケーションのみの場合は、なぜそれはまれですか?私はそれがマイクロサービスのアプローチだと言います。シンプルな分離アプリケーション。 – Jxadro

+0

まず、マイクロサービスを複製します。あなたのdbが重大な複製魔法をしない限り(またはあなたのサービスが状態を共有しない場合)、複数のインスタンスの実行を開始するとすぐに問題になります。また、ステートストア(db)とサービスをそれぞれ別々に拡張できることが望ましいです。あなたのsvcが何らかの合理的なことをしばしば行うのであれば、状態を格納するポッドを追加する必要はないかもしれませんが、ポッドを追加する必要があるかもしれません。もう1つのことは、データの永続性です。どのようにデータを保持していますか(永続性を必要としない限り)。それ以上のことがありますが、チャリミットの制限があります: –

1

答えは:いいえ、できません。

しかし、タイプNodePortのKubernetesサービスも、ポートがルーティングするクラスターIPを割り当てることがわかります。したがって、両方のポートを公開したい場合は、名前を使用して内部でノードポートに接続するだけで1つのサービスで十分です。

+0

はい、両方のポートがNodePortとして公開されるという問題があります。私はNodePortとして1つだけを必要とし、もう1つは内部のみにしたい。私はまた、NodeportがClusterIPを超えているので、ddbbポートにアクセスできると考えましたが、サービス記述で指定しなければClusterIPもNodePortも公開されません。 – Jxadro

+0

はい、これが実際の回答が「いいえ」である理由です。 –

関連する問題