複数の を実行しているノードが 3 つありOpenVPN pods
、各ポッドには の VPN ネットワークがあり100.70.0.0/16
、これらのポッドに接続するクライアントはこの範囲の IP アドレスを受け取ります。たとえば、クライアントが100.70.162.91
ポッドの 1 つに接続したとします。
ここで、このクラスターでさまざまなサービスを実行するポッドをさらに追加し、各ポッドがすべての VPN クライアントと通信できるようにする必要があります。これまで AWS ECS を使用してこれを行う方法の大きなステップの 1 つは、クライアントが AWS API を使用して接続したら、クラスター VPC のサブネット ルート テーブルなどにルートを追加することです。この方法は、すべてのポッドが同じネットワーク上にある限りip route add 100.70.192.91/32 via <OpenVPN-pod-IPv4>/32
、を使用しても機能するようです。docker-compose
Kubernetes
しかし、ECS から Kubernetes に移行しようとしているのですが、Kubernetes 上でクラスター全体のネットワーク静的ルートを追加する方法が見つからないようです。
これを Kubernetes に実装する最適な方法は何でしょうか?
答え1
ECS の代わりにバニラ k8s を使用する場合は、ワーカー ノードにそのようなルートを追加するオプションがあります。したがって、非 k8s (VPN クライアント ネットワークは k8s ポッド ネットとは異なります) ネットワークへのポッド トラフィックは、ワーカー ノードのルーティング テーブルを介して出力されます。ワーカー ノード上の VPN クライアント ネットワークに静的ルートを追加する必要があります。ルートの宛先には、vpn-pod IP を設定します。これは、どの k8s ワーカー ノードからでもアクセスできます。