I'm trying to expose socket.io termjs using kubernetes nginx ingress, Here is my definition of YAML file. This is python flask application
apiVersion: v1
kind: Service
metadata:
name: ejllvrteiafpdiaqjflc
labels:
name: ejllvrteiafpdiaqjflc
spec:
sessionAffinity: "ClientIP"
ports:
- port: 5000
targetPort: 5000
protocol: TCP
selector:
app: ejllvrteiafpdiaqjflc
type: ClusterIP
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: aaoxmmoyjsnditztroam
annotations:
kubernetes.io/ingress.class: nginx
nginx.org/websocket-services: "ejllvrteiafpdiaqjflc"
#nginx.ingress.kubernetes.io/rewrite-target: /
nginx.ingress.kubernetes.io/websocket-services: 'ejllvrteiafpdiaqjflc'
nginx.ingress.kubernetes.io/force-ssl-redirect: 'false'
ingress.kubernetes.io/ssl-redirect: "false"
nginx.org/hsts-include-subdomains: "0cloud0.com"
nginx.org/hsts: "false"
nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"
#nginx.org/hsts-max-age: 2592000
spec:
rules:
- host: python3.minikube
http:
paths:
- path: /
backend:
serviceName: ejllvrteiafpdiaqjflc
servicePort: 5000
#- path: /socket.io
# backend:
# serviceName: ejllvrteiafpdiaqjflc
# servicePort: 5000
tls:
- secretName: 0cloud0-wildcard-certs
hosts:
- python3.minikube
Here is the error message which i'm receiving
There is continuous 400 error on my web browser console, though the idea page is served
Request URL: https://python3.minikube/socket.io/?EIO=3&transport=polling&t=Mo_0SQg&sid=38806a59fc2144fea17248f680ea612b
Request Method: POST
Status Code: 400
Remote Address: 10.64.83.49:443
Referrer Policy: no-referrer-when-downgrade
There is no problem with the service
# kubectl get svc -n playground
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE
ejllvrteiafpdiaqjflc ClusterIP 10.104.19.247 <none> 5000/TCP 12m
Is there any additional nginx ingress config needs to be added, Please help
There is no issue when i deploy the same configuration over docker. The socket.io works like a charm, when i take it to kubernetes ingress it fails with 400 error
docker run -it -p 5000:5000 -v $PWD:/opt/ myimage
Here is the Live Demo
Working over insecure channel http://0cloud0.com/playground
The nginx Ingress definition
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /
creationTimestamp: "2019-08-24T06:58:10Z"
generation: 1
name: ikqyvhiapqotawmicggv
namespace: default
resourceVersion: "2443222"
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/ikqyvhiapqotawmicggv
uid: 09ec9f79-6c30-408e-b53e-27ea9accdc89
spec:
rules:
- host: ikqyvhiapqotawmicggv.0cloud0.com
http:
paths:
- backend:
serviceName: ikqyvhiapqotawmicggv
servicePort: 5000
path: /
status:
loadBalancer:
ingress:
- {}
Not Working at secure backend https://0cloud0.com/playground
and the ingress definition
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
annotations:
kubernetes.io/ingress.class: nginx
nginx.ingress.kubernetes.io/force-ssl-redirect: "false"
nginx.ingress.kubernetes.io/rewrite-target: /
creationTimestamp: "2019-08-24T06:58:33Z"
generation: 2
name: default
namespace: playground
resourceVersion: "2445448"
selfLink: /apis/extensions/v1beta1/namespaces/default/ingresses/gyybtfotzioqqettmgdd
uid: 29c8b4d8-f37d-4116-a0f0-4c52ade073af
spec:
rules:
- host: gyybtfotzioqqettmgdd.0cloud0.com
http:
paths:
- backend:
serviceName: gyybtfotzioqqettmgdd
servicePort: 5000
path: /
tls:
- hosts:
- gyybtfotzioqqettmgdd.0cloud0.com
secretName: certs
status:
loadBalancer:
ingress:
- {}
This is the nginx debug logs
2019/08/25 04:20:17 [debug] 42#42: *407 epoll add connection: fd:50 ev:80002005
2019/08/25 04:20:17 [debug] 42#42: *407 connect to 192.168.155.213:5000, fd:50 #2674
2019/08/25 04:20:17 [debug] 42#42: *407 http upstream connect: -2
2019/08/25 04:20:17 [debug] 42#42: *407 posix_memalign: 000055C3DC987410:128 @16
2019/08/25 04:20:17 [debug] 42#42: *407 event timer add: 50: 5000:1617484036
2019/08/25 04:20:17 [debug] 42#42: *407 http finalize request: -4, "/socket.io/?EIO=3&transport=polling&t=Mp70Dqy.0&sid=693a8ca68d8a4fdba627b4fe9b3e6ee6" a:1, c:2
2019/08/25 04:20:17 [debug] 42#42: *407 http request count:2 blk:0
2019/08/25 04:20:17 [debug] 42#42: *407 http2 frame complete pos:000055C3DCA6B1B2 end:000055C3DCA6B1C4
2019/08/25 04:20:17 [debug] 42#42: *407 http2 frame type:0 f:1 l:9 sid:401
2019/08/25 04:20:17 [debug] 42#42: *407 http2 DATA frame
2019/08/25 04:20:17 [debug] 42#42: *407 event timer del: 3: 1617539036
2019/08/25 04:20:17 [debug] 42#42: *407 http body new buf t:1 f:0 000055C3DC9740E0, pos 000055C3DC9740E0, size: 9 file: 0, size: 0
2019/08/25 04:20:17 [debug] 42#42: *407 http init upstream, client timer: 0
2019/08/25 04:20:17 [debug] 42#42: *407 http map started
2019/08/25 04:20:17 [debug] 42#42: *407 http map: "" ""
2019/08/25 04:20:17 [debug] 42#42: *407 http map started
2019/08/25 04:20:17 [debug] 42#42: *407 http script var: "6ed5f2d5ee580af749a3ee12955a32c6"
2019/08/25 04:20:17 [debug] 42#42: *407 http map: "" "6ed5f2d5ee580af749a3ee12955a32c6"
2019/08/25 04:20:17 [debug] 42#42: *407 http map started
2019/08/25 04:20:17 [debug] 42#42: *407 http script var: "172.20.240.119"
2019/08/25 04:20:17 [debug] 42#42: *407 http map: "" "172.20.240.119"
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: "Host"
2019/08/25 04:20:17 [debug] 42#42: *407 http script var: "gyybtfotzioqqettmgdd.0cloud0.com"
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: ""
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: ""
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: "X-Request-ID"
2019/08/25 04:20:17 [debug] 42#42: *407 http script var: "6ed5f2d5ee580af749a3ee12955a32c6"
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: "X-Real-IP"
2019/08/25 04:20:17 [debug] 42#42: *407 http script var: "172.20.240.119"
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: "X-Forwarded-For"
2019/08/25 04:20:17 [debug] 42#42: *407 http script var: "172.20.240.119"
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: "X-Forwarded-Host"
2019/08/25 04:20:17 [debug] 42#42: *407 http script var: "gyybtfotzioqqettmgdd.0cloud0.com"
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: "X-Forwarded-Port"
2019/08/25 04:20:17 [debug] 42#42: *407 http script var: "443"
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: "X-Forwarded-Proto"
2019/08/25 04:20:17 [debug] 42#42: *407 http script var: "https"
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: "X-Original-URI"
2019/08/25 04:20:17 [debug] 42#42: *407 http script var: "/socket.io/?EIO=3&transport=polling&t=Mp70Dqy&sid=693a8ca68d8a4fdba627b4fe9b3e6ee6"
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: "X-Scheme"
2019/08/25 04:20:17 [debug] 42#42: *407 http script var: "https"
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: ""
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: "Content-Length"
2019/08/25 04:20:17 [debug] 42#42: *407 http script var: "9"
2019/08/25 04:20:17 [debug] 42#42: *407 http script copy: ""
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header: "accept: */*"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header: "content-type: text/plain;charset=UTF-8"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header: "origin: https://gyybtfotzioqqettmgdd.0cloud0.com"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header: "accept-language: en-us"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header: "user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header: "referer: https://gyybtfotzioqqettmgdd.0cloud0.com/"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header: "accept-encoding: gzip, deflate"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header: "cookie: io=693a8ca68d8a4fdba627b4fe9b3e6ee6; _ga=GA1.2.1800403221.1565147284; __cfduid=d9af956869a1d3006e31a45957fdb83971566291845"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header:
"POST /socket.io/?EIO=3&transport=polling&t=Mp70Dqy&sid=693a8ca68d8a4fdba627b4fe9b3e6ee6 HTTP/1.1
Host: gyybtfotzioqqettmgdd.0cloud0.com
X-Request-ID: 6ed5f2d5ee580af749a3ee12955a32c6
X-Real-IP: 172.20.240.119
X-Forwarded-For: 172.20.240.119
X-Forwarded-Host: gyybtfotzioqqettmgdd.0cloud0.com
X-Forwarded-Port: 443
X-Forwarded-Proto: https
X-Original-URI: /socket.io/?EIO=3&transport=polling&t=Mp70Dqy&sid=693a8ca68d8a4fdba627b4fe9b3e6ee6
X-Scheme: https
Content-Length: 9
accept: */*
content-type: text/plain;charset=UTF-8
origin: https://gyybtfotzioqqettmgdd.0cloud0.com
accept-language: en-us
user-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_12_6) AppleWebKit/605.1.15 (KHTML, like Gecko) Version/12.1.2 Safari/605.1.15
referer: https://gyybtfotzioqqettmgdd.0cloud0.com/
accept-encoding: gzip, deflate
cookie: io=693a8ca68d8a4fdba627b4fe9b3e6ee6; _ga=GA1.2.1800403221.1565147284; __cfduid=d9af956869a1d3006e31a45957fdb83971566291845
"
2019/08/25 04:20:17 [debug] 42#42: *407 http cleanup add: 000055C3DCACC9C0
2019/08/25 04:20:17 [debug] 42#42: *407 init keepalive peer
2019/08/25 04:20:17 [debug] 42#42: *407 get keepalive peer
2019/08/25 04:20:17 [debug] 42#42: *407 lua balancer peer, tries: 1
2019/08/25 04:20:17 [debug] 42#42: *407 lua reset ctx
2019/08/25 04:20:17 [debug] 42#42: *407 looking up Lua code cache with key 'balancer_by_luanhli_0f29762dfd828b8baa4d895affbc4b90'
2019/08/25 04:20:17 [debug] 42#42: *407 stream socket 51
2019/08/25 04:20:17 [debug] 42#42: *407 epoll add connection: fd:51 ev:80002005
2019/08/25 04:20:17 [debug] 42#42: *407 connect to 192.168.155.213:5000, fd:51 #2675
2019/08/25 04:20:17 [debug] 42#42: *407 http upstream connect: -2
2019/08/25 04:20:17 [debug] 42#42: *407 posix_memalign: 000055C3DC9635C0:128 @16
2019/08/25 04:20:17 [debug] 42#42: *407 event timer add: 51: 5000:1617484036
2019/08/25 04:20:17 [debug] 42#42: *407 http2 frame complete pos:000055C3DCA6B1C4 end:000055C3DCA6B1C4
2019/08/25 04:20:17 [debug] 42#42: *407 http2 frame out: 000055C3DCA35620 sid:0 bl:0 len:4
2019/08/25 04:20:17 [debug] 42#42: *407 SSL buf copy: 13
2019/08/25 04:20:17 [debug] 42#42: *407 SSL to write: 13
2019/08/25 04:20:17 [debug] 42#42: *407 SSL_write: 13
2019/08/25 04:20:17 [debug] 42#42: *407 http2 frame sent: 000055C3DCA35620 sid:0 bl:0 len:4
2019/08/25 04:20:17 [debug] 42#42: *407 http upstream request: "/socket.io/?EIO=3&transport=polling&t=Mp70Dqy.0&sid=693a8ca68d8a4fdba627b4fe9b3e6ee6"
2019/08/25 04:20:17 [debug] 42#42: *407 http upstream send request handler
2019/08/25 04:20:17 [debug] 42#42: *407 http upstream send request
2019/08/25 04:20:17 [debug] 42#42: *407 http upstream send request body
2019/08/25 04:20:17 [debug] 42#42: *407 chain writer buf fl:1 s:855
2019/08/25 04:20:17 [debug] 42#42: *407 chain writer in: 000055C3DCAAEB20
2019/08/25 04:20:17 [debug] 42#42: *407 writev: 855 of 855
2019/08/25 04:20:17 [debug] 42#42: *407 chain writer out: 0000000000000000
2019/08/25 04:20:17 [debug] 42#42: *407 event timer del: 50: 1617484036
2019/08/25 04:20:17 [debug] 42#42: *407 event timer add: 50: 60000:1617539036
2019/08/25 04:20:17 [debug] 42#42: *407 http upstream request: "/socket.io/?EIO=3&transport=polling&t=Mp70Dqy&sid=693a8ca68d8a4fdba627b4fe9b3e6ee6"
2019/08/25 04:20:17 [debug] 42#42: *407 http upstream send request handler
2019/08/25 04:20:17 [debug] 42#42: *407 http upstream send request
2019/08/25 04:20:17 [debug] 42#42: *407 http upstream send request body
2019/08/25 04:20:17 [debug] 42#42: *407 chain writer buf fl:0 s:961
2019/08/25 04:20:17 [debug] 42#42: *407 chain writer buf fl:1 s:9
2019/08/25 04:20:17 [debug] 42#42: *407 chain writer in: 000055C3DCACCAF8
2019/08/25 04:20:17 [debug] 42#42: *407 writev: 970 of 970
2019/08/25 04:20:17 [debug] 42#42: *407 chain writer out: 0000000000000000
2019/08/25 04:20:17 [debug] 42#42: *407 event timer del: 51: 1617484036
2019/08/25 04:20:17 [debug] 42#42: *407 event timer add: 51: 60000:1617539036
2019/08/25 04:20:17 [debug] 42#42: *407 http upstream request: "/socket.io/?EIO=3&transport=polling&t=Mp70Dqy&sid=693a8ca68d8a4fdba627b4fe9b3e6ee6"
2019/08/25 04:20:17 [debug] 42#42: *407 http upstream process header
2019/08/25 04:20:17 [debug] 42#42: *407 malloc: 000055C3DCAAF100:4096
2019/08/25 04:20:17 [debug] 42#42: *407 recv: eof:1, avail:1
2019/08/25 04:20:17 [debug] 42#42: *407 recv: fd:51 159 of 4096
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy status 400 "400 BAD REQUEST"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header: "Content-Type: text/plain"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header: "Connection: close"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header: "Server: Werkzeug/0.15.5 Python/3.7.3"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header: "Date: Sun, 25 Aug 2019 04:20:17 GMT"
2019/08/25 04:20:17 [debug] 42#42: *407 http proxy header done