I would like to start by thanking the Developers and Community, Jitsi really a top notch video conferencing tool, the documentation is good and the community resources are extensive.
On to the question.
In order to scale, I have gotten jvb working on a separate (from the main install) google VM.
It seems that the important bits are the ice4j settings eg:
Now I have moved the installation of the components into kubernetes.
All of the separate parts are functional other than the video bridge.
It would seem that the problem is that in kubernetes the ingress IP and the egress IP of a service will never match.
This is a normal occurrence when setting up a load balancer in-front of a cloud service. (that ingress and egress will differ)
For example in the logs we see that the egress (as discovered by the stun server) is 35.x.x.z
[jitsi-meet-rc1-videobridge-0-5969576995-66d56] INFO: Discovered public address 35.x.x.z:56346/udp from STUN server 18.104.22.168:19302/udp using local address 10.x.x.x:0/udp
But the static IP assigned the the LoadBalancer in kubernetes is 35.x.x.y
jitsi-videobridge LoadBalancer 10.x.x.x 35.x.x.y
leading to a failure to pair:
[jitsi-meet-rc1-videobridge-0-84d9495bd6-mvgd7] INFO: Update remote candidate for stream-53cc3e7f.RTP: 192.168.0.186:34837/udp [jitsi-meet-rc1-videobridge-0-84d9495bd6-mvgd7] INFO: new Pair added: 10.4.2.5:10000/udp/host -> 192.168.0.186:34837/udp/host (stream-53cc3e7f.RTP). [jitsi-meet-rc1-videobridge-0-84d9495bd6-mvgd7] INFO: Pair failed: 10.4.2.5:10000/udp/host -> 192.168.0.186:34837/udp/host (stream-53cc3e7f.RTP)
there seems to have been some solution to this. eg in this thread:
where I am told that the traffic does this:
client → 443 → nlb → 443 → ingress → 10000 → service → 443 → jvb
Which, uh, I don’t really understand (that’s a lot of hops!)
So I guess my question is, can the ice4j as implemented in jvb work when ingress and egress public ips differ? I do not see how to make these IPs one and the same in Google kubernetes engine.
Thanks in advance!