Mar*_*keD 6 rstudio-server kubernetes google-kubernetes-engine kubernetes-health-check
我正在尝试在Google Kubernetes Engine上创建一个运行nginx,RStudio服务器和两个Shiny应用程序的集群,遵循并修改本指南.
我有4个工作负载在UI中都是绿色的,通过以下方式部署:
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
Run Code Online (Sandbox Code Playgroud)
然后它们通过以下方式暴露为节点端口:
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
Run Code Online (Sandbox Code Playgroud)
..在UI中都是绿色的.
然后我部署了这个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
Run Code Online (Sandbox Code Playgroud)
结果是nginx路由工作得很好,我可以在家看到"欢迎来到nginx"网页,但我得到的其他三条路径:
Input/output errorRStudio和Shiny工作负载在通过单个负载均衡器进行曝光时均有效,分别映射到8787和3838.
谁能指出我哪里错了?
QS:
小智 4
正如拉德克(Radek)建议的那样,ingress.kubernetes.io/rewrite-target: /需要重写您的请求。但是,GKE 入口控制器目前不支持此功能,这也是您收到 404 响应的原因。
相反,在 GKE 上,您必须使用nginx 入口控制器。
然后,您将能够为 rstudio 和遵守重写规则的闪亮图像配置入口:
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
name: r-ingress
annotations:
kubernetes.io/ingress.class: "nginx"
nginx.ingress.kubernetes.io/rewrite-target: /
spec:
rules:
- http:
paths:
- backend:
serviceName: rstudio
servicePort: 8787
path: /rstudio/*
- backend:
serviceName: shiny1
servicePort: 3838
path: /shiny1/*
- backend:
serviceName: shiny5
servicePort: 80
path: /shiny5/*
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
780 次 |
| 最近记录: |