19.9. ゲートウェイモードの設定
クラスター管理者は、gatewayConfig オブジェクトを設定して、外部トラフィックをクラスターからどのように送信するかを管理できます。これを行うには、routingViaHost 仕様を true (ローカルモードの場合) または false (共有モードの場合) に設定します。
ローカルゲートウェイモードでは、トラフィックがホストを経由してルーティングされ、その結果、ホストのルーティングテーブルに適用されます。共有ゲートウェイモードでは、トラフィックはホストを経由してルーティングされません。代わりに、Open vSwitch (OVS) がトラフィックをノード IP インターフェイスに直接出力します。
19.9.1. ローカルおよび共有ゲートウェイモードの設定 リンクのコピーリンクがクリップボードにコピーされました!
クラスター管理者は、Cluster Network Operator の gatewayConfig 仕様を使用してゲートウェイモードを設定できます。次の手順を使用して、routingViaHost フィールドを true (ローカルモードの場合) または false (共有モードの場合) に設定できます。
ノードのホストネットワークを、OVN-Kubernetes に関連しないトラフィックのルーターとして機能させる必要がある場合は、オプションのステップ 4 に従って、ローカルゲートウェイモードとともに IP 転送を有効にできます。たとえば、ローカルゲートウェイモードと IP 転送を組み合わせた使用例としては、次のようなものが考えられます。
- すべての Pod Egress トラフィックをノードの IP 経由で転送するように設定する
- OVN-Kubernetes CNI と外部ネットワークアドレス変換 (NAT) デバイスを統合する
- カーネルルーティングテーブルを使用するように OVN-Kubernetes CNI を設定する
前提条件
- 管理者権限を持つユーザーとしてログインしている。
手順
次のコマンドを実行して、既存のネットワーク設定をバックアップします。
$ oc get network.operator cluster -o yaml > network-config-backup.yamlローカルゲートウェイモードを使用するために、次のコマンドを実行して
routingViaHostパラメーターをtrueに設定します。$ oc patch networks.operator.openshift.io cluster --type=merge -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"routingViaHost": true}}}}}'次のコマンドを実行して、ローカルゲートウェイモードが設定されていることを確認します。
$ oc get networks.operator.openshift.io cluster -o yaml | grep -A 5 "gatewayConfig"出力例
apiVersion: operator.openshift.io/v1 kind: Network metadata: name: cluster # ... gatewayConfig: ipv4: {} ipv6: {} routingViaHost: true1 genevePort: 6081 ipsecConfig: # ...- 1
- 値を
trueにするとローカルゲートウェイモードが設定され、値をfalseにすると共有ゲートウェイモードが設定されます。ローカルゲートウェイモードでは、トラフィックがホストを経由してルーティングされます。共有ゲートウェイモードでは、トラフィックはホストを経由してルーティングされません。
オプション: 次のコマンドを実行して、IP 転送をグローバルに有効にします。
$ oc patch network.operator cluster --type=merge -p '{"spec":{"defaultNetwork":{"ovnKubernetesConfig":{"gatewayConfig":{"ipForwarding": "Global"}}}}}'次のコマンドを実行して、
ipForwarding仕様がGlobalに設定されていることを確認します。$ oc get networks.operator.openshift.io cluster -o yaml | grep -A 5 "gatewayConfig"出力例
apiVersion: operator.openshift.io/v1 kind: Network metadata: name: cluster # ... gatewayConfig: ipForwarding: Global ipv4: {} ipv6: {} routingViaHost: true genevePort: 6081 # ...