
に従ってリンク複数のネットワークを持つポッドを作成できます。アプリケーションがデフォルト以外のネットワーク (eth2、3 など) でポートを開く場合、それをサービスとして公開するにはどうすればよいでしょうか? サービス yaml では、デフォルト以外のサービスを公開する方法が見つかりません。
答え1
Multus を使用すると、ネットワーク デバイスを Pod に接続できますが、これらのインターフェースは Kubernetes クラスター SDN の一部ではないことに注意してください。
Multus ベースのデバイスの場合: DHCP、静的 IP などを使用して、Pod に IP を割り当てます。割り当て方法は任意です。これらのアドレスは Kubernetes SDN から独立していることに留意してください。
そのクラスター内の他のコンテナーがそれらのエンドポイントに接続する必要がある場合、そのトラフィックは SDN を離れ、通常のデフォルト ゲートウェイを通過することになります。そのゲートウェイは、Multus アドレスのサブネット (へのルート) に関する知識を持っている必要があります。
ただし、SDN からアドレスを指定してサービスを作成することはできます。これは、次のように、サービスと一緒にエンドポイント オブジェクトを作成することによって行われます。
---
apiVersion: v1
kind: Endpoints
metadata:
name: svc-out-sdn
namespace: ns
subsets:
- addresses:
- ip: 10.0.0.1
ports:
- name: tcp-80
port: 80
protocol: TCP
---
apiVersion: v1
kind: Service
metadata:
name: svc-out-sdn
namespace: ns
spec:
clusterIP: None
ports:
- name: tcp-80
port: 80