Docker安裝Kong API Gateway並使用


我最新最全的文章都在 南瓜慢說 www.pkslow.com ,文章更新也只在官網,歡迎大家來喝茶~~

1 簡介

Kong不是一個簡單的產品,本文講的Kong主要指的是Kong API Gateway,即API網關。這次主要是簡單體驗一把,通過Docker安裝,然后使用它的Route功能。

2 安裝

創建Docker的Network:

# 創建
$ docker network create kong-net
# 檢查
$ docker network list

Kong可以使用無數據庫模式,為了窺探一下它的配置,我們還是使用數據庫,啟動如下:

$ docker run -itd --network=kong-net \
    --name kong-database \
    -e POSTGRES_DB=kong \
    -e POSTGRES_USER=pkslow \
    -e POSTGRES_PASSWORD=pkslow-kong \
    -p 5432:5432 \
    postgres:13

接着進行migrations操作,可以理解為是准備數據庫:

$ docker run --rm \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong-database" \
     -e "KONG_PG_USER=pkslow" \
     -e "KONG_PG_PASSWORD=pkslow-kong" \
     kong:2.5.0-ubuntu kong migrations bootstrap

准備就緒后,就可以啟動Kong了:

$ docker run -itd --name kong \
     --network=kong-net \
     -e "KONG_DATABASE=postgres" \
     -e "KONG_PG_HOST=kong-database" \
     -e "KONG_PG_USER=pkslow" \
     -e "KONG_PG_PASSWORD=pkslow-kong" \
     -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 127.0.0.1:8001:8001 \
     -p 127.0.0.1:8444:8444 \
     kong:2.5.0-ubuntu

它的Admin端口為8001,通過下面命令驗證:

$ curl -i http://localhost:8001/

3 測試Route功能

先創建一個服務,可以理解為注冊一個服務,服務名為pkslow,地址為( www.pkslow.com ):

$ curl -X POST --url http://localhost:8001/services/ --data 'name=pkslow' --data 'url=https://www.pkslow.com'

創建路由規則,路徑為/pkslow,對應的服務為pkslow:

$ curl -X POST --url http://localhost:8001/services/pkslow/routes --data 'paths[]=/pkslow'

這樣,當我們訪問路徑/pkslow時,其它訪問的就是服務pkslow的內容。

訪問測試,注意端口為8000了:

$ curl -i -X GET --url http://localhost:8000/pkslow

到此,我們就成功安裝並使用了Kong Gateway的Route功能了。

4 總結

Kong的強大在於它可以安裝許多的插件來實現各種功能,如驗證、限流、緩存等。它的強大,等你來挖掘。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM