Kubernetes allow various flavours:
- Kubenet: the default one, implements basic cbr0 using the bridge and host-local CNI plugins;
- Calico: your default choice since it is good for various purposes. Don’t forget to set the MTU in the ConfigMap if you are using jumbo frames.
- Cilium: for security reasons this could be your option. Also it seems to be more easy to configure network policies than calico.
- Flannel: You have low resource nodes in your cluster (only few GB of RAM, few cores) and you don’t need security features, go with flannel.
- Weave Net: if you need to encrypt your network for security reasons, go with WeaveNet. Don’t forget to set your MTU size if you are using jumbo frames and activate encryption by giving a password in an environment variable. But then again, forget about performance, this is the price for encryption.