Kong基礎搭建教程


Kong基礎搭建教程

在微服務的搭建過程中我們往往需要將多個服務進行聚合從而提供對外服務,經過實際的調研最終選定Kong作為最終的網關。

一、Kong環境搭建

1. 下載鏡像

下載數據庫鏡像

docker pull postgres:9.6

下載kong鏡像

docker pull kong:2.0

2. 創建網絡

為了保證互相可以正常訪問,這里單獨創建一個網絡。

docker network create kong-net

3. 創建數據庫

為了保證數據能夠得到保存,我們這里利用pg創建一個數據庫。

docker run -d --name kong-database --network=kong-net -p 5432:5432 -e "POSTGRES_USER=kong" -e "POSTGRES_DB=kong" postgres:9.6

4. 初始化數據庫

為了保證后續kong能夠正確使用數據庫,這里我們必須提前進行數據庫的初始化操作。

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

如果順利運行則最終會輸出Database is up-to-date表示數據庫完成初始化操作。

5. 啟動Kong

完成了以上的相關准備工作后我們這里就可以啟動網關了。

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:2.0

通過以上配置我們可以得知,我們把管理端口調整到了80018444端口,而對應對外負責處理請求的端口則是80008443(SSL)。如果成功啟動則我們通過本地瀏覽器訪問8001端口將會看到對應輸出內容。

二、 Konga環境搭建

1. 下載鏡像

docker pull pantsel/konga:0.14.7

2. 初始化數據庫

這里為了符合實際,這里將采用上述教程中已經創建的pg數據庫,首先我們需要進入容器進行數據庫創建。

docker exec -it kong-database psql -U kong

進入后輸入以下語句創建數據庫。

CREATE DATABASE "konga" WITH ENCODING='UTF8';

完成創建后通過\q退出控制台,借助我們使用konga對數據庫進行初始化操作。

docker run --rm --network=kong-net pantsel/konga:0.14.7 -c prepare -a postgres -u postgresql://kong@kong-database/konga

如果沒有任何錯誤就完成了konga的數據庫初始化工作,我們接着往下開始部署konga看板。

3. 啟動konga

下面我們直接啟動對應的看板UI。

docker run -d -p 1337:1337 --network=kong-net -e "TOKEN_SECRET=123456" -e "DB_ADAPTER=postgres" -e "DB_HOST=kong-database" -e "DB_USER=kong" -e "DB_DATABASE=konga" -e "NODE_ENV=production" --name konga pantsel/konga:0.14.7

完成后我們通過訪問localhost:1337即可看到注冊頁面,此時我們需要注冊一個管理員賬戶就可以對kong進行管理了。

4. 利用Konga創建服務

完成賬戶注冊后用戶使用注冊的賬戶進入管理界面就可以對Kong進行控制了,首先我們選擇SERVICES菜單進入到服務列表中,通過按鈕ADD NEW SERVICE將會彈出新建服務的窗口我們按照如下進行對應參數的填寫即可。

  • Name:填寫服務的名稱(如 kong-api)
  • Protocol:服務的協議(如 http)
  • Host: 上游服務器地址(如 本機IP)
  • Port:上游服務端口(如 8001)
  • Path:上游服務路徑(如 /)

其他參數如RetriesConnect timeoutWrite timeoutRead timeout主要是設定請求的充實次數和超時間等。

完成以上服務后我們還需要進行路由設定,指定對應的域名請求路由到該服務上。我們通過點擊剛創建的服務可以看到左側出現四個菜單,分別是Service detailsRoutesPluginsEligible Consumers,這里我們選擇Routes選項進入到路由列表,通過點擊ADD ROUTE按鈕將會彈出路由新建窗口,這里我們需要按照如下順序填入對應的參數即可。

  • Name:路由名稱(如 kong-api)
  • Hosts:域名地址(如 www.kong.com)
  • Paths:二級路徑(如 /)
  • Methods:請求方式(如 GET)

其他參數默認即可,其中需要注意HostsPathsMethods可以填寫多個值,所以需要錄入完成后回車進行確認,否則點擊創建將會提示參數未填寫。

完成以上的操作后我們通過本地的Hosts文件將域名www.kong.com解析到本地然后通過訪問http://www.kong.com:8000即可看到Kong的Admin Api輸出的內容,這樣我們就完成了一個API的創建,當然還可以通過豐富的插件使Kong更符合我們的應用。

三、 監控Kong

1. 環境准備

這里需要使用到PrometheusGrafana,為了避免版本導致的區別這里提供了對應百度雲的下載地址,大家可以自行進行下載。

Prometheus對應提取碼為2b1r

Grafana對應提取碼為mjym

完成以上下載后需要解壓到對應文件夾下即可。

2. 啟用插件

為了能夠采集數據,這里我們需要通過Plugins開啟Prometheus插件,成功開啟后通過localhost:8001/metrics就可以看看到指標了。

接着我們需要針對Prometheus進行配置,打開prometheus.yml文件,新增如下內容。

  - job_name: 'kong'
    scrape_interval: 5s
    static_configs:
    - targets: ['localhost:8001']

完成后開啟prometheus.exe就可以完成數據采集了。

3. 可視化

此時我們打開Grafana文件夾,通過其中的bin目錄下的grafana-server.exe啟動服務,然后訪問localhost:3000利用初始賬戶密碼進行登錄(admin/admin)。
進入后添加Prometheus數據源。由於AppMetrics已經提供了對應的看板所以我們可以通過ID7424直接導入,並選擇正確的數據源就可以看到最終的效果了。


免責聲明!

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



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