Configurar um cluster Kuberentes com entrada de balanceamento de carga HTTP para RStudio e Shiny resulta em páginas de erro

Estou tentando criar um cluster no Google Kubernetes Engine que execute nginx, servidor RStudio e dois aplicativos Shiny, seguindo e adaptandoeste guia.

Tenho 4 cargas de trabalho verdes na interface do usuário, implantadas por:

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

Eles foram todos expostos como portas de nó via:

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

..todos são verdes na interface do usuário.

Em seguida, implantei esse back-end do 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

O resultado é que o roteamento nginx funciona muito bem, posso ver a página "Bem-vindo ao nginx" em casa, mas os três outros caminhos que recebo:

/ rstudio / -Input/output error/ shiny1 / - Página não encontrada (a página 404 brilhante)/ shiny5 / - Página não encontrada (a página 404 brilhante)

As cargas de trabalho RStudio e Shiny funcionam quando expostas pelo balanceador de carga único, mapeado para 8787 e 3838, respectivamente.

Alguém pode apontar para onde estou errado?

Qs:

Os Dockerfiles precisam ser adaptados para fornecer um status 200 na porta 80 ao solicitar "/"? Preciso alterar o verificador de saúde? Tentei alterar a página de login do RStudio (que 302 para / auth-sign-in, se você não estiver logado), mas sem sorteTanto o RStudio quanto o Shiny precisam de websockets - isso afeta isso?A afinidade da sessão precisa estar ativada? Tentei adicionar isso com IP, mas com os mesmos erros.

questionAnswers(2)

yourAnswerToTheQuestion