Rainier is a container network interface (CNI) plugin that creates one network interface for each container and attach it to an OVS bridge
- golang >= 1.11
- kubernetes
- kubernetes-cni
git clone [email protected]:charlesmchan/rainier.git
cd rainier
go build rainier.go
sudo mkdir -p /etc/cni/net.d
sudo mkdir -p /opt/cni/bin
sudo ln -s config /etc/cni/net.d/rainier.conf
sudo ln -s rainier /opt/cni/bin/rainier
sudo kubectl create -f service.yaml
service.yaml
will spawn 3 busybox
containers. All of them should get an IP address and should be able to ping one another if OVS is set to standalone mode
Kubernetes does not take DNS configuration returned from CNI. We need to configure DNS in the Kubernetes pod configuration
- Test cases
I have a bad sense of naming a project and I was eating rainier cherries while coding
Special thanks to @hwchiu