Обслуживание статического сайта с использованием Kubernetes и Ambassador - PullRequest
0 голосов
/ 25 января 2019

У меня есть статический пакет веб-сайтов, который я хочу использовать в своем кластереПакет хранится в облачном хранилище Google, что заставляет меня думать, что мне может не понадобиться отдельный «сервер» для возврата файлов.

Мне удалось заставить Python-Flask ссылаться на файлы из корзины, но я не могу понять, как заставить Ambassador сделать то же самое.Я мог бы сделать что-то вроде добавления пакета в экземпляр nginx, но я не хочу встраивать JS-пакет в любой образ докера, чтобы я мог выполнять быстрые обновления.

Я не могу понять, как установитьвверх по маршруту посла, чтобы сделать следующее:

Если пользователь заходит на

https://my -website.com /

Они получают 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?

1 Ответ

0 голосов
/ 27 марта 2019

Ambassador на самом деле не является веб-сервером (как отмечает Ласло Валко). Чтобы это работало, он должен передать ваш запрос на другой веб-сервер - это, безусловно, может быть Flask (на самом деле диагностическая служба Ambassador - это приложение Flask, запускаемое во время загрузки внутри модуля Ambassador), но оно должно быть запущено. где-то. :)

...