4. Plugin - 認證 Authentication、授權 ACL (待)
5. Plugin - Logging (待)
6. Plugin - Traffic 流量管制 (待)
Kong 支援多種 OS,
但拜 DevOps 日益盛行,Docker微服務架構越來越被大家採用,對於要入門的新手來說大大簡化的安裝門檻。以 Docker 方式安裝 Kong:
一、Kong 安裝:
參考: https://docs.konghq.com/install/docker/
1. 建立一個 docker network
$ docker network create kong-net
2. 建立啟動一個 Postgres 資料庫 Container
$ docker run -d --name kong-database \
--network=kong-net \
-p 5432:5432 \
-e "POSTGRES_USER=kong" \
-e "POSTGRES_DB=kong" \
postgres:9.6
$ 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 up
$ 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
Browser打上Kong Server IP 的 8001 port,驗證 Kong 的安裝,
以我環境的 IP 為例:http://192.168.56.9:8001/。
出現下面這個畫面,就裝成功了。
二、Konga - Kong Admin GUI 安裝 (Docker Container):
Kong 有提供管理用的 Restful API ,讓管理人員可以註冊刪除 API、加入Plugin等等,但還是裝個 UI 來管理容易的多,Kong Admin UI 有很多套,我這邊是用 Konga 這套。沒有什麼特別原因,其他的沒去試。
參考: https://github.com/pantsel/konga/blob/master/README.md
1. 初始化 Konga 資料庫資料
$ docker run --network=kong-net --rm pantsel/konga:latest -c prepare -a postgres -u postgresql://kong@kong-database:5432/konga
2. 建立啟動 Konga Container
$ docker run -p 1337:1337 --network kong-net -e "TOKEN_SECRET=KONGAKEY" -e "DB_ADAPTER=postgres" -e "DB_URI=postgresql://kong@kong-database:5432/konga" -e "NODE_ENV=production" --name konga pantsel/konga
3. 第一次登入,預設跳出註冊 Admin User 畫面
Konga啟在 1337 port,以我的環境為例: http://192.168.56.9:1337。
4. 設定 Kong 連線
Konga Admin 網站還不知道要連去哪個 Kong Server,所以要新增一個 Kong Connection。
指定前面驗證 Kong 安裝的 URL, http://192.168.56.9:8001。
5. 功能選單
連線設定成功,左方功能選單會出現 INFO, SERVICES, ROUTES, APIS, CONSUMMERS, PLUGINS, UPSTREAMS, CERTIFICATES等功能。
環境大致這樣就建立完成了。
共建立三個 docker container,包括:postgres, kong , konga。
而對於流量很大的 API Gateway,通常會建立多部的 Kong Server Instance,前面再加一個網路 Load Balancer 來應付。又如果上游的 API 服務有多個 Instance,那 Kong 有支援 Load Balance 機制,讓同一個 API 服務,可以分流到多個 API 服務實體上。
參考: 官方Load Balance機制文件、Kong Load Balancer 解說(簡中)。
1. Kong 安裝、Konga - Kong Admin GUI 安裝
2. 註冊 API、Postman 測試 API
3. Kong Load Balancer (Upstream, Target, Hash-on)
4. Plugin - 認證 Authentication、授權 ACL (待)
5. Plugin - Logging (待)
6. Plugin - Traffic 流量管制 (待)
沒有留言:
張貼留言