0

I am currently working on a personal project to better understand Kubernetes and Jitsi, and I could use some help with my setup. I am not a member of any organization, so I am turning to the Jitsi community for assistance.

I have attached my YAML files and would appreciate it if someone could review them and let me know if there are any configuration elements that may be missing. I am running this setup on my local machine, using minikube on Ubuntu, which is deployed on a VMware workstation. I have noticed that multiple participants can join and engage in chat via Firefox and Chrome, but they are unable to see or hear each other.

I am new to both Jitsi and Kubernetes, so please excuse any perceived lack of expertise. Any advice or suggestions would be greatly appreciated. Thank you in advance for your help.

apiVersion: autoscaling/v1
kind: HorizontalPodAutoscaler
metadata:
  name: jvb-pod-scaler
  namespace : jitsi
spec:
  maxReplicas: 5
  minReplicas: 1
  scaleTargetRef:
    apiVersion: apps/v1
    kind: StatefulSet
    name: jvb
  targetCPUUtilizationPercentage: 80
  ---
  apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: jitsi
  labels:
    k8s-app: jicofo
  name: jicofo
spec:
  replicas: 1 
  selector:
    matchLabels:
      k8s-app: jicofo
  template:
    metadata:
      labels:
        k8s-app: jicofo
    spec:
      containers:
        - name: jicofo
          image: jitsi/jicofo:stable-4548-1
          imagePullPolicy: Always
          env:
            - name: XMPP_SERVER
              value: prosody
            - name: XMPP_DOMAIN
              value: meet.jitsi
            - name: XMPP_AUTH_DOMAIN
              value: auth.meet.jitsi
            - name: XMPP_INTERNAL_MUC_DOMAIN
              value: internal-muc.meet.jitsi
            - name: JICOFO_COMPONENT_SECRET
              valueFrom:
                secretKeyRef:
                  name: jitsi-config
                  key: JICOFO_COMPONENT_SECRET
            - name: JICOFO_AUTH_USER
              value: focus
            - name: JICOFO_AUTH_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: jitsi-config
                  key: JICOFO_AUTH_PASSWORD
            - name: TZ
              value: America/Los_Angeles
            - name: JVB_BREWERY_MUC
              value: jvbbrewery
            - name: JICOFO_ENABLE_HEALTH_CHECKS
              value: "true"
---
apiVersion: apps/v1
kind: StatefulSet
metadata:
  namespace: jitsi
  name: jvb
spec:
  serviceName: "jvb" 
  replicas: 1
  selector:
    matchLabels:
      app: jvb
  template:
    metadata:
      labels:
        app: jvb
    spec:
      containers:
        - name: jvb
          resources:
            limits:
              memory: 400Mi
              cpu: 400m
            requests:
              memory: 400Mi
              cpu: 400m
          image: jitsi/jvb:stable-4548-1
          imagePullPolicy: Always
          ports:
            - name: udp
              containerPort: 10000
          env:
            - name: NODE_NAME
              valueFrom:
                fieldRef:
                  fieldPath: metadata.name
            - name: XMPP_SERVER
              value: prosody
            - name: DOCKER_HOST_ADDRESS
              valueFrom:
                fieldRef:
                  fieldPath: status.hostIP
            - name: XMPP_DOMAIN
              value: meet.jitsi
            - name: XMPP_AUTH_DOMAIN
              value: auth.meet.jitsi
            - name: XMPP_INTERNAL_MUC_DOMAIN
              value: internal-muc.meet.jitsi
#            - name: JVB_STUN_SERVERS
#              valueFrom:
#                secretKeyRef:
#                  name: jitsi-config
#                  key: JVB_STUN_SERVERS
            - name: JICOFO_AUTH_USER
              value: focus
            - name: JVB_TCP_HARVESTER_DISABLED
              value: "true"
            - name: JVB_ENABLE_APIS
              value: colibri,rest
            - name: JVB_AUTH_USER
              value: jvb
            - name: JVB_AUTH_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: jitsi-config
                  key: JVB_AUTH_PASSWORD
            - name: JICOFO_AUTH_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: jitsi-config
                  key: JICOFO_AUTH_PASSWORD
            - name: JVB_BREWERY_MUC
              value: jvbbrewery
            - name: TZ
              value: America/Los_Angeles
---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: jitsi
  labels:
    k8s-app: prosody
  name: prosody
spec:
  replicas: 1 
  selector:
    matchLabels:
      k8s-app: prosody
  template:
    metadata:
      labels:
        k8s-app: prosody
    spec:
      containers:
        - name: prosody
          image: jitsi/prosody:stable-4548-1
          imagePullPolicy: Always
          ports:
            - name: metrics
              containerPort: 5280
          readinessProbe:
            exec:
              command:
                - prosodyctl
                - --config
                - /config/prosody.cfg.lua
                - status
          env:
            - name: XMPP_DOMAIN
              value: meet.jitsi
            - name: XMPP_AUTH_DOMAIN
              value: auth.meet.jitsi
            - name: XMPP_MUC_DOMAIN
              value: muc.meet.jitsi
            - name: XMPP_INTERNAL_MUC_DOMAIN
              value: internal-muc.meet.jitsi
            - name: XMPP_MUC_MODULES
              value: muc_meeting_id,muc_domain_mapper
            - name: JICOFO_COMPONENT_SECRET
              valueFrom:
                secretKeyRef:
                  name: jitsi-config
                  key: JICOFO_COMPONENT_SECRET
            - name: JVB_AUTH_USER
              value: jvb
            - name: JVB_AUTH_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: jitsi-config
                  key: JVB_AUTH_PASSWORD
            - name: JICOFO_AUTH_USER
              value: focus
            - name: JICOFO_AUTH_PASSWORD
              valueFrom:
                secretKeyRef:
                  name: jitsi-config
                  key: JICOFO_AUTH_PASSWORD
            - name: TZ
              value: America/Los_Angeles
            - name: JVB_TCP_HARVESTER_DISABLED
              value: "true"
            - name: TURNCREDENTIALS_SECRET
              valueFrom:
                secretKeyRef:
                  name: jitsi-config
                  key: TURNCREDENTIALS_SECRET
            - name: TURN_HOST
              valueFrom:
                secretKeyRef:
                  name: jitsi-config
                  key: TURN_HOST
#            - name: STUN_PORT
#              valueFrom:
#                secretKeyRef:
#                  name: jitsi-config
#                  key: STUN_PORT
            - name: TURNS_PORT
              valueFrom:
                secretKeyRef:
                  name: jitsi-config
                  key: TURNS_PORT
---
apiVersion: v1
kind: Service
metadata:
  namespace: jitsi
  labels:
    service: prosody
  name: prosody
spec:
  ports:
  - name: "5222"
    port: 5222
    targetPort: 5222
  - name: "5280"
    port: 5280
    targetPort: 5280
  - name: "5347"
    port: 5347
    targetPort: 5347
  selector:
    k8s-app: prosody
---
apiVersion: apps/v1
kind: Deployment
metadata:
  namespace: jitsi
  labels:
    k8s-app: web
  name: web
spec:
  replicas: 1 
  selector:
    matchLabels:
      k8s-app: web
  template:
    metadata:
      labels:
        k8s-app: web
    spec:
      containers:
        - name: web
          image: jitsi/web:stable-4548-1
          imagePullPolicy: Always
          readinessProbe:
            httpGet:
              port: 80
          env:
#            - name: DISABLE_HTTPS
#              value: "1"
            - name: HTTP_PORT
              value: "80"
            - name: HTTPS_PORT
              value: "443"
            - name: XMPP_SERVER
              value: prosody
            - name: JICOFO_AUTH_USER
              value: focus
            - name: XMPP_DOMAIN
              value: meet.jitsi
            - name: XMPP_AUTH_DOMAIN
              value: auth.meet.jitsi
            - name: XMPP_INTERNAL_MUC_DOMAIN
              value: internal-muc.meet.jitsi
            - name: XMPP_BOSH_URL_BASE
              value: http://prosody:5280
            - name: XMPP_MUC_DOMAIN
              value: muc.meet.jitsi
            - name: TZ
              value: America/Los_Angeles
            - name: JVB_TCP_HARVESTER_DISABLED
              value: "true"
---
apiVersion: v1
kind: Namespace
metadata:
  name: jitsi
---
apiVersion: v1
kind: Secret
metadata:
  namespace: jitsi
  name: jitsi-config
type: Opaque
data:
  JICOFO_COMPONENT_SECRET: amljaWZvY29tcG9uZW50
  JICOFO_AUTH_PASSWORD: amljaWZvY29tcG9uZW50
  JVB_AUTH_PASSWORD: amljaWZvY29tcG9uZW50
  JVB_STUN_SERVERS: amljaWZvY29tcG9uZW50
  TURNCREDENTIALS_SECRET: amljaWZvY29tcG9uZW50
  TURN_HOST: amljaWZvY29tcG9uZW50
  STUN_PORT: amljaWZvY29tcG9uZW50
  TURN_PORT: amljaWZvY29tcG9uZW50
  TURNS_PORT: amljaWZvY29tcG9uZW50
---
apiVersion: v1
kind: Service
metadata:
  labels:
    service: web
  namespace: jitsi
  name: web
spec:
  ports:
    - name: "http"
      protocol: TCP
      port: 80
      targetPort: 80
      nodePort: 30080
    - name: "https"
      protocol: TCP
      port: 443
      targetPort: 443
      nodePort: 30443
  selector:
    k8s-app: web
  type: NodePort
---
apiVersion: v1
kind: Service
metadata:
  labels:
    service: jvb-0
  namespace: jitsi
  name: jvb-0
spec:
  type: NodePort
  externalTrafficPolicy: Cluster
  ports:
    - port: 31000
      name: jvb-0
      protocol: UDP
      targetPort: 31000
      nodePort: 31000
  selector:
    app: jvb
    "statefulset.kubernetes.io/pod-name": jvb-0
---
#JVB-1
apiVersion: v1
kind: Service
metadata:
  labels:
    service: jvb-1
  namespace: jitsi
  name: jvb-1
spec:
  type: NodePort
  externalTrafficPolicy: Cluster
  ports:
    - port: 31001
      name: jvb-1
      protocol: UDP
      targetPort: 31001
      nodePort: 31001
  selector:
    app: jvb
    "statefulset.kubernetes.io/pod-name": jvb-1
---
#JVB-2
apiVersion: v1
kind: Service
metadata:
  labels:
    service: jvb-2
  namespace: jitsi
  name: jvb-2
spec:
  type: NodePort
  externalTrafficPolicy: Cluster
  ports:
    - port: 31002
      name: jvb-2
      protocol: UDP
      targetPort: 31002
      nodePort: 31002
  selector:
    app: jvb
    "statefulset.kubernetes.io/pod-name": jvb-2
---
#JVB-3
apiVersion: v1
kind: Service
metadata:
  labels:
    service: jvb-3
  namespace: jitsi  
  name: jvb-3
spec:
  type: NodePort
  externalTrafficPolicy: Cluster
  ports:
    - port: 31003
      name: jvb-3
      protocol: UDP
      targetPort: 31003
      nodePort: 31003
  selector:
    app: jvb
    "statefulset.kubernetes.io/pod-name": jvb-3
---
#JVB-4
apiVersion: v1
kind: Service
metadata:
  labels:
    service: jvb-4
  namespace: jitsi 
  name:  jvb-4
spec:
  type: NodePort
  externalTrafficPolicy: Cluster
  ports:
    - port: 31004
      name:  jvb-4
      protocol: UDP
      targetPort: 31004
      nodePort: 31004
  selector:
    app: jvb
    "statefulset.kubernetes.io/pod-name":  jvb-4
---
#JVB-5
apiVersion: v1
kind: Service
metadata:
  labels:
    service: jvb-5
  namespace: jitsi  
  name:  jvb-5
spec:
  type: NodePort
  externalTrafficPolicy: Cluster
  ports:
    - port: 31005
      name:  jvb-5
      protocol: UDP
      targetPort: 31005
      nodePort: 31005
  selector:
    app: jvb
    "statefulset.kubernetes.io/pod-name":  jvb-5

I attempted to configure jvb, prosody, and jicofo, but none of these configurations have been successful. Despite trying with just one jvb, the system is still failing. I suspect that this may be an issue with the version, and therefore attempted to use the latest Jitsi images. However, I encountered a WebSocket error, which appears to be resolved through the use of a public URL. Unfortunately, I do not have ownership of a domain and am thus unable to test this solution. I kindly request any assistance that may be available.

  • Two things: foremost, your question currently contains a lot of "not successful" but a distinct lack of error messages or ways you have already tried to troubleshoot things by yourself. This is also off-topic for a programming Stack Exchange site since what `if` statement would you change to fix your ... DNS? routing? Load Balancer? ... _infrastructure_ problem? – mdaniel Mar 11 '23 at 23:14

0 Answers0