Skip to content

Design #1

@tsuzu

Description

@tsuzu

WHY

  • インターネットを介してKubernetesクラスタ同士のネットワークを接続したい
  • 暗号化したい
  • NATの内側にあっても良いようにしたい
  • 既存のCNIの課題
    • 暗号化を行うものや、クラスタ同士を接続できるものはある
    • 一方で、Full meshのReachabilityが必須となる

WHAT

暗号化したP2PのFull mesh P2P(with NAT traversal) CNIを開発する。

HOW

https://github.com/tailscale/tailscale がOSSとなっており、これがFull mesh P2P(with NAT traversal) CNIを提供してくれているのでいい感じに実装する。

その他要件

  • Control Planeを外部に置くことができる(ルート情報の交換や接続の確立のための情報の交換)
  • Control PlaneへのAPI経由で経路情報を追加できる(TailscaleにおけるSubnet router機能)
    • Podにsubnet単位でroutingできるようにしたい

コンポーネント

  • Control Plane: Tailscaleで言うところのipnserver
    • 上記で説明した機能を担当する。gRPC等で実装することを想定。
  • Controller(DaemonSet/Kubernetes): Wireguardのインターフェースを作成し、Control Planeと接続してインターフェースの更新を行う。
  • (CNI): bridge CNI等で事足りるなら不要だが必要に応じて開発

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentation

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions