Multihome servers and rke2 #6873
-
Hej All I have a question regarding multi-homed servers. From what I understand, to enable a pod to have two IP addresses, one can use the Multus CNI plugin. Our challenge is as follows: We have a multi-homed server where the second NIC is dedicated solely to a specific interface connection for client systems. The nature of this connection is that our pod acts as a TCP client, connecting to a TCP server that operates over the network accessible through the second NIC. We have tested this setup in a test cluster without Multus installed and without any NetworkAttachmentDefinition configured. It appears that the application within the pod had no issues connecting to the subnet via the second NIC. My question is whether this functionality is supported out of the box, or if it just happens to work by chance. My theory is that outgoing TCP connections are not an issue since Linux knows how to route the traffic, but perhaps I am mistaken. Second question is how does MetalLB in layer2 mode behave in such environment? |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments
-
hej hej! Traffic egressing the pod firstly reaches the node. There, depending on the node routes and the destination IP, the traffic will be forwarded to one interface or another. So, you are right, Linux knows how to route traffic correctly. Multus is normally used for use cases where the pod needs a second interface ( e.g. the app running in the pod uses L2 communication or it needs a very performing interface using things like DPDK/SR-IOV) MetalLB is typically used for scenarios where the TCP server is in the k8s cluster and you need a way for external clients to reach the server. This is not your use case. |
Beta Was this translation helpful? Give feedback.
-
Thank you for the prompt response! |
Beta Was this translation helpful? Give feedback.
hej hej! Traffic egressing the pod firstly reaches the node. There, depending on the node routes and the destination IP, the traffic will be forwarded to one interface or another. So, you are right, Linux knows how to route traffic correctly. Multus is normally used for use cases where the pod needs a second interface ( e.g. the app running in the pod uses L2 communication or it needs a very performing interface using things like DPDK/SR-IOV)
MetalLB is typically used for scenarios where the TCP server is in the k8s cluster and you need a way for external clients to reach the server. This is not your use case.