This module is responsible for providing a network between multiple nodes in a cluster using the cilium module.
Limitations
- Service types
NodePortandLoadBalancerdo not work with hostNetwork endpoints in theDSRLB mode. Switch toSNATif it is required. HostPortPods will bind only to one interface IP. If there are multiple interfaces/IPs present, Cilium will select only one of them, preferring private IP space.- Kernel requirements.
- The
cni-ciliummodule requires a Linux kernel version >=5.7. - For the
cni-ciliummodule to work together with the istio, openvpn or node-local-dns module, a Linux kernel version >=5.7is required.
- The
- OS compatibility issues:
- Ubuntu:
- not working on 18.04
- to work on 20.04 you need to install HWE kernel
- CentOS:
- 7 (needs new kernel from repository)
- 8 (needs new kernel from repository)
- Ubuntu:
A note about CiliumClusterwideNetworkPolicies
- Make sure that you deploy initial set of CiliumClusterwideNetworkPolicies with
policyAuditModeconfiguration options set totrue. Otherwise you are degrading cluster operation or even completely losing SSH connectivity to all Kubernetes Nodes. You can remove the option once allCiliumClusterwideNetworkPolicyobjects are applied and you’ve verified their effect in the Hubble UI. -
Make sure to deploy the following rule, otherwise control-plane will fail for up to 1 minute on
cilium-agentrestart. This happens due to conntrack table reset. Referencingkube-apiserverentity helps us to “circumvent” the bug.apiVersion: "cilium.io/v2" kind: CiliumClusterwideNetworkPolicy metadata: name: "allow-control-plane-connectivity" spec: ingress: - fromEntities: - kube-apiserver nodeSelector: matchLabels: node-role.kubernetes.io/control-plane: ""
A note about Cilium work mode change
If you change the Cilium operating mode (the tunnelMode parameter) from Disabled to VXLAN or vice versa, you must restart all nodes, otherwise there may be problems with the availability of Pods.
A note about disabling the kube-proxy module
Cilium has the same functionality as the kube-proxy module, so the latter is automatically disabled when the cni-cilium module is enabled.
A note about fault-tolerant Egress Gateway
Feature is only available in Enterprise Edition
Basic mode
Using pre-configured public IPs of egress-gateway nodes.
Virtual IP mode
Allows you to dynamically assign additional IP addresses to nodes.