メインコンテンツへスキップ
見出し画像

k3sと物理ネットワークの境界 #12|Ingress・VIP・NFSをどうつないだか

    この記事で分かること

    • Pod CIDR / Service CIDRと物理VLANの違い

    • k3sで「物理IP」が必要になる場所

    • InternetからIngressまでの経路

    • NFS StorageがKubernetes Networkとどう接続するか

    • Cluster台数やFirewall Objectが実機とズレる「運用後の現実」

    ⏪ 前の記事:ログが来ない原因はログサーバではなかった #11|FortiGate・Ubiquiti・ESXi・NASのSyslog集約

    k3sでNetwork障害が起きると、Kubernetesだけを見続けて沼ることがある。

    PodはRunning。 Serviceもある。 Ingressもある。

    それでも外から届かない。 NFSにも届かない。

    理由は、k3sのNetworkにはCluster内部の世界と、物理LANへ出る境界があるからだ。

    Node IP、Pod IP、Service IP、Ingress、VIP、Storage。

    これらを全部同じ「KubernetesのIP」として扱わない。

    画像

    Pod CIDR / Service CIDRは物理VLANを直接消費しない

    Pod CIDRとService CIDRはCluster内部のAddress Spaceだ。

    物理側のApp VLANをPod数だけ消費するわけではない。

    一方、物理Network側で必要になるAddressはある。

    例えば、

    • Node

    • Ingress入口

    • LoadBalancer / VIP

    • 外部公開用Address

    • VM

    • Storage

    • Management

    だ。

    だからApp側のSubnet設計では、Pod数そのものより、

    Clusterが物理Networkへ接続する接点がどれだけ増えるか

    を見る。

    外部公開はPodへ直接入れない

    我が家の外部公開経路は、概念的にはこうなる。

    画像

    外部からNodePortやPodへ直接飛ばす構成にはしていない。

    入口を一度DMZ側へ寄せ、Security Layerを通してからIngressへ渡す。

    これで、

    Internet側の問題とCluster内部の問題を分けやすくなる。

    StorageはClusterの「外」にいる

    k3sから使うStorageとしてNAS/NFSがある。

    Podから見ればVolumeだが、物理的には別のStorage機器だ。

    つまり、

    画像

    という経路になる。

    NFSを使うなら111/2049等の必要な通信を、Node/Storage間だけ許可する。

    Clusterの中だけ見ていても、この経路は分からない。

    KubernetesのTroubleshootingで、

    「PVCはある」 「PodもRunning」

    なのにStorageへ到達できない場合、物理Network側も見る必要がある。

    「NodeがReady」だけでは外部公開は保証しない

    Nodeが全部Readyでも、

    Ingressまで外部通信が届くとは限らない。

    逆に、Ingressが動いていてもBackend ServiceのEndpointがなければ失敗する。

    実際のTroubleshootingでも、

    • PodはRunning

    • Pod IPへ直接到達できる

    • HTTP接続自体はできる

    • しかしIngress側ではService / Endpointの不整合

    という切り分けをしたことがある。

    Kubernetesでは、

    Physical Network
    Ingress
    Service
    Endpoint
    Pod
    

    を一段ずつ見る。

    これは#9のProxy Chainと同じ考え方だ。

    台帳と実機は時間とともにズレる

    ネットワーク更改の記事を書き始めた当初は、k3sを8台構成として扱っていた。

    運用を続けると、Readyとして見えているNode数と、FortiGateに残るAddress Object数が一致しない状態も出てくる。

    使わなくなったNode ObjectがFirewall側へ残る。

    Clusterは減ったのに台帳は減っていない。

    これは単なるKubernetesの話ではない。

    Network機器、DNS、監視、台帳の全てに「過去の構成」が残る

    という話だ。

    そして、これが次の記事につながる。

    実機設定を棚卸ししたら、noteに書いた自分の設計と、今動いている設定がいくつもズレていた。

    ⏩ 次回:#13 設計書と実機がズレていた|自宅ネットワークを棚卸しして見つけたDesign Drift

     
     
    ベンチャー→SES13年→現メガベンのインフラエンジニア。 自宅NW要塞でAI・Kubernetes・Local LLM・GPUを飼育中。 AIに開発を壊されて学んだ「任せ方・止め方・戻し方」を、成功談より失敗談多めで投下します。 Amazonアソシエイト参加

    あなたへのおすすめ