Ambassador API Gateway не забирает услуги - PullRequest
0 голосов
/ 22 января 2019

Я новый пользователь Ambassador здесь.Я прошел через учебник , пытаясь понять, как использовать посольский шлюз.Я пытаюсь запустить это локально через Docker Compose, пока он не будет готов к развертыванию на K8s в рабочей среде.

Мой пример использования заключается в том, что весь трафик http поступает на порт 80, а затем направляется в соответствующую службу.Рекомендуется ли иметь в рабочем каталоге файл docker-compose.yaml, который ссылается на службы в каталоге / config?Я спрашиваю, потому что это, кажется, фактически не забирает мои файлы (запуск postgres не отображается в консоли).И когда я запускаю «docker ps», я только показываю:

CONTAINER ID        IMAGE                                PORTS                NAMES
8bc8393ac04c        05a916199684                         k8s_statsd_ambassador-8564bfb874-q97l9_default_e775d686-a93c-11e8-9caa-025000000001_0
1c00f2341caf        d7cf7cf837f9                         k8s_ambassador_ambassador-8564bfb874-q97l9_default_e775d686-a93c-11e8-9caa-025000000001_0
fe20c4819514        05a916199684                         k8s_statsd_ambassador-8564bfb874-xzvkl_default_e775ffe6-a93c-11e8-9caa-025000000001_0
ba6415b028ba        d7cf7cf837f9                         k8s_ambassador_ambassador-8564bfb874-xzvkl_default_e775ffe6-a93c-11e8-9caa-025000000001_0
9df07dc5083d        05a916199684                         k8s_statsd_ambassador-8564bfb874-w5vsq_default_e773ed53-a93c-11e8-9caa-025000000001_0
682e1f9902a0        d7cf7cf837f9                         k8s_ambassador_ambassador-8564bfb874-w5vsq_default_e773ed53-a93c-11e8-9caa-025000000001_0
bb6d2f749491        quay.io/datawire/ambassador:0.40.2   0.0.0.0:80->80/tcp   apigateway_ambassador_1

У меня есть docker-compose.yaml:

version: '3.1'

# Define the services/containers to be run
services:
  ambassador:
    image: quay.io/datawire/ambassador:0.40.2
    ports:
      - 80:80
    volumes:
      # mount a volume where we can inject configuration files
      - ./config:/ambassador/config
  postgres:
    image: my-postgresql
    ports:
    - '5432:5432'

и в /config/mapping-postgres.yaml:

---
apiVersion: ambassador/v0
kind: Mapping
name: postgres_mapping
rewrite: ""
service: postgres:5432
volumes:
  - ../my-postgres:/docker-entrypoint-initdb.d
environment:
  - POSTGRES_MULTIPLE_DATABASES=db1, db2, db3
  - POSTGRES_USER=<>
  - POSTGRES_PASSWORD=<>

1 Ответ

0 голосов
/ 23 января 2019

volumes и environment не являются допустимыми конфигами для Ambassador Mappings . Посол позволяет вам использовать прокси для postgres, но ваше приложение должно обрабатывать аутентификацию.

Сказав это, похоже, ваш контейнер Postgres не запускается. (Возможно, потому что для этого нужен начальный конфиг). Вы можете проверить наличие ошибок с помощью:

$ docker ps -a | grep postgres
$ docker logs <container-id-from-previous-step>

Вы также можете проверить пример составления докгера здесь .

Рекомендуется ли иметь в рабочем каталоге файл docker-compose.yaml, который ссылается на службы в каталоге / config?

Это довольно стандартно, но вы можете использовать любой каталог, который вам нравится.

...