在docker中安装Kong

目录

有关如何在Docker中使用Kong的详细信息,可以在托管该映像的DockerHub存储库中找到:kong我们还有一个具有内置编排和可伸缩性Docker Compose模板

使用数据库

这是一个简单的示例,显示了如何将Kong容器连接到Cassandra或PostgreSQL容器。
创建一个Docker网络
您将需要创建一个自定义网络,以使容器能够发现彼此并进行通信。在此示例中kong-net为网络名称,您可以使用任何名称。
$ docker network create kong-net
启动你的数据库
如果您想使用Cassandra容器:
$ docker run -d –name kong-database
               –network=kong-net
               -p 9042:9042
               cassandra:3
如果您想使用PostgreSQL容器:
$ docker run -d –name kong-database
               –network=kong-net
               -p 5432:5432
               -e “POSTGRES_USER=kong”
               -e “POSTGRES_DB=kong”
               postgres:9.6
初始化数据库
使用临时Kong容器运行迁移:
$ 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,但是您应该KONG_DATABASE使用cassandra更新环境变量 postgres
Kong <0.15的注意事项:Kong版本低于0.15(最大0.14)时,请使用up子命令代替bootstrap还要注意,Kong <0.15时,永远不要同时运行迁移。一次只能有一个Kong节点执行迁移。对于0.15、1.0及更高版本,此限制被取消。
启动
运行迁移并准备好数据库后,启动将连接到数据库容器的Kong容器,就像临时迁移容器一样:
$ 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正在运行:
5分钟的快速入门快速学习如何使用Kong 

无数据库模式

在无数据库模式下启动Kong的步骤如下:
创建一个Docker网络
这与Pg / Cassandra指南中的相同。我们也使用kong-net网络名称,也可以将其更改为其他名称。
$ docker network create kong-net
在无数据库模式下运行Kong并非必须严格执行此步骤,但是如果您将来要添加其他内容(例如由Redis集群备份的限速插件),则这是一个很好的预防措施。
创建一个Docker卷
出于本指南的目的,Docker Volume是主机内部的一个文件夹,可以映射到容器中的文件夹。卷有一个名称。在这种情况下,我们将命名为我们的kong-vol
$ docker volume create kong-vol
您现在应该可以检查该卷了:
$ docker volume inspect kong-vol
结果应类似于以下内容:
[
     {
         “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
在无数据库模式下启动Kong
尽管可以使用just来启动Kong容器KONG_DATABASE=off,但通常还是希望通过KONG_DECLARATIVE_CONFIG变量名将声明性配置文件作为参数包括在内 为此,我们需要使文件在容器内“可见”。我们使用-v标志来实现这一点,该标志将kong-vol映射/usr/local/kong/declarative容器中文件夹。
$ 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.yml中添加的一些实体:
例如,获取服务列表:
api使用:
创建route

curl -i -X POST –url
http://10.26.27.222:8001/services/gaoyaohuatest/routes –data ‘protocols[]=http’ –data ‘hosts[]=10.26.27.222:8000′ –data ‘paths[]=/gaoyaohua’


创建service

curl -i -X POST –url
http://10.26.27.222:8001/services/ –data ‘name=gaoyaohuabaidutest’ –data ‘url=https://www.baidu.com’



创建upstream

curl -i -X POST –url
http://10.26.27.222:8001/upstreams/ –data ‘name=gaoyaohuaupdn


创建traget

curl -i -X POST –url
http://10.26.27.222:8001/upstreams/gaoyaohuaupdn/targets –data “target=10.26.21.42:8888 –data “weight=100”

发表评论

您的电子邮箱地址不会被公开。