Ideas for Building a Custom CNI Plugin for Kubernetes Networking
Asked by
TechieNinja47
Hey folks! I'm currently working as a DevOps intern and I want to create a project that I can showcase on my resume. I'm looking to develop a custom CNI plugin, likely coding it in Go. My main goals are to create something that stands out for DevOps positions and to really dig into the core concepts of Linux networking, like namespaces, veth pairs, and routing tables. I'd love to hear your recommendations for projects that would be educational and impressive at the same time!
Answers
That's a solid idea! I'd recommend starting with a basic CNI setup using veth pairs, bridges, and IPAM. Once you've got that down, consider adding features like network policies or VXLAN. Understanding the packet flow is crucial, and it can really set you apart on your resume without getting too caught up in just flashy features.
Reply to this answer
Building a CNI plugin is a fantastic addition to your portfolio, as it shows you have a good grasp of kernel-level networking, which is quite rare for interns. To really make an impact on your resume, think about implementing network policy enforcement using iptables/nftables, similar to what Calico does. Being able to explain that in interviews will definitely help you stand out! Try to steer clear of basic bridge networking since itโs pretty common. Start with the Go CNI library on GitHub and make sure to write tests and clearly document your design choices in the README โ hiring managers actually read that stuff!
Reply to this answer
A fun challenge could be to recreate Flannel. You'd learn a ton, and you donโt necessarily need to use Kubernetes to test your work; you can play around with netns and other commands from iproute2.
Reply to this answer
Whoa, that might be a bit beyond intern level! Best of luck with your project though!
Reply to this answer
Check out this great starting point: [Altoros Blog](https://www.altoros.com/blog/kubernetes-networking-writing-your-own-simple-cni-plug-in-with-bash/). Go through it thoroughly to grasp every detail, and then brainstorm new ideas. Don't hesitate to do some research to come up with something original.
Reply to this answer
Add your answer
Answers are reviewed before publication.
Related Discussions