dougbtv/ratchet-cni

how to attach more than one ratchet interface to a pod

Closed this issue · 2 comments

Hi Doug,
I was just about to start building my own CNI plugin when I came across your post+repo about ratchet. My goal is to have arbitrary number of interfaces to a POD and interconnect them with other PODs on different nodes (the idea is to use k8s to orchestrate large-scale network topologies). I'm trying to understand if I can somehow re-use an existing CNI plugin before attempting to write my own.
So I've gone throught your repo and from what I understood, a ratchet interface is a single p2p interface in a POD, and there's no option to create many of them, right?
And also wrapping it all in multus wouldn't help since the p2p link information is taken from pod labels, right?

Hey @networkop -- feel free to re-use or otherwise fork Ratchet, it was really just a PoC / is basically no longer maintained... It might be an OK starting point for what you're looking to do. But -- you're right, it really only does an interface for each pod, so... Like a chain of pods, works fine, and works across hosts (using vxlan). But, it doesn't do as well for say pod -> n-number of pods. Could possibly be modified.

You might also want to check out my colleague Tomo's kokonet which accomplishes better and more dynamic connection of pods across hosts using VPP as a kind of patch panel to connect a bunch of pods together. Again, primarily a PoC while exploring some similar ideas.

Multus is still under maintenance, and I contribute to it... You might consider pulling up an issue there or joining the Multus slack @ https://intel-corp-team.slack.com and giving us a chat. It sounds like an interesting scenario. Something that people have done before is spin up multiple overlay networks, like... Spin up more and more flannel instances and connect them together that way. Or possibly, you could use vlans or macvlan to try to network them together, and of course Multus will let you create n-number of interfaces for each pod.

thanks @dougbtv , I've asked the question on slack with a bit more detail about what I'm after. And thanks, I'll check out kokonet, looks a bit sparse on documentation but I'll spend some more time tomorrow.