Closed bharath-naik closed 2 years ago
Also i am unable to make the web live on my subdomain.
Hello @bharath-naik, could your give me more detail about your cluster's current state? List pod, list service, list ingress,... any logs or descriptions on error/failed resource will help.
Thanks @minhpq331 ... i am collecting the logs meanwhile iam also screensharing my live cluster, if its convenient you can join https://meet.jit.si/jitsi_scalable_helm
list of pods, services, ingress that are running
@bharath-naik As far as I can see, your pods and your services are working as expected but your ingresses are not. You need to add some specific annotations to get GCE builtin ingresses working. Some configurations to make this chart work with GKE and GCE ingress:
Custom-values.yaml (I only list important parts)
jvb:
websocket:
service:
annotations:
beta.cloud.google.com/backend-config: '{"ports": {"9090":"jvb-websocket-config"}}'
haproxy:
service:
annotations:
beta.cloud.google.com/backend-config: '{"ports": {"80":"haproxy-config"}}'
ingress:
hosts:
- host: socialhour.vewmet.com
paths:
- path: /* # THIS IS IMPORTANT, note this '*'
pathType: ImplementationSpecific
GCE backend config (kubectl apply this file)
apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
name: haproxy-config
spec:
timeoutSec: 2100 # timeout connection for haproxy, set your
connectionDraining:
drainingTimeoutSec: 2100
healthCheck:
checkIntervalSec: 15
port: 7880
type: HTTP
requestPath: /
---
apiVersion: cloud.google.com/v1beta1
kind: BackendConfig
metadata:
name: jvb-websocket-config
spec:
timeoutSec: 2100 # 35 minutes # timeout connection for haproxy, set your
connectionDraining:
drainingTimeoutSec: 2100
healthCheck:
checkIntervalSec: 15
port: 8080
type: HTTP
requestPath: /about/health
Please point your websocket domain (ws.socialhour.vewmet.com) to your ingress public IP. Please check google cloud console to make sure this helm chart create 2 ingresses with 2 public IP.
@bharath-naik yeah, it created 2 ingresses successfully. Make sure you point DNS (ws.socialhour.vewmet.com) to 34.149.245.82 and change haproxy ingress path (from /
to /*
), your web doesn't load because it can't download assets (which refer to ingress path /
and /*
)
nslookup ws.socialhour.vewmet.com
Server: 127.0.0.53
Address: 127.0.0.53#53
** server can't find ws.socialhour.vewmet.com: NXDOMAIN
now, should i run the above yaml code or should i simply add /*
in ingress at line 410
nslookup ws.socialhour.vewmet.com
Server: UnKnown
Address: 2405:200:800::1
Non-authoritative answer:
Name: ws.socialhour.vewmet.com
Address: 34.149.245.82
@bharath-naik simply add /*
. The backend configs i've shown above is just timeout configs for GCE LB. You can config it later.
# HAproxy specific configurations, used to load balance between shards
haproxy:
enabled: true
image:
repository: haproxy
pullPolicy: IfNotPresent
tag: ""
imagePullSecrets: []
podAnnotations: {}
service:
type: ClusterIP
annotations: {}
port: 80
# nodePort: 32080
# Expose this as your web domain
ingress:
enabled: true
className: ""
annotations: {}
# kubernetes.io/ingress.class: nginx
# kubernetes.io/tls-acme: z"true"
hosts:
- host: socialhour.vewmet.com
paths:
- path: /* ###changed this line only
pathType: ImplementationSpecific
tls:
- secretName: socialhour-tls
hosts:
- socialhour.vewmet.com
can't access my https://socialhour.vewmet.com yet
if it was a quick fix.. can you come over here like 10 min https://meet.jit.si/jitsi_scalable_helm. it will help us
@bharath-naik It works now. GCE ingresses and LBs are very slow to update =)))
hosts:
- host: socialhour.vewmet.com paths:
- path: /* ###changed this line only pathType: ImplementationSpecific
i just changed the path here in values-custom.yaml against HAproxy configuration
@bharath-naik It works now. GCE ingresses and LBs are very slow to update =)))
yes, it was live but unable to join the room 😔
wait.. it worked .. thanks @minhpq331 .. you are awesome
GCE LBs will disconnect your ws connection after 30s. That's why I gave you timeout configs above =))) Please read more about GCE LBs backend configurations
what should i do if i want to work this setup on multi clusters
Logger.js:154
2021-12-08T05:17:03.622Z [JitsiMeetJS.js] <Object.getGlobalOnErrorHandler>: UnhandledError: Not connected Script: null Line: null Column: null StackTrace: Error: Not connected
at u.send (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:1:168272)
at b.doLeave (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:10:142415)
at https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:10:160099
at new Promise (<anonymous>)
at b.leave (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:10:159833)
at ue.leave (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:10:39901)
at a.re (https://socialhour.vewmet.com/libs/app.bundle.min.js?v=5211:193:3690)
at a.emit (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:1:119783)
at D.connectionHandler (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:1:130683)
at u._stropheConnectionCb (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:1:166120)
at w.Connection._changeConnectStatus (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:1:34112)
at w.Connection._doDisconnect (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:1:34690)
at r._interceptDoDisconnect (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:25:7708)
at r._handleResumeFailed (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:25:10120)
at w.Handler.run (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:1:27486)
at https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:1:35924
at Object.forEachChild (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:1:19148)
at w.Connection._dataRecv (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:1:35773)
at N.Websocket._onMessage (https://socialhour.vewmet.com/libs/lib-jitsi-meet.min.js?v=5211:1:65011)
o @ Logger.js:154
getGlobalOnErrorHandler @ JitsiMeetJS.js:545
window.onunhandledrejection @ middleware.js:127
XmppConnection.js:476
Uncaught (in promise) Error: Not connected
at u.send (XmppConnection.js:476)
at b.doLeave (ChatRoom.js:287)
at ChatRoom.js:1839
at new Promise (<anonymous>)
at b.leave (ChatRoom.js:1817)
at ue.leave (JitsiConference.js:647)
at a.re (conference.js:441)
at a.emit (events.js:157)
at D.connectionHandler (xmpp.js:383)
at u._stropheConnectionCb (XmppConnection.js:295)
at w.Connection._changeConnectStatus (strophe.umd.js:3011)
at w.Connection._doDisconnect (strophe.umd.js:3052)
at r._interceptDoDisconnect (strophe.stream-management.js:218)
at r._handleResumeFailed (strophe.stream-management.js:325)
at w.Handler.run (strophe.umd.js:1875)
at strophe.umd.js:3157
at Object.forEachChild (strophe.umd.js:830)
at w.Connection._dataRecv (strophe.umd.js:3146)
at N.Websocket._onMessage (strophe.umd.js:5836)
i have deployed this gce backend .. but the meetings get's exited after few minutes of connection
apiVersion: cloud.google.com/v1beta1 kind: BackendConfig metadata: name: haproxy-config spec: timeoutSec: 2100 # timeout connection for haproxy, set your connectionDraining: drainingTimeoutSec: 2100 healthCheck: checkIntervalSec: 15 port: 7880 type: HTTP requestPath: / --- apiVersion: cloud.google.com/v1beta1 kind: BackendConfig metadata: name: jvb-websocket-config spec: timeoutSec: 2100 # 35 minutes # timeout connection for haproxy, set your connectionDraining: drainingTimeoutSec: 2100 healthCheck: checkIntervalSec: 15 port: 8080 type: HTTP requestPath: /about/health
please find attached screenshot if it was a problem
This issue can be closed. Websocket disconnecting after sometime may be opened as separate issue later @bharath-naik
hi @minhpq331 … thanks for the contributions made to jitsi scaling, it a difficult topic. i am trying to setup on a single cluster in GKE with two shards. Unfortunately JVB service are not getting created. If you could, please guide me through. I am missing something small that i am unable to spot.