Kubernetesのポッドに静的パブリックIPを割り当て、サービスで指定する

Kubernetesのポッドに静的パブリックIPを割り当て、サービスで指定する

に従ってリンク複数のネットワークを持つポッドを作成できます。アプリケーションがデフォルト以外のネットワーク (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

関連情報