使用 Docker 安装 Kong
条评论原文地址:https://docs.konghq.com/install/docker/
有关如何在Docker中使用Kong的详细信息可以在镜像图像的DockerHub存储库中找到:kong。
我们还有一个Docker Compose template,内置编排和可扩展性。
使用数据库
这是一个快速示例,显示如何将Kong容器连接到Cassandra或PostgreSQL容器。
创建一个Docker network
您需要创建一个自定义网络,以允许容器相互发现和通信。在此示例中,kong-net
是网络名称,您可以使用任何名称。1$ docker network create kong-net启动数据库
如果您想使用Cassandra容器:1234$ docker run -d --name kong-database \--network=kong-net \-p 9042:9042 \cassandra:3如果您想使用PostgreSQL容器:
123456$ docker run -d --name kong-database \--network=kong-net \-p 5432:5432 \-e "POSTGRES_USER=kong" \-e "POSTGRES_DB=kong" \postgres:9.6准备数据库
使用临时Kong容器运行迁移:123456$ docker run --rm \--network=kong-net \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=kong-database" \-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \kong:latest kong migrations bootstrap在上面的示例中,配置了Cassandra和PostgreSQL,但您应该使用
cassandra
或postgres
更新KONG_DATABASE
环境变量。
对于Kong 小于0.15的注意事项:如果Kong版本低于0.15(最高0.14),请使用up子命令而不是bootstrap。另请注意,如果Kong 版本小于0.15,则不应同时进行迁移;只有一个Kong节点应该一次执行迁移。对于0.15,1.0及以上的Kong,此限制被取消。启动Kong
迁移运行并且数据库准备就绪后,启动一个将连接到数据库容器的Kong容器,就像临时迁移容器一样:123456789101112131415$ docker run -d --name kong \--network=kong-net \-e "KONG_DATABASE=postgres" \-e "KONG_PG_HOST=kong-database" \-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \-p 8000:8000 \-p 8443:8443 \-p 8001:8001 \-p 8444:8444 \kong:latest使用Kong
Kong正在运行:1$ curl -i http://localhost:8001/通过5分钟的快速入门快速学习如何使用Kong。
无数据库模式
在无DB模式下启动Kong所涉及的步骤如下:
创建一个Docker network
这与Pg / Cassandra指南中的相同。我们也使用kong-net
作为网络名称,它也可以改为其他东西。1$ docker network create kong-net在无DB模式下运行Kong并不严格需要此步骤,但如果您希望将来添加其他内容(如Redis群集备份的速率限制插件),这是一个很好的预防措施。
创建Docker volume
对于本指南的目的,Docker卷是主机内的一个文件夹,可以将其映射到容器中的文件夹中。卷有一个名称。在这种情况下,我们将命名我们的
kong-vol
1$ docker volume create kong-vol您现在应该能够检查volume:
1$ docker volume inspect kong-vol结果应该类似于:
1234567891011[{"CreatedAt": "2019-05-28T12:40:09Z","Driver": "local","Labels": {},"Mountpoint": "/var/lib/docker/volumes/kong-vol/_data","Name": "kong-vol","Options": {},"Scope": "local"}]注意
MountPoint
条目。我们将在下一步中使用该路径。准备声明性配置文件
声明性配置格式指南中描述了语法和属性。
添加您需要的任何核心实体(服务,路由,插件,消费者等)。
在本指南中,我们假设您将其命名为kong.yml。
将其保存在上一步中提到的
MountPoint
路径中。就本指南而言,这将是
/var/lib/docker/volumes/kong-vol/_data/kong.yml
在无DB模式中启动Kong
虽然可以仅使用
KONG_DATABASE=off
来启动Kong容器,但通常还需要通过KONG_DECLARATIVE_CONFIG
变量名称将声明性配置文件作为参数包含在内。为此,我们需要从容器中使文件“visible”。我们使用-v
标志来实现这一点,它将kong-vol
卷映射到容器中的/usr/local/kong/declarative
文件夹。123456789101112131415$ docker run -d --name kong \--network=kong-net \-v "kong-vol:/usr/local/kong/declarative" \-e "KONG_DATABASE=off" \-e "KONG_DECLARATIVE_CONFIG=/usr/local/kong/declarative/kong.yml" \-e "KONG_PROXY_ACCESS_LOG=/dev/stdout" \-e "KONG_ADMIN_ACCESS_LOG=/dev/stdout" \-e "KONG_PROXY_ERROR_LOG=/dev/stderr" \-e "KONG_ADMIN_ERROR_LOG=/dev/stderr" \-e "KONG_ADMIN_LISTEN=0.0.0.0:8001, 0.0.0.0:8444 ssl" \-p 8000:8000 \-p 8443:8443 \-p 8001:8001 \-p 8444:8444 \kong:latest使用Kong
Kong应该正在运行,它应该包含一些以Kong .yml添加的实体。
1$ curl -i http://localhost:8001/例如,获取服务列表:
1$ curl -i http://localhost:8001/services
本文标题:使用 Docker 安装 Kong
文章作者:qianyugang
发布时间:2019-08-29
最后更新:2019-09-04
原始链接:https://102no.com/2019/08/29/kong-install-docker/
版权声明:本网站发表的全部原创内容(不仅限于文章、图片,包含文章评论),著作权均归其发表者所有,均采用 CC BY-NC-SA 4.0 CN 许可协议。转载请注明作者以及原文链接,商业授权请联系作者。
分享