首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >大使API网关未接听服务

大使API网关未接听服务
EN

Stack Overflow用户
提问于 2019-01-22 21:04:55
回答 1查看 238关注 0票数 2

我是这里的新大使用户。我已经走遍了tutorial,试图了解如何使用大使网关。我正在尝试通过Docker Compose在本地运行它,直到它准备好部署到生产环境中的K8s。

我的用例是所有http流量都从端口80进入,然后被定向到适当的服务。在工作目录中包含一个引用/config目录中的服务的docker-compose.yaml文件是否被认为是最佳实践?我这样问是因为这看起来并不是真的拾取了我的文件( postgres的启动不会显示在控制台中)。当我运行"docker ps“时,我只显示:

代码语言:javascript
复制
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:

代码语言:javascript
复制
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中:

代码语言:javascript
复制
---
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=<>
EN

回答 1

Stack Overflow用户

发布于 2019-01-23 05:51:06

volumesenvironment不是Ambassador Mappings的有效配置。大使允许您代理postgres,但身份验证必须由您的应用程序处理。

话虽如此,看起来你的Postgres容器没有启动。(可能是因为它需要初始配置)。您可以使用以下命令检查错误:

代码语言:javascript
复制
$ docker ps -a | grep postgres
$ docker logs <container-id-from-previous-step>

您还可以查看postgres docker编写示例here

在工作目录中包含一个引用/config目录中的服务的docker-compose.yaml文件是否被认为是最佳实践?

这是非常标准的,但是你可以使用任何你喜欢的目录。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54308960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档