Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Design #1

Open
tsuzu opened this issue May 16, 2022 · 0 comments
Open

Design #1

tsuzu opened this issue May 16, 2022 · 0 comments
Labels
documentation Improvements or additions to documentation

Comments

@tsuzu
Copy link
Contributor

tsuzu commented May 16, 2022

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等で事足りるなら不要だが必要に応じて開発
@tsuzu tsuzu added the documentation Improvements or additions to documentation label May 16, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation
Projects
None yet
Development

No branches or pull requests

1 participant