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 ~]#

 

參考文章

 

 

 

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