DDS Messaging & Kubernetes

4 posts / 0 new
Last post
Offline
Last seen: 10 months 3 weeks ago
Joined: 08/21/2023
Posts: 2
DDS Messaging & Kubernetes

Hello, 

 

I'm running a dss listenner in a kubernetes pod and the sender is outside of the cluster, I was able to come up with some special networking which allowed me to communicate with the pod outside of the cluster, however, when I do a packet capture, the messages seems to be seding i.e hearbeat and ACKNACK, but no data is displaying on the pod or does it show it in the rti admin console,. the data is being sent over vlan & sometimes I have tried with vvxlan which are essentially related, is there any specific flag that I need to set in the QOS profiles, or is there any configuration that I should be aware of when running a listener inside a pod

 

Offline
Last seen: 10 months 3 weeks ago
Joined: 05/23/2013
Posts: 64

Hello,

Can your sender directly send data to the IP address of the listener pod? Typically, when you send and receive data with pods form the outside of the cluster, you need to leverage Real-Time WAN Transport (RTWAN) as you cannot reach pods with the actual IP addresses of the pods. Instead, you should use public IP addresses provided by NodePort or LoadBalancer services. You mentioned you use special networking, so I guess you may not run into this. Did you create any k8s services for your pods? It would be great if you can provide some addtional details of your networking setup. 

https://community.rti.com/kb/how-use-real-time-wan-transport

Thanks,
Kyoungho

Offline
Last seen: 10 months 3 weeks ago
Joined: 08/21/2023
Posts: 2

Hello I made use of both multus which attached an external interface to the pod and use a load balancer wich allowed me to route traffic to my pod from outside of the cluster. However these are the latest eroors I'm getting when the traffic is reaching the node

WARN RTILogger [D100][ENABLE] ndds_TRANSPORT_udpv4_socketfactory_create _receive_socket: invalid port 32414

WARN RTILogger [D100][ENABLE] ndds_TRANSPORT_udpv4_socketfactory_create_recvresource_rrEA:!create socket

 

 

Offline
Last seen: 10 months 3 weeks ago
Joined: 05/23/2013
Posts: 64

Hello, 

Can you clarify which interface (external interface or default interface with a load balancer) you want to use for the communications with participants outside of the cluster? For testing with a specific interface, you can use the following configuration to restrict DDS traffic to a speicifc interface. 

https://community.rti.com/kb/how-do-i-restrict-rti-connext-use-only-subset-interfaces

If you want to test external communications with the default interface with a load balancer service, you can check out the following example (although it uses RTI Routing Service, it could give you an idea on how to configure with Real-Time WAN Transport). 

https://github.com/rticommunity/kubernetes-examples/tree/master/routingservice_rwt

I am not sure how Multus works with k8s services (Cluster IP, NopPort, LoadBalancer), so I would recommend you may want to validate your interfaces with Multus work fine with k8s services. 

Kyoungho