Hello everyone
I am seeing that some good amount of discussion is happening around multi-networking, hence thought this is the right time to introduce "CNI-Genie" plugin for Kubernetes. Here is the GitHub repo with working source code and documentation.
https://github.com/Huawei-PaaS/CNI-Genie/
This is something that we‘ve tested successfully with multi-vendor networking solutions running on a single host that too without making any changes to existing Kubernetes code.
CNI Genie is designed to provide the following features:
1. Multiple CNI plugins are available to users in runtime. The user can offer any of the available CNI plugins to containers upon creating them
2. Multiple IP addresses can be injected into a single container making the container reachable across multiple networks
3. Upon creating a pod, the user can manually select the logical network, or multiple logical networks, that the pod should be added to
4. If upon creating a pod no logical network is included in the yaml configuration, CNI Genie will automatically select one of the available CNI plugins
5. CNI Genie stores records of requests made to each CNI plugin for logging and auditing purposes and it can generate reports upon request
6. Network policy - TBD
7. Network access control - TBD
Note: CNI Genie is NOT a routing solution! It gets IP addresses from various CNSs
Right now CNI-Genie has been developed to addresses only Pt. 1 of the above User stories. But we are working on it to cover rest of the points in near future.