Kubernetes Jitsi Deployment

Hi All,
We have been stuck with deploying JITSI on kubernetes for weeks now, any direction and help will be highly appreciated,
i am have been deploying with following templates
prosody-deployment.yaml.txt (958 Bytes)
web-service.yaml.txt (240 Bytes)
web-ingress.yaml.txt (327 Bytes)
web-deployment.yaml.txt (761 Bytes)
values.yaml.txt (1.0 KB)
prosody-service.txt (320 Bytes)
jvb-service-lb.yaml.txt (629 Bytes)
jvb-deployment.yaml.txt (992 Bytes)
jicofo-deployment.yaml.txt (782 Bytes)
Chart.txt (221 Bytes)

problem we are facing is there is no media(video and audio) on person joining the call,

from forums, we think the problem is JVB, so the errors we are facing in JVB (jvb log included)

null__logs__2020-07-13T07-19.json.txt (166.6 KB)

org.jitsi.videobridge.EndpointMessageTransport.log() No available transport channel, can't send a message

` E 2020-07-13T13:51:41.972137162Z JVB 2020-07-13 15:51:41.971 WARNING: [2411] org.ice4j.ice.Agent.log() Agent contains no IceMediaStream with name stream!

` E 2020-07-13T13:53:02.172785213Z JVB 2020-07-13 15:53:02.172 SEVERE: [2569] org.ice4j.socket.MergingDatagramSocket.log() Cannot find socket to remove.

I have been able to connect to jvb exposed to public
nc -vz -u 30000

there are almost no errors in other services

can you help in answering these questions

  • what will be the values of
    org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS={{ .Env.POD_IP }}

i have been using public ip mentioned above (nc command) ian public address, and for local i have been using docker ip ,

  • most forum question similar to say its a problem of firewall, but i have been running on 30000 and 30001 and both are open for me and can be checked

  • am i missing in sip-communicator.properties
    sip-communicator.properties.txt (208 Bytes)

i am putting my ingress behind cloudflare shoud that be a concern

i have prepared a terraform script and will be more than happy to contribute this one click deploy scripts

Any direction and assistance will be highly appreciated.
thanks again!!

@saghul @damencho any directions i can look up
let me share jwt token for a meet


This is the public address which people can use from Internet to reach out to the bridge?

Are you testing the port like this: Latest unstable JVB2 is broken with three more participants

You can try https://github.com/jefferyb/k8s-jitsi-meet and see if it works for you… I got it working for me, the only thing is I can’t seem to get working again is etherpad… I had it working once, and when I redeployed, I couldn’t get it to come up from a call… I was about post a post to ask when I saw your post.
I hope that works for you…

Yes ! this is my DOCKER_HOST_ADDRESS and yes this is open

this is my output

echo "123" | nc -vvv -u 32000
Connection to 30000 port [udp/*] succeeded!

i turned on another port on pod of 32000
Following up the thread you have mentioned
testing it by keeping a listener in the pod , i am unable to get any pings sent via sender, investigating it.

@jefferyb thanks you so much i will try to deploy this .

Hey @jefferyb , how are routing the UDP traffic to JVB pod, i saw that you are doing via ingress ?
currently you are passing your local home router address to DOCKER_HOST_ADDRESS, what to plan to put in cloud ?

Hey @Navdeep_agarwal, try running $ dig +short myip.opendns.com @resolver1.opendns.com and setting DOCKER_HOST_ADDRESS to that IP address and make sure that JVB_PORT is open to the public and see if that works… I haven’t tried it on any cloud yet, but will whenever I get some time…

Hello @jefferyb

Hope you made the Etherpad working. Can you share the details how you made it work?

Swathi Ambujakshan

Hello @swathikrishna_guru

I was able to get it to work, not sure what changed, but if I deploy using kustomize, https://github.com/jefferyb/k8s-jitsi-meet/tree/master/kustomize, or using the standard yaml, then everything works… It’s only when I use the ytt templates that the etherpad integration doesn’t work… I’ll have to check it again and see if I missed something…

You can try to use https://github.com/jefferyb/k8s-jitsi-meet/tree/master/kustomize and see if that works for you…

Good luck,

1 Like

@jefferyb @damencho i installed jitsi-meet with kubernetes followed by https://github.com/jitsi/docker-jitsi-meet/tree/master/examples/kubernetes and its working and now i have to configure SSL certificate (lets encrypts)?

  1. How to configure SSL with available crt.cert and key.key file ?
  2. How to create lets encrypts SSL ?
  3. What is path of config.js and interface_config.js file ?

you can use lets encrpyt issuer along with Cert-manager to achieve this. you can either use Nginx or Traeifk as ingress controller. Y

Yeah, like what @swathikrishna_guru said, you can use letsencrypt issuer along with cert-manager… For the files, those can be found under /config in your jitsi pod

$ kubectl exec -it jitsi-9b4447699-l448k -- ls /config/
config.js  interface_config.js	keys  nginx
1 Like

Can you provide me some reference link or any docs ? , because i tried but did not get success.


Hey @damencho @swathikrishna_guru @jefferyb
We are looking for an expert advise & steps in Cloud +Kubernetes+ Docker + Jitsi for refactoring existing server architecture. Currently we have an VM instance with Ubuntu 18.04 LTS running jitsi-docker with the basic docker-compose configuration (container for WEB, JICOFO, one JVB, PROSODY and one JIBRI).

We have to manage from 500 to 5000 concurrent users in different rooms so we need to add additional JVBs server for load balancing (with Kubernetes or with other better systems independent of cloud managed infrastucture). We need also the possibility to turn on or off the JVBs(Auto scale) dynamically based on the current traffic, without making changes on the whole systems.

We need also to know if there is a way to automatically handle the JVBs (for automated scaling up and scaling down of additional servers) using kubernetes or similar system if the system need more resources or at the peak of the system usage (for example from 09.00 to 18.00, CPU usage, etc.)

This is easy on AWS using auto scaling group. Use the outgoing traffic as the criteria

hi @emrah
Thanks for your quick response.

We need the architecture independent of cloud infrastructure . i.e we may sift to azure or GCP at some later point of time.

Could you suggest any links which mentions the exact steps to achieve the same.

Thanks in advance!