congthang1 / jitsi-kubernetes

Jitsi deployment on Kubernetes with JVB autoscale and OCTO region enabled
MIT License
35 stars 18 forks source link

two cluster or pool on scaleway #2

Closed spprod35 closed 3 years ago

spprod35 commented 3 years ago

Hello,

thank you for sharing your Kubnernetes project. Some question I ask myself: This configuration is valid for which release of Jitsi Meet?

I am new to kubernetes, I use the scaleway offer. When you mentioned: "You need 2 kubernetes for each region, 1 for Main Jitsi Web Prosody and 1 for JVB. If you have 2 regions, 4 kubernertes are needed."

I want to deploy only 1 regions, so I need 2 kubernetes. We are talking here about:

If different cluster, do I have two different kubeconfig files and therefore two different dashboards to manage my App?

That's right ? If so, and it is not necessarily up to you to answer me, how do I manage my app with a single deployment dashboard?

congthang1 commented 3 years ago

Hi, I’m using latest Jitsi, you can lock version on container images if you want. This is about 2 different cluster (2 kuberconfig) files and not about pool. Actually if you deploy to 1 cluster it still works if not autoscale. The autoscale of jvb add more nodes to cluster and causing redeploy loadbalancer config. This is about ssl cert reset on digitalocean. Second thing on Digitalocean kubernetes is free so make separation is better way to manage your load.

spprod35 commented 3 years ago

Thank you for the clarification. On Scaleway, within the same cluster I can have several pools. On each of the pools I can choose if the autoscale is activated and limits them for this autoscale (2 minimum 5 maximum). The nodes present in a pool with autoscale enabled have a different label. Do you think I can adapt your project to work on a single kubernetes cluster and in a stable way? What to modify so that the JVB communicates with the other components within the same cluster?

There is something that I do not catch when operating with two clusters. How do JVBs communicate with other components? over the internet? there is no local network between two clusters?

Thank you for your time and your response. Regards,

congthang1 commented 3 years ago

Hi you can deploy same cluster no problem and no modification needed. Only one thing about the ssl if you use Digitalocean and manually setting the ssl on loadbalancer it will reset each time new node added. In this case add this to web service.yaml:

 annotations:
      service.beta.kubernetes.io/do-loadbalancer-certificate-id: your_certificate_id

Like this:

apiVersion: v1
kind: Service
metadata:
  labels:
    service: web
  name: web
  namespace: jitsi
  annotations:
    service.beta.kubernetes.io/do-loadbalancer-certificate-id: your_certificate_id
...

Then everything just works.

JVB connection is using public IP on each Node, the nodePort: (udp 31000-31006 and OCTO udp port 30960 - 30966). You need to have firewall open for these port on the nodes (not cluster). If you on Digitalocean can use firewall apply for tag (generated by cluster when creation start with k8:..). This will automatic apply to new node added to cluster.

spprod35 commented 3 years ago

Thx for help, for scaleway :

annotations:
    service.beta.kubernetes.io/scw-loadbalancer-certificate-ids: 443:7598dce0-xxxx-xxxx-xxxx-0807c94cxxxx

I am trying to enable websocket for this cluster install, have you tried enabling websocket?

congthang1 commented 3 years ago

Yes, websocket is abit long story for this cluster. Need to send sever-id is node_public_IP:port then configure web nginx forward ~ ^/colibri-ws to this. Check this https://github.com/jitsi/jitsi-videobridge/blob/master/doc/web-sockets.md

spprod35 commented 3 years ago

I ask my questions for the websocket on another issue