ubuntu VM で実行されている種類の kubernetes クラスターがあります。kubernetes イングレス機能を有効にするためのドキュメントに従って、このクラスターを作成しました。
このクラスターには、内部で実行されているいくつかのサービスがあります。これらのサービスのうち、外部に公開したいサービスが 3 つあります。これらの 1 つは REST ベースのサービスで、その他は websocket 接続を使用します。
ホスト VM では、ドキュメントに従っていじった後、localhost をカールすることでこれらのサービスにアクセスできます。
これらのサービスを特定のインターフェイス (ens160) 経由で公開して、別のチームが構築しているクライアント側の自動化でこれらのサービスをヒットできるようにしたいと考えています。
私の最初の試みは、IP テーブルを使用して、80/443 で着信するトラフィックを 127.0.0.1 にマッピングすることでした。これは REST サービスでうまく機能します。
sudo iptables -t nat -A PREROUTING -p tcp -i ens160 --dport 443 -j DNAT --to-destination 127.0.0.1:443
sudo iptables -A FORWARD -p tcp -d 127.0.0.1 --dport 443 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
sudo iptables -t nat -A PREROUTING -p tcp -i ens160 --dport 80 -j DNAT --to-destination 127.0.0.1:80
sudo iptables -A FORWARD -p tcp -d 127.0.0.1 --dport 80 -m state --state NEW,ESTABLISHED,RELATED -j ACCEPT
ただし、websocket 接続は確立されていません。
私にとって、この方法は「薄っぺらな」アプローチのように思えます。この kubernetes クラスターを「企業ネットワーク」に公開し、入ってくるパケットに対して DNAT を実行するより良い方法があるかどうか疑問に思っています。
私はこれについて間違った方法で進んでいますか?
ありがとう、マックス・サージェント