web-dev-qa-db-fra.com

KubeNettes Ingress WebSockets Numéro de connexion

Déployé K8S sur AWS avec Kops. J'ai créé Nginx Ingress https://github.com/kubettes/ingress-nginx NGINX-INGRESS-contrôleur image: quai.io/kubernettes-ingress-controller/nginx-ingress-controller:0.18. 0

Tout est opérationnel et je pouvais accéder à des applications à l'extérieur de l'équilibreur de charge AWS Classic, créé par NGinx Service.

Récemment, nous avons commencé à travailler sur des webockets. J'ai déployé mes services en K8 et en essayant d'accéder à l'extérieur.

J'ai créé un service et une entrée pour mon application. INGRESS est maintenant dirigé vers WideBalancer (en dessous du fichier JSON).

J'ai créé une entrée Route53 dans AWS et essaye de vous connecter à cela, mais je reçois une erreur en dessous de l'erreur lorsque j'essaie de vous connecter à partir de mon application client via chrome Browser

Websocket Connection à 'WSS: //blockchain.aro/socket.io/? EIO = 3 & Transport = Websocket' a échoué: Erreur lors de la poignée de main de bande: Code de réponse inattendu: 400

J'ai essayé de créer un équilibreur de charge de l'application mais je ne pouvais pas me connecter à wss://<Host>

Erreur:

Websocket Connection à 'WSS: //blockchain.aro/socket.io/? EIO = 3 & Transport = Websocket' a échoué: Erreur lors de la poignée de main de bande: Code de réponse inattendu: 400

const config: SocketIoConfig = { url: 'wss://blockchain.aro',
  options: { autoConnect: false, transports: ['websocket']} };


Ingress:

   "annotations": {
      "kubectl.kubernetes.io/last-applied-configuration": "{\"apiVersion\":\"extensions/v1beta1\",\"kind\":\"Ingress\",\"metadata\":{\"annotations\":{},\"name\":\"blockchain\",\"namespace\":\"adapt\"},\"spec\":{\"rules\":[{\"Host\":\"blockchain.aro\",\"http\":{\"paths\":[{\"backend\":{\"serviceName\":\"blockchain\",\"servicePort\":8097},\"path\":\"/\"},{\"backend\":{\"serviceName\":\"blockchain\",\"servicePort\":8097},\"path\":\"/socket.io\"},{\"backend\":{\"serviceName\":\"blockchain\",\"servicePort\":8097},\"path\":\"/ws/\"}]}}],\"tls\":[{\"hosts\":[\"blockchain.aro\"],\"secretName\":\"blockchain-tls-secret\"}]}}\n",
      "nginx.ingress.kubernetes.io/proxy-read-timeout": "3600",
      "nginx.ingress.kubernetes.io/proxy-send-timeout": "3600"
    }

inclus tls et secretname et rules dans le fichier d'entrée. J'ai essayé de créer ApplicationLoadbalancer mais je ne pouvais pas me connecter aussi avec ça.

5
Ram
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  annotations:
    certmanager.k8s.io/cluster-issuer: core-prod
    kubernetes.io/ingress.class: nginx
    nginx.ingress.kubernetes.io/proxy-read-timeout: "1800"
    nginx.ingress.kubernetes.io/proxy-send-timeout: "1800"
    nginx.ingress.kubernetes.io/rewrite-target: /
    nginx.ingress.kubernetes.io/secure-backends: "true"
    nginx.ingress.kubernetes.io/ssl-redirect: "true"
    nginx.ingress.kubernetes.io/websocket-services: core-service
    nginx.org/websocket-services: core-service
  name: core-ingress
spec:
  rules:
  - Host: test.io
    http:
      paths:
      - backend:
          serviceName: core-service
          servicePort: 80
  tls:
  - hosts:
    - test.io
    secretName: core-prod
3
Harsh Manvar