Kubernetes 大使API网关不';t接送服务

Kubernetes 大使API网关不';t接送服务,kubernetes,docker-compose,api-gateway,Kubernetes,Docker Compose,Api Gateway,我是这里的新大使用户。我走了一遍,试图了解如何使用大使网关。我试图通过Docker Compose在本地运行它,直到它准备好部署到生产中的K8s 我的用例是,所有http通信都在端口80上,然后定向到适当的服务。在工作目录中有一个docker-compose.yaml文件引用/config目录中的服务,这被认为是最佳实践吗?我之所以这样问,是因为这看起来并没有实际拾取我的文件(postgres启动程序并没有显示在控制台中)。当我运行“docker ps”时,我只显示: CONTAINER ID

我是这里的新大使用户。我走了一遍,试图了解如何使用大使网关。我试图通过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=<>
---
API版本:大使/v0
种类:地图
名称:postgres_映射
重写:“
服务:博士后:5432
卷数:
-../my postgres:/docker entrypoint initdb.d
环境:
-POSTGRES_多个_数据库=db1、db2、db3
-POSTGRES_用户=
-POSTGRES_密码=

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

话虽如此,您的Postgres容器似乎没有启动。(可能是因为它需要初始配置)。您可以通过以下方式检查错误:

$ docker ps -a | grep postgres
$ docker logs <container-id-from-previous-step>
$docker ps-a | grep postgres
$docker日志
您还可以查看postgres docker撰写示例

在工作目录中有一个docker-compose.yaml文件引用/config目录中的服务,这被认为是最佳实践吗


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

我的postgres有一个项目,docker-compose.yml文件包含与上面的mapping-postgres.yaml相同的卷和环境值。据我所知,我可以这样做,大使配置文件有效地取代了独立的docker compose文件。这不对吗?据我所知不是这样,你看到的文档中有没有这样的地方?我只是想了解如何使用Ambassage来管理我的图片,无论是网络还是博士后。在我启动postgres docker compose后,听起来我需要通过Embassador docker compose启动我的web服务?我在本地(localhost)运行postgres,但我的docker compose服务都无法连接。我需要对Docker网络做些什么吗?