我有一个要在群集上提供服务的静态网站捆绑包。捆绑软件存储在Google云存储桶中,这使我认为我实际上可能不需要单独的“服务器”来返回文件。
我已经能够让Python-Flask从存储桶中引用文件,但是我似乎无法弄清楚如何让大使做同样的事情。我可以做类似将捆绑软件添加到nginx实例的操作,但是我不想将JS捆绑软件构建到任何docker映像中,所以我可以进行快速更新。
我不知道如何设置大使路线以执行以下操作:
如果用户去
他们从我的Google存储桶index.html
中获取了my-bucket/index.html
,当index.html内部引用文件(/static/js/main.js)时,大使将提供在my-bucket/static/js/main.js
上找到的文件
我尝试过设置服务,如下所示:
apiVersion: v1
kind: Service
metadata:
annotations:
getambassador.io/config: |
---
apiVersion: ambassador/v0
kind: Mapping
name: website_mapping
prefix: /website/
service: https://my-bucket-url/index.html
name: website-service
labels:
app: website-service
spec:
ports:
- port: 80
targetPort: 80
name: http-website
selector:
app: website
但是导航到my-website.com/website/
只能看到503错误,控制台提示“未声明纯文本文档的编码字符”
我觉得我要解决这个问题。我可以使用Ambassador像这样直接从水桶里上菜吗,还是我真的需要像nginx这样的东西吗?
答案 0 :(得分:1)
大使实际上不是Web服务器(正如Laszlo Valko指出的那样)。它需要将您的请求代理到其他Web服务器上才能起作用-可以肯定是Flask(实际上,Ambassador诊断服务是在启动时在Ambassador pod内启动的Flask应用程序),但是它需要运行某处。 :)