Windows?Docker部署Kong網(wǎng)關(guān)的實現(xiàn)步驟
一、Kong 網(wǎng)關(guān)版本
Kong Gateway 有開源免費版和企業(yè)版,兩個不同的版本。當(dāng)前企業(yè)版有些功能是需要收費的,今天這里部署的是開源免費版本 3.6.x 系列。兩個版本之間的區(qū)別,請見 官方文檔。

二、部署 Kong 網(wǎng)關(guān)
部署 Kong 網(wǎng)關(guān),需要先部署依賴的 db、初始化 db 數(shù)據(jù),然后再進行 kong 網(wǎng)關(guān)部署。
2.1 創(chuàng)建 kong-net 網(wǎng)絡(luò)
打開 Docker Desktop 切換到 Linux 容器,然后在 PowerShell 執(zhí)行下面命令,則會創(chuàng)建 kong-net 網(wǎng)絡(luò),如果已存在 kong-net 網(wǎng)絡(luò),則不需要創(chuàng)建。
docker network create kong-net
2.2 部署 PostgreSQL
接著,PowerShell 執(zhí)行下面命令,會部署 Kong Gateway 依賴的 PostgreSQL 數(shù)據(jù)庫。這里安裝的是 13 版本,DB 和 Kong Gateway 的般般之間會有依賴關(guān)系,不建議部署其他版本。
docker run -d --name kong-postgresql-13 --network=kong-net -p 5432:5432 -v C:\ProgramDatas\Docker\Containers\kong-database-13:/var/lib/postgresql/data -e "POSTGRES_USER=kong" -e "POSTGRES_DB=kong" -e "POSTGRES_PASSWORD=kongpass" postgres:13
-參數(shù) -p 5432:5432 將 PostgreSQL 默認端口 5432 映射到物理機的 5432 端口。
-參數(shù) --network=kong-net 指定 PostgreSQL 容器的網(wǎng)絡(luò)。
-參數(shù) -v C:\ProgramDatas\Docker\Containers\kong-database-13:/var/lib/postgresql/data 將 PostgreSQL 容器內(nèi)的 /var/lib/postgresql/data 目錄映射到物理機的 C:\ProgramDatas\Docker\Containers\kong-database-13 進行數(shù)據(jù)持久化。
-參數(shù) -e “POSTGRES_USER=kong” 指定 PostgreSQL 的用戶名為 kong。
-參數(shù) -e “POSTGRES_DB=kong” 指定 PostgreSQL 的數(shù)據(jù)庫名稱為 kong。
-參數(shù) -e “POSTGRES_PASSWORD=kongpass” 指定 PostgreSQL 的用戶密碼為 kongpass。
2.3 初始化 PostgreSQL
接著,PowerShell 執(zhí)行下面命令,會在 postgres 數(shù)據(jù)庫,初始化 Kong Gateway 數(shù)據(jù)。命令里面也指定了 Kong Gateway 的版本 3.6.1.0。
docker run --rm --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-postgresql-13" -e "KONG_PG_PASSWORD=kongpass" -e "KONG_PASSWORD=test" kong/kong-gateway:3.6.1.0 kong migrations bootstrap
-參數(shù) -e “KONG_DATABASE=postgres” 指定數(shù)據(jù)庫的類型為 PostgreSQL 數(shù)據(jù)庫。
-參數(shù) “KONG_PG_HOST=kong-postgresql-13” 指定 PostgreSQL 的服務(wù)器地址,應(yīng)為同在 kong-net 網(wǎng)絡(luò),所以就可以使用 PostgreSQL 的容器名稱,即主機名。
-參數(shù) “KONG_PG_PASSWORD=kongpass” 連接 PostgreSQL 的密碼。
-參數(shù) kong/kong-gateway:3.6.1.0 指定 kong-gateway 初始化數(shù)據(jù)的版本。
2.4 部署 Kong Gateway
接著,PowerShell 執(zhí)行下面命令,會部署 kong-gateway 服務(wù)。這里安裝的是 3.6.1.0 ,如果安裝其他版本,需要注意依賴 DB 的對應(yīng)版本。
docker run -d --name kong-gateway-3.6.1.0 --network=kong-net -e "KONG_DATABASE=postgres" -e "KONG_PG_HOST=kong-postgresql-13" -e "KONG_PG_USER=kong" -e "KONG_PG_PASSWORD=kongpass" -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" -e "KONG_ADMIN_GUI_URL=http://localhost:8002" -e KONG_LICENSE_DATA -p 8000:8000 -p 8443:8443 -p 8001:8001 -p 8444:8444 -p 8002:8002 -p 8445:8445 -p 8003:8003 -p 8004:8004 kong/kong-gateway:3.6.1.0
-參數(shù) -e “KONG_DATABASE=postgres” 指定 Kong Gateway 使用的數(shù)據(jù)庫類型為 PostgreSQL 數(shù)據(jù)庫。
-參數(shù) -e “KONG_PG_HOST=kong-postgresql-13” 指定 PostgreSQL 的服務(wù)器地址,應(yīng)為同在 kong-net 網(wǎng)絡(luò),所以就可以使用 PostgreSQL 的容器名稱,即主機名。
-參數(shù) -e “KONG_PG_USER=kong” 連接 PostgreSQL 的用戶名。
-參數(shù) -e “KONG_PG_PASSWORD=kongpass” 連接 PostgreSQL 的密碼。
-參數(shù) -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” 指定 Kong Gateway 相關(guān)日志的存儲目錄。
-參數(shù) -e “KONG_ADMIN_LISTEN=0.0.0.0:8001” 指定 Kong Gateway Admin API 的端口為 8001。
-參數(shù) -e “KONG_ADMIN_GUI_URL=http://localhost:8002” 指定 Kong Gateway 默認 UI 管理界面訪問端口為 8002。
三、部署 KongA UI
部署 KongA 管理界面,需要先部署依賴的 db、初始化 db 數(shù)據(jù),然后再進行 KongA 部署。
3.1 部署 PostgreSQL
KongA 也依賴于 DB,所以先部署一個 KongA 需要的數(shù)據(jù)庫 PostgreSQL。建議不要和 Kong 所使用的數(shù)據(jù)庫放一起,解耦。在 PowerShell 執(zhí)行下面命令,即可啟動一個 PostgreSQL 服務(wù),這里使用的是 9.6 版本,不建議使用其他版本。
docker run -d --name konga-postgresql-9.6 --network=kong-net --privileged=true -p 5433:5432 -v C:\ProgramDatas\Docker\Containers\konga-postgresql-9.6:/var/lib/postgresql/data -e "POSTGRES_USER=konga" -e "POSTGRES_DB=konga" -e "POSTGRES_PASSWORD=12345" postgres:9.6
-參數(shù) -v C:\ProgramDatas\Docker\Containers\konga-postgresql-9.6:/var/lib/postgresql/data 將 PostgreSQL 容器內(nèi)的 /var/lib/postgresql/data 目錄映射到物理機的 C:\ProgramDatas\Docker\Containers\kong-database-9.6 進行數(shù)據(jù)持久化。
-參數(shù) -e “POSTGRES_USER=kong” 指定 PostgreSQL 的用戶名為 konga。
-參數(shù) -e “POSTGRES_DB=kong” 指定 PostgreSQL 的數(shù)據(jù)庫名稱為 konga。
-參數(shù) -e “POSTGRES_PASSWORD=kongpass” 指定 PostgreSQL 的用戶密碼為 12345。
3.2 初始化 PostgreSQL
KongA 也需要初始化數(shù)據(jù),在 PowerShell 執(zhí)行下面命令,即可初始化 KongA 數(shù)據(jù)。命令里面也指定了KongA 的版本 0.14.9。
docker run --rm --network=kong-net pantsel/konga:0.14.9 -c prepare -a postgres -u postgres://konga:12345@konga-postgresql-9.6:5432/konga
-參數(shù) -u postgres://konga:12345@konga-postgresql-9.6:5432/konga 指定連接 PostgreSQL 的信息(db host、db user、db pwd、db name)。
3.3 部署 KongA
接著,PowerShell 執(zhí)行下面命令,會部署 KongA 服務(wù)。這里安裝的是 0.14.9 ,如果安裝其他版本,需要注意依賴 DB 的對應(yīng)版本。KongA 已經(jīng)在 2020 停止更新了,這里安裝的是最后一個版本。
docker run -d --net=kong-net -p 1337:1337 -e "DB_ADAPTER=postgres" -e "DB_HOST=konga-postgresql-9.6" -e "DB_PORT=5432" -e "DB_USER=konga" -e "DB_PASSWORD=12345" -e "DB_DATABASE=konga" -e "NODE_ENV=production" --name konga-0.14.9 pantsel/konga:0.14.9
3.4 連接 Kong Gateway
打開瀏覽器,訪問 http://localhost:1337 地址,第一次登錄需要初始化用戶信息。連接 Kong Gateway ,如果 Kong Gateway 和 KongaA 在同一個 Docker 需要用 http://host.docker.internal:8001 地址。否則,使用 http://127.0.0.1:8001/ 則會在 KongA 容器內(nèi)部,找到自己的 8001 端口,無法連接到 Kong Gateway,這一點日志也有體現(xiàn)。

到此這篇關(guān)于Windows Docker部署Kong網(wǎng)關(guān)的實現(xiàn)步驟的文章就介紹到這了,更多相關(guān)Docker部署Kong網(wǎng)關(guān) 內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
Docker-Compose搭建Spark集群的實現(xiàn)方法
本文主要介紹了Docker-Compose搭建Spark集群的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2022-05-05
在Ubuntu?Server?22.04上安裝?Docker的詳細步驟記錄
通過使用容器技術(shù),Docker能夠讓開發(fā)人員將應(yīng)用及其依賴環(huán)境一同打包,從而實現(xiàn)快速部署、一致的開發(fā)環(huán)境和優(yōu)秀的可移植性,這篇文章主要給大家給大家介紹了關(guān)于在Ubuntu?Server?22.04上安裝?Docker詳細步驟的相關(guān)資料,需要的朋友可以參考下2024-08-08
解決docker?pull出現(xiàn)錯誤:Error?response?from?daemon
這篇文章主要給大家介紹了關(guān)于解決docker?pull出現(xiàn)錯誤:Error?response?from?daemon的相關(guān)資料,這個錯誤提示一般是因為你沒有權(quán)限拉取對應(yīng)的鏡像,文中將解決辦法介紹的非常詳細,需要的朋友可以參考下2023-12-12
docker中的volume和bind?mount區(qū)別講解
這篇文章主要介紹了docker的volume和bind?mount區(qū)別,介紹了volume?相對于bind?mount的優(yōu)點及volume操作,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下2022-08-08
docker-compose安裝部署NebulaGraph圖數(shù)據(jù)庫的詳細過程
NebulaGraph Studio是一款可以通過Web訪問的開源圖數(shù)據(jù)庫可視化工具,搭配NebulaGraph內(nèi)核使用,提供構(gòu)圖、數(shù)據(jù)導(dǎo)入、編寫nGQL查詢等一站式服務(wù),這篇文章主要介紹了docker-compose安裝部署NebulaGraph圖數(shù)據(jù)庫的詳細過程,感興趣的朋友一起看看吧2023-12-12

