Kong的Docker部署

目录

Docker

安装启用Docker

数据库

创建数据库容器

Cassandra

PostgreSQL 

设置数据库

Cassandra

PostgreSQL

启动Kong服务

安装、运行状态确认

镜像信息

容器信息

Kong服务运行状态

参考文章



Docker

安装启用Docker

#安装 Docker
yum install docker
#启用 Docker 服务
systemctl enable docker
#开始 Docker 服务
systemctl start docker

创建 Kong 专有网络

主要是用于容器间的互相发现和通讯

docker network create kong-net

数据库

 

Kong的运行需要数据库的支持,目前支持 PostgreSQL 和 Cassandra,版本要求如下

 

数据库 版本要求
PostgreSQL  >=9.5
Cassandra >=3

 

 

 

 

创建数据库容器

可选择 Cassandra 或者 PostgreSQL

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" \
-e "POSTGRES_PASSWORD=kong" \
postgres:9.6

 

设置数据库

  • 此处【KONG_DATABASE】参数根据数据库的不同分别为【cassandra】和【postgres
  • 如果Kong版本低于0.15,则使用【bootstrap】子命令替换为【up
  • 如果Kong版本低于0.15,子命令【migrations】不应和【bootstrapup】同时使用

Cassandra

docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=cassandra" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:latest kong migrations bootstrap

 

PostgreSQL

docker run --rm \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kong" \
-e "KONG_CASSANDRA_CONTACT_POINTS=kong-database" \
kong:latest kong migrations bootstrap

 

启动Kong服务

docker run -d --name kong \
--network=kong-net \
-e "KONG_DATABASE=postgres" \
-e "KONG_PG_HOST=kong-database" \
-e "KONG_PG_PASSWORD=kong" \
-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

 

部分情况下,docker logs kong 会报 permission denied

在 docker run 命令追加 --privileged 参数即可,只是原因还不是很理解(kong2.0无此问题,0.15版本有)

 

安装、运行状态确认

镜像信息

[root@kong ~]# docker images
REPOSITORY            TAG                 IMAGE ID            CREATED             SIZE
docker.io/cassandra   3                   31c37745a656        4 days ago          378 MB
docker.io/kong        latest              abec1dd8af91        2 weeks ago         144 MB
[root@kong ~]#

 

容器信息

未成功启动的容器需要增加【-a】参数才可以看到

[root@kong ~]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                                                                NAMES
fb527794e381        kong:latest         "/docker-entrypoin..."   26 minutes ago      Up 26 minutes       0.0.0.0:8000-8001->8000-8001/tcp, 0.0.0.0:8443-8444->8443-8444/tcp   kong
0294df228b0a        cassandra:3         "docker-entrypoint..."   27 minutes ago      Up 27 minutes       7000-7001/tcp, 7199/tcp, 9160/tcp, 0.0.0.0:9042->9042/tcp            kong-database
[root@kong ~]#

 

Kong服务运行状态

http://localhost:8001/ 或 http://localhost:8001/status 均可

[root@kong ~]# curl -i http://localhost:8001/status
{ "database": { "reachable": true } }
[root@kong ~]#

 

参考文章

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章