У меня есть пакет статических веб-сайтов, который я хочу обслуживать в своем кластере. Пакет хранится в корзине облачного хранилища Google, что заставляет меня думать, что на самом деле мне может не понадобиться отдельный «сервер» для возврата файлов.
Мне удалось заставить Python-Flask ссылаться на файлы из корзины, но я не могу понять, как заставить Ambassador сделать то же самое. Я мог бы сделать что-то вроде добавления пакета в экземпляр nginx, но я не хочу встраивать пакет JS в какой-либо образ докера, чтобы я мог делать быстрые обновления.
Я не могу понять, как настроить маршрут посла, чтобы сделать следующее:
Если пользователь переходит на
Они получают index.html
обслуживание из моего Google Bucket my-bucket/index.html
и когда index.html ссылается на файл внутри (/static/js/main.js), Ambassador обслуживает файл, найденный в 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?
https://my-bucket-url/index.html
в свой браузер, вы получите то, что хотите? Амбассадор будет обслуживать этот контент (как обратный прокси). Конечно, чтобы это работало, my-website.com должен указывать на IP-адрес службы Ambassador. - person Laszlo Valko   schedule 27.01.2019