株式会社ネットワールドのエンジニアがお届けする技術情報ブログです。
各製品のエキスパートたちが旬なトピックをご紹介します。

【VMware】VKSクラスタのEgress IP(送信元IPアドレス)設定

こんにちは!ネットワールドSE殿貝です。

今日は、vSphere環境上で構成されるKubernetesクラスタ(VKSクラスタ)内で設定するEgress IPの設定について、触れていきます。

Egress IPとは?
Pod がクラスタ外へ出ていく通信の “送信元IP(Source IP)” を固定する仕組みです。
Egress IPを設定することで、Pod の外向き通信を指定した SNAT IP にします。

Egress IPを設定していない場合だと、Podの送信元IPはVKSクラスタを構成するWorkerのIPアドレスとなります。

Egress IPを設定すると指定したIPアドレスで外に出ていきます。

では、実際に試してみましょう。ここでは、VKSクラスタとPodは事前に作成済としています。
WorkerのIPを確認してみます。

ハイライトしている部分がWorkerのIPアドレスです。今回は、第4オクテットが.9 .10 になっていることがわかります。

外部のサーバにPingを打ってみます。外部のサーバではtcpdumpでどのIPから通信が来ているか確認します。

.9 から打たれていることがわかりました。

では、Egress IPの設定をしていきます。
Egressの設定には以下が必要になります。

  • External IP Pool
    割り当てる送信元IPの範囲の設定
  • Egress
    どのアプリケーションに、External IP Poolで指定したIPアドレスを割り当てるかの設定

今回は以下のようにExternal IP Poolには、.110を設定し、作成したPodに割り当てる設定を実施しました。

先ほどと同じように外部サーバに向けてPingを打ってみます。

送信元IPが期待通りに.110になっていることを確認できました。

この設定を利用すれば、アプリケーションがどのWokerで動いているのか関係なく、送信元IPアドレスを固定することが可能になります。

VKSクラスタのCNIには標準でantreaが利用されます。
今回試した機能はantreaの機能の一つです。
その他の機能や設定ファイルの詳細などはantreaのドキュメントも参照してみてください。

https://antrea.io/docs/main/docs/egress/

ではまた、次回に~