Escrito por
Kleber Tertulino
em
em
WebSocket no Ingress do Kubernetes
1 min para ler
Para expor um serviço através de um ingress controller é necessário incluir uma anotação nas definições do recurso para que o mesmo identifique qual dos serviços expostos devem ser tratado como WebSocket.
O que é WebSocket
Pelas palavras da Wikipedia:
WebSocket é uma tecnologia que permite a comunicação bidirecional por canais full-duplex sobre um único soquete Transmission Control Protocol (TCP). Ele é projetado para ser executado em navegadores e servidores web que suportem o HTML5, mas pode ser usado por qualquer cliente ou servidor de aplicativos.
Exemplo de serviço com WebSocket
apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
name: meu-ingress
annotations:
nginx.org/websocket-services: "ws-svc"
spec:
rules:
- host: meu.exemplo.com
http:
paths:
- path: /login
backend:
serviceName: login-svc
servicePort: 80
- path: /carrinho
backend:
serviceName: carrinho-svc
servicePort: 80
- path: /ws
backend:
serviceName: ws-svc
servicePort: 8008
No exemplo acima incluí uma anotação informando que o “ws-svc” é um serviço WebSocket.
Simples e efetivo, não é mesmo?
Um grande abraço!
Kleber Tertulino