Jitsi-meet Kubernetes

Hi All,

I would like to ask if someone has experience deploying Jitsi-meet in the Kubernetes in Azure or Aws cloud.

  1. Do I need turn server if Jitsi services (Jicofo, Jvb, Jitsi-meet, prosody) are deploy in K8s where kubernetes deployment contains K8s Ingress, ClusterIp etc.

  2. NAT_HARVESTER_PUBLIC_ADDRESS should be set to K8s Ingress public address?

Best regards,

That is the ip address which you can use from Internet to access the machine where jvb is deployed. This is the address the clients will use the send the media to.

Thanks Damian,

I have some issue with K8s, I can join to the room I can see participants but the media are not sent.
From the client perspective I’m receiving ‘Bridge Channel send: no opened channel.’
In the SDP there is proper candidate pair for that connection.

Regards,

Have you configured the port forwarding?

I have K8s Ingress/ ClusterIP configuration which forward traffic to 4443/tcp and 10000/udp
and NAT_HARVESTER_PUBLIC_ADDRESS is set to Ingress Ip ( public Ip visible from the outside network)

I think this maybe similar case: Open ports NAT

Have you set the private address?

No I don’t think so. In Jvb? Could you point me the documentation or the param name which should be set?

Here it is

1 Like

Damian,
What below warning means?
org.ice4j.ice.harvest.CandidateHarvesterSetElement.setEnabled() Disabling: org.ice4j.ice.harvest.MappingCandidateHarvester, face=/ip, mask=/ip

Hello,

Damian thank you for your help. I’m able to create p2p calls, I still have some issue with conference calls.
I’ve set up turn server (coturn) with changes to prosody, jitsi-meet . I’m using android device (jitsi-meet, react) to stream and web viewer to view the stream.
Is it something specific in jitsi-meet on android device according to turn server configuration?
Can I perform some test to check if I’ve configured all components correctly?

Regards

Hi,

Just to close this thread, Jitsi was properly configured from the begining, the issue with group calls was caused by my lack of knowladge about the infrastructure. After small changes in K8s infra (routing udp packets to proper K8s service) everything is working as should be.

Thanks,

1 Like

Hi,

We have the very same issue when deploying on GCP.

Can you please post more details what was issue and how did you solve it.

Thanks.

Hi,

In my case it’s the K8s ingress configuration allowing to properly forward UDP packets from the outside network through K8s Ingress to K8s Service. The changes were done in the K8s ecosystem and I’m not aware exactly how it was done.

What I’ve done first was to check if I can receive any UDP traffic on any port (10000) in the K8s Pod that is going from the outside of the K8s network.

Regards

1 Like

Hi,
Thank you for the reply.
Yes we are able to receive udp traffic on 10000.

But issue is still there.

Maybe the issue is in different place. In my case the problem was strictly with the UDP traffic to K8s Pod.
Can you describe your installation/ configuration and scenario? What exactly is not working?

Thanks,

It is deployed in GCP.
Example used: https://github.com/jitsi/docker-jitsi-meet/tree/dev/examples/kubernetes.

If two users connect to the meeting p2p is used and connection works.
If third users connect just blank screens are shown no audio and video.

Here is jvb log

s6-init] making user provided files available at /var/run/s6/etc…exited 0.
[s6-init] ensuring user provided files have correct perms…exited 0.
[fix-attrs.d] applying ownership & permissions fixes…
[fix-attrs.d] done.
[cont-init.d] executing container initialization scripts…
[cont-init.d] 01-set-timezone: executing…
[cont-init.d] 01-set-timezone: exited 0.
[cont-init.d] 10-config: executing…
[cont-init.d] 10-config: exited 0.
[cont-init.d] done.
[services.d] starting services
[services.d] done.
JVB 2020-03-26 00:11:34.585 INFO: [1] util.NetworkUtils.().117 java.net.preferIPv6Addresses=null
JVB 2020-03-26 00:11:34.619 INFO: [1] util.NetworkUtils.().118 java.net.preferIPv4Stack=null
JVB 2020-03-26 00:11:36.658 INFO: [10] org.jitsi.service.libjitsi.LibJitsi.log() Successfully started LibJitsi using as implementation: org.jitsi.impl.libjitsi.LibJitsiOSGiImpl
JVB 2020-03-26 00:11:36.755 INFO: [10] impl.configuration.ConfigurationActivator.log() Using properties file configuration store.
JVB 2020-03-26 00:11:36.770 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vendor=Oracle Corporation
JVB 2020-03-26 00:11:36.772 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.ice4j.ice.CONSENT_FRESHNESS_INTERVAL=3000
JVB 2020-03-26 00:11:36.777 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.java.launcher=SUN_STANDARD
JVB 2020-03-26 00:11:36.779 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.ice4j.ice.harvest.AbstractUdpListener.SO_RCVBUF=10485760
JVB 2020-03-26 00:11:36.784 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.management.compiler=HotSpot 64-Bit Tiered Compilers
JVB 2020-03-26 00:11:36.786 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.impl.neomedia.transform.srtp.SRTPCryptoContext.checkReplay=false
JVB 2020-03-26 00:11:36.795 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() os.name=Linux
JVB 2020-03-26 00:11:36.798 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.boot.class.path=/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/resources.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/rt.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jsse.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jce.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/charsets.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/jfr.jar:/usr/lib/jvm/java-8-openjdk-amd64/jre/classes
JVB 2020-03-26 00:11:36.800 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.util.logging.config.file=/config/logging.properties
JVB 2020-03-26 00:11:36.801 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=10.56.8.13
JVB 2020-03-26 00:11:36.803 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vm.specification.vendor=Oracle Corporation
JVB 2020-03-26 00:11:36.809 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.service.neomedia.MediaService.ENABLE_H264_FORMAT=true
JVB 2020-03-26 00:11:36.813 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.runtime.version=1.8.0_242-8u242-b08-1~deb9u1-b08
JVB 2020-03-26 00:11:36.814 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.ice4j.ice.CONSENT_FRESHNESS_MAX_RETRANSMISSIONS=5
JVB 2020-03-26 00:11:36.815 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.service.neomedia.VideoMediaStream.REQUEST_RETRANSMISSIONS=true
JVB 2020-03-26 00:11:36.815 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() user.name=jvb
JVB 2020-03-26 00:11:36.821 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.impl.neomedia.rtp.ENABLE_AST_RBE=true
JVB 2020-03-26 00:11:36.824 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() net.java.sip.communicator.impl.configuration.USE_PROPFILE_CONFIG=true
JVB 2020-03-26 00:11:36.836 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() user.language=en
JVB 2020-03-26 00:11:36.837 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.impl.neomedia.transform.csrc.SsrcTransformEngine.dropMutedAudioSourceInReverseTransform=true
JVB 2020-03-26 00:11:36.839 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.boot.library.path=/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/amd64
JVB 2020-03-26 00:11:36.846 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() net.java.sip.communicator.service.media.MIN_PORT_NUMBER=10001
JVB 2020-03-26 00:11:36.847 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() net.java.sip.communicator.packetlogging.PACKET_LOGGING_ENABLED=false
JVB 2020-03-26 00:11:36.859 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.videobridge.rest=false
JVB 2020-03-26 00:11:36.867 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.version=1.8.0_242
JVB 2020-03-26 00:11:36.874 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() user.timezone=Asia/Dubai
JVB 2020-03-26 00:11:36.878 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.arch.data.model=64
JVB 2020-03-26 00:11:36.882 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.ice4j.ice.CONSENT_FRESHNESS_WAIT_INTERVAL=500
JVB 2020-03-26 00:11:36.885 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.endorsed.dirs=/usr/lib/jvm/java-8-openjdk-amd64/jre/lib/endorsed
JVB 2020-03-26 00:11:36.890 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.cpu.isalist=
JVB 2020-03-26 00:11:36.894 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.jnu.encoding=ANSI_X3.4-1968
JVB 2020-03-26 00:11:36.899 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() file.encoding.pkg=sun.io
JVB 2020-03-26 00:11:36.902 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() file.separator=/
JVB 2020-03-26 00:11:36.908 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.specification.name=Java Platform API Specification
JVB 2020-03-26 00:11:36.909 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.class.version=52.0
JVB 2020-03-26 00:11:36.910 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() user.country=US
JVB 2020-03-26 00:11:36.915 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() net.java.sip.communicator.service.media.DISABLE_VIDEO_SUPPORT=true
JVB 2020-03-26 00:11:36.918 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.home=/usr/lib/jvm/java-8-openjdk-amd64/jre
JVB 2020-03-26 00:11:36.924 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vm.info=mixed mode
JVB 2020-03-26 00:11:36.925 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() os.version=4.14.138+
JVB 2020-03-26 00:11:36.925 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() path.separator=:
JVB 2020-03-26 00:11:36.926 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vm.version=25.242-b08
JVB 2020-03-26 00:11:36.935 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() net.java.sip.communicator.CONFIGURATION_FILE_IS_READ_ONLY=true
JVB 2020-03-26 00:11:36.941 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.awt.printerjob=sun.print.PSPrinterJob
JVB 2020-03-26 00:11:36.943 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.io.unicode.encoding=UnicodeLittle
JVB 2020-03-26 00:11:36.949 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() awt.toolkit=sun.awt.X11.XToolkit
JVB 2020-03-26 00:11:36.950 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() user.home=/usr/share/jitsi-videobridge
JVB 2020-03-26 00:11:36.951 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.specification.vendor=Oracle Corporation
JVB 2020-03-26 00:11:36.957 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.library.path=/usr/share/jitsi-videobridge/lib/native/linux-64
JVB 2020-03-26 00:11:36.959 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vendor.url=http://java.oracle.com/
JVB 2020-03-26 00:11:36.960 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.jitsi.service.audionotifier.AudioNotifierService=org.jitsi.impl.neomedia.notify.AudioNotifierServiceImpl
JVB 2020-03-26 00:11:36.962 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.vm.vendor=Oracle Corporation
JVB 2020-03-26 00:11:36.969 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() org.ice4j.ice.CONSENT_FRESHNESS_MAX_WAIT_INTERVAL=500
JVB 2020-03-26 00:11:36.969 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() java.runtime.name=OpenJDK Runtime Environment
JVB 2020-03-26 00:11:36.972 INFO: [10] org.jitsi.impl.configuration.ConfigurationServiceImpl.log() sun.java.command=org.jitsi.videobridge.Main --apis=none

Also part of log when error happen:

JVB 2020-03-26 11:02:16.222 INFO: [82497] org.ice4j.ice.Component.log() Update remote candidate for stream.RTP: 192.168.1.144:52717/udp
JVB 2020-03-26 11:02:16.222 INFO: [82497] org.ice4j.ice.Component.log() Not adding duplicate remote candidate: 192.168.1.144:52717/udp
JVB 2020-03-26 11:02:16.222 INFO: [82497] org.ice4j.ice.Component.log() Update remote candidate for stream.RTP: 192.168.1.144:52717/udp
JVB 2020-03-26 11:02:16.222 INFO: [82497] org.ice4j.ice.Component.log() Not adding duplicate remote candidate: 192.168.1.144:52717/udp
JVB 2020-03-26 11:02:16.222 INFO: [82497] org.ice4j.ice.Component.log() Update remote candidate for stream.RTP: 192.168.1.144:9/tcp
JVB 2020-03-26 11:02:16.222 INFO: [82497] org.ice4j.ice.Component.log() new Pair added: 10.56.8.13:4443/tcp/host -> 192.168.1.144:9/tcp/host (stream.RTP). Local ufrag cn9i21e4aqc2gv
JVB 2020-03-26 11:02:16.222 INFO: [82497] org.ice4j.ice.Component.log() new Pair added: 104.199.97.209:4443/tcp/srflx -> 192.168.1.144:9/tcp/host (stream.RTP). Local ufrag cn9i21e4aqc2gv
JVB 2020-03-26 11:02:16.227 INFO: [82497] org.ice4j.ice.Component.log() new Pair added: 34.76.206.36:4443/tcp/srflx -> 192.168.1.144:9/tcp/host (stream.RTP). Local ufrag cn9i21e4aqc2gv
JVB 2020-03-26 11:02:16.228 INFO: [82496] org.ice4j.ice.Component.log() Update remote candidate for stream.RTP: 192.168.1.144:52717/udp
JVB 2020-03-26 11:02:16.228 INFO: [82496] org.ice4j.ice.Component.log() Not adding duplicate remote candidate: 192.168.1.144:52717/udp
JVB 2020-03-26 11:02:16.228 INFO: [82496] org.ice4j.ice.Component.log() Update remote candidate for stream.RTP: 192.168.1.144:52717/udp
JVB 2020-03-26 11:02:16.228 INFO: [82496] org.ice4j.ice.Component.log() Not adding duplicate remote candidate: 192.168.1.144:52717/udp
JVB 2020-03-26 11:02:16.255 INFO: [82492] org.ice4j.ice.ConnectivityCheckClient.log() Pair failed: 10.56.8.13:10000/udp/host -> 192.168.1.121:43792/udp/host (stream.RTP)
JVB 2020-03-26 11:02:16.284 INFO: [82499] org.ice4j.ice.ConnectivityCheckClient.log() Pair failed: 10.56.8.13:10000/udp/host -> 192.168.1.144:52717/udp/host (stream.RTP)
JVB 2020-03-26 11:02:16.311 INFO: [82499] org.ice4j.ice.ConnectivityCheckClient.log() Pair failed: 10.56.8.13:4443/tcp/host -> 192.168.1.144:9/tcp/host (stream.RTP)

1 Like