Configurar un clúster de Kuberentes con ingreso de equilibrio de carga HTTP para RStudio y Shiny resulta en páginas de error
Estoy intentando crear un clúster en Google Kubernetes Engine que ejecute nginx, el servidor RStudio y dos aplicaciones Shiny, siguiendo y adaptandoesta guia.
Tengo 4 cargas de trabajo que son todas verdes en la interfaz de usuario, implementadas a través de:
kubectl run nginx --image=nginx --port=80
kubectl run rstudio --image gcr.io/gcer-public/persistent-rstudio:latest --port 8787
kubectl run shiny1 --image gcr.io/gcer-public/shiny-googleauthrdemo:latest --port 3838
kubectl run shiny5 --image=flaviobarros/shiny-wordcloud --port=80
Luego fueron expuestos como puertos de nodo a través de:
kubectl expose deployment nginx --target-port=80 --type=NodePort
kubectl expose deployment rstudio --target-port=8787 --type=NodePort
kubectl expose deployment shiny1 --target-port=3838 --type=NodePort
kubectl expose deployment shiny5 --target-port=80 --type=NodePort
..que son todos verdes en la interfaz de usuario.
Luego desplegué este backend de Ingress
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: r-ingress
spec:
rules:
- http:
paths:
- path: /
backend:
serviceName: nginx
servicePort: 80
- path: /rstudio/
backend:
serviceName: rstudio
servicePort: 8787
- path: /shiny1/
backend:
serviceName: shiny1
servicePort: 3838
- path: /shiny5/
backend:
serviceName: shiny5
servicePort: 80
El resultado es que el enrutamiento nginx funciona muy bien, puedo ver la página web "Bienvenido a nginx" desde casa, pero las otras tres rutas que obtengo son:
/ rstudio / -Input/output error
/ shiny1 / - Página no encontrada (la página Shiny 404)/ shiny5 / - Página no encontrada (la página Shiny 404)Las cargas de trabajo de RStudio y Shiny funcionan cuando se expone a través del equilibrador de carga único, asignado a 8787 y 3838 respectivamente.
¿Alguien puede señalar dónde me estoy equivocando?
Qs:
¿Deben adaptarse los Dockerfiles para que todos den un estado 200 en el puerto 80 cuando solicitan "/"? ¿Necesito cambiar el verificador de salud? Intenté cambiar la página de inicio de sesión de RStudio (ese 302 a / auth-sign-in si no está conectado) pero no tuve suerteTanto RStudio como Shiny necesitan websockets. ¿Esto afecta esto?¿Debe estar activa la afinidad de sesión? Intenté agregar eso con IP pero con los mismos errores.