26.12. デフォルトネットワークに外部ゲートウェイを設定する


クラスター管理者は、デフォルトネットワークに外部ゲートウェイを設定できます。

この機能には次の利点があります。

  • namespace ごとの Egress トラフィックの詳細制御
  • 静的および動的外部ゲートウェイ IP アドレスの柔軟な設定
  • IPv4 と IPv6 の両方のアドレスファミリーのサポート

26.12.1. 前提条件

  • クラスターは OVN-Kubernetes ネットワークプラグインを使用します。
  • インフラストラクチャーは、セカンダリー外部ゲートウェイからのトラフィックをルーティングするように設定されています。

26.12.2. OpenShift Container Platform が外部ゲートウェイ IP アドレスを決定する方法

k8s.ovn.org API グループの AdminPolicyBasedExternalRoute カスタムリソース (CR) を使用してセカンダリー外部ゲートウェイを設定します。この CR は、外部ゲートウェイの IP アドレスを指定するための静的アプローチと動的アプローチをサポートしています。

AdminPolicyBasedExternalRoute CR の対象となる各 namespace は、他の AdminPolicyBasedExternalRoute CR で選択できません。namespace には同時にセカンダリー外部ゲートウェイを含めることはできません。

ポリシーへの変更はコントローラー内で分離されます。あるポリシーの適用が失敗した場合に、他のポリシーを変更しても、他のポリシーの再試行はトリガーされません。ポリシーが再評価され、変更によって発生した可能性のある差分が適用されるのは、ポリシー自体またはポリシーに関連するオブジェクト (対象の namespace、Pod ゲートウェイ、または動的ホップからそれらをホストする namespace など) の更新が行われたときのみです。

静的割り当て
IP アドレスを直接指定します。
動的割り当て

namespace と Pod セレクター、およびオプションのネットワーク割り当て定義を使用して、IP アドレスを間接的に指定します。

  • ネットワーク割り当て定義の名前が指定されている場合は、ネットワーク割り当ての外部ゲートウェイ IP アドレスが使用されます。
  • ネットワーク割り当て定義の名前が指定されていない場合は、Pod 自体の外部ゲートウェイ IP アドレスが使用されます。ただし、このアプローチは、Pod が hostNetworktrue に指定して設定されている場合にのみ機能します。

26.12.3. AdminPolicyBasedExternalRoute オブジェクトの設定

次のプロパティーを使用して、クラスタースコープの AdminPolicyBasedExternalRoute オブジェクトを定義できます。namespace は、一度に 1 つの AdminPolicyBasedExternalRoute CR でのみ選択できます。

Expand
表26.18 AdminPolicyBasedExternalRoute オブジェクト
フィールド説明

metadata.name

string

AdminPolicyBasedExternalRoute オブジェクトの名前を指定します。

spec.from

string

ルーティングポリシーが適用される namespace セレクターを指定します。外部トラフィックでは namespaceSelector のみがサポートされます。以下に例を示します。

from:
  namespaceSelector:
    matchLabels:
      kubernetes.io/metadata.name: novxlan-externalgw-ecmp-4059
Copy to Clipboard Toggle word wrap

namespace を対象にできるのは、1 つの AdminPolicyBasedExternalRoute CR のみです。namespace が複数の AdminPolicyBasedExternalRoute CR によって選択されている場合、同じ namespace を対象とする 2 番目以降の CR で failed エラーステータスが発生します。更新を適用するには、ポリシーが再評価され、変更が適用されるように、ポリシー自体またはポリシーに関連するオブジェクト (対象の namespace、Pod ゲートウェイ、または動的ホップからそれらをホストする namespace など) を変更する必要があります。

spec.nextHops

object

パケットの転送先を指定します。staticdynamic のいずれか、または両方である必要があります。少なくとも 1 つのネクストホップを定義する必要があります。

Expand
表26.19 nextHops オブジェクト
フィールド説明

static

array

静的 IP アドレスの配列を指定します。

dynamic

array

外部ゲートウェイターゲットとして使用するネットワーク割り当て定義で設定された Pod に対応する Pod セレクターの配列を指定します。

Expand
表26.20 nextHops.static オブジェクト
フィールド説明

ip

string

次の宛先ホップの IPv4 アドレスまたは IPv6 アドレスを指定します。

bfdEnabled

boolean

オプション: ネットワークで双方向転送検出 (BFD) がサポートされているかどうかを指定します。デフォルト値は false です。

Expand
表26.21 nextHops.dynamic オブジェクト
フィールド説明

podSelector

string

[set-based](https://kubernetes.io/docs/concepts/overview/working-with-objects/labels/#set-based-requirement) ラベルセレクターを指定して、このネットワークに一致する namespace 内の Pod をフィルターします設定。

namespaceSelector

string

set-based セレクターを指定して、podSelector が適用される namespace をフィルターします。このフィールドには値を指定する必要があります。

bfdEnabled

boolean

オプション: ネットワークで双方向転送検出 (BFD) がサポートされているかどうかを指定します。デフォルト値は false です。

networkAttachmentName

string

オプション: ネットワークアタッチメント定義の名前を指定します。名前は、Pod に関連付けられた論理ネットワークのリストと一致する必要があります。このフィールドが指定されていない場合は、Pod のホストネットワークが使用されます。ただし、ホストネットワークを使用するには、Pod をホストネットワーク Pod として設定する必要があります。

26.12.3.1. セカンダリー外部ゲートウェイ設定の例

次の例では、AdminPolicyBasedExternalRoute オブジェクトは、ラベルが kubernetes.io/metadata.name: novxlan-externalgw-ecmp-4059 の namespace 内にある Pod の外部ゲートウェイとして 2 つの静的 IP アドレスを設定します。

apiVersion: k8s.ovn.org/v1
kind: AdminPolicyBasedExternalRoute
metadata:
  name: default-route-policy
spec:
  from:
    namespaceSelector:
      matchLabels:
        kubernetes.io/metadata.name: novxlan-externalgw-ecmp-4059
  nextHops:
    static:
    - ip: "172.18.0.8"
    - ip: "172.18.0.9"
Copy to Clipboard Toggle word wrap

次の例では、AdminPolicyBasedExternalRoute オブジェクトが動的外部ゲートウェイを設定します。外部ゲートウェイに使用される IP アドレスは、選択した各 Pod に関連付けられた追加のネットワーク割り当てから派生します。

apiVersion: k8s.ovn.org/v1
kind: AdminPolicyBasedExternalRoute
metadata:
  name: shadow-traffic-policy
spec:
  from:
    namespaceSelector:
      matchLabels:
        externalTraffic: ""
  nextHops:
    dynamic:
    - podSelector:
        matchLabels:
          gatewayPod: ""
      namespaceSelector:
        matchLabels:
          shadowTraffic: ""
      networkAttachmentName: shadow-gateway
    - podSelector:
        matchLabels:
          gigabyteGW: ""
      namespaceSelector:
        matchLabels:
          gatewayNamespace: ""
      networkAttachmentName: gateway
Copy to Clipboard Toggle word wrap

次の例では、AdminPolicyBasedExternalRoute オブジェクトは静的外部ゲートウェイと動的外部ゲートウェイの両方を設定します。

apiVersion: k8s.ovn.org/v1
kind: AdminPolicyBasedExternalRoute
metadata:
  name: multi-hop-policy
spec:
  from:
    namespaceSelector:
      matchLabels:
        trafficType: "egress"
  nextHops:
    static:
    - ip: "172.18.0.8"
    - ip: "172.18.0.9"
    dynamic:
    - podSelector:
        matchLabels:
          gatewayPod: ""
      namespaceSelector:
        matchLabels:
          egressTraffic: ""
      networkAttachmentName: gigabyte
Copy to Clipboard Toggle word wrap

26.12.4. セカンダリー外部ゲートウェイの設定

クラスター内の namespace のデフォルトネットワークに外部ゲートウェイを設定できます。

前提条件

  • OpenShift CLI (oc) がインストールされている。
  • cluster-admin 権限を持つユーザーとしてクラスターにログインしている。

手順

  1. AdminPolicyBasedExternalRoute オブジェクトを含む YAML ファイルを作成します。
  2. 管理ポリシーベースの外部ルートを作成するには、次のコマンドを入力します。

    $ oc create -f <file>.yaml
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <file>
    前の手順で作成した YAML ファイルの名前を指定します。

    出力例

    adminpolicybasedexternalroute.k8s.ovn.org/default-route-policy created
    Copy to Clipboard Toggle word wrap

  3. 管理ポリシーベースの外部ルートが作成されたことを確認するには、次のコマンドを入力します。

    $ oc describe apbexternalroute <name> | tail -n 6
    Copy to Clipboard Toggle word wrap

    ここでは、以下のようになります。

    <name>
    AdminPolicyBasedExternalRoute オブジェクトの名前を指定します。

    出力例

    Status:
      Last Transition Time:  2023-04-24T15:09:01Z
      Messages:
      Configured external gateway IPs: 172.18.0.8
      Status:  Success
    Events:  <none>
    Copy to Clipboard Toggle word wrap

26.12.5. 関連情報

トップに戻る
Red Hat logoGithubredditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。 最新の更新を見る.

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

Theme

© 2025 Red Hat