1.4. 既知の問題
OVN-Kubernetes は、ネットワークアドレス変換 (NAT) テーブルに iptable チェーンをセットアップして、NodePort サービスへの着信トラフィックを処理します。NodePort サービスに到達できない場合、または接続が拒否された場合は、ホストの iptable ルールをチェックして、関連するルールが適切に挿入されていることを確認してください。
次のコマンドを実行して、NodePort サービスの iptable ルールを表示します。
$ sudo iptables-save | grep NODEPORT
出力例
-A OUTPUT -j OVN-KUBE-NODEPORT -A OVN-KUBE-NODEPORT -p tcp -m addrtype --dst-type LOCAL -m tcp --dport 30326 -j DNAT --to-destination 10.43.95.170:80
OVN-Kubernetes は、NAT テーブル内の
OVN-KUBE-NODEPORT
iptable チェーンを設定して、パケットを宛先ポートと照合し、パケットをclusterIP
サービスに宛先ネットワークアドレスの変換 (DNAT) を行います。次に、DNAT されたパケットは、ホストのルーティングルールを経由してゲートウェイブリッジbr-ex
を介して OVN ネットワークにルーティングされます。次のコマンドを実行して、ホストのルーティングテーブルを表示します。
$ ip route
出力例
10.43.0.0/16 via 192.168.122.1 dev br-ex mtu 1400
このルーティングルールは、Kubernetes サービスの IP アドレス範囲と一致し、パケットをゲートウェイブリッジ
br-ex
に転送します。ホストでip_forward
を有効にする必要があります。パケットが OVS ブリッジbr-ex
に転送された後は、OVS の OpenFlow ルールによって処理されます。その後、OpenFlow はパケットを OVN ネットワークに誘導し、最終的に Pod に誘導します。