kong 集羣部署(混合模式 Hybrid Mode)

在1.x版本中,kong的集羣其實是通過運行多個實例,訪問同一個數據庫來實現的。具體表現爲

  • 定時輪詢數據庫,獲取最新的 Services,Routes,Consumers,Plugins等信息,並緩存它們,直到下一次請求數據庫時再更新數據
  • 如果某個節點通過admin api對數據庫中保存的代理配置進行更改,這個節點本身會立即生效,但其他節點需要等到下一次輪詢時纔會獲取最新的數據

到了2.0版本,kong提供了 混合模式 來部署kong集羣

在這種模式下,kong的節點被分爲兩種角色,分別是控制節點CP和數據節點DP

控制節點 CP

用於提供admin api,負責直接連接數據庫並管理各種代理配置。它監聽兩個端口

  • admin_listen (默認8001): 原來的admin api
  • cluster_listen (默認8005): 用於與數據節點DP連接,提供最新的配置

數據節點 DP

提供代理的服務,但是代理配置不再從數據庫直接獲取,而是通過連接 CP 進行獲取

監聽端口

  • proxy_listen (默認8000) :提供代理服務

混合模式的優點

相較於1.x版本的集羣,現在的混合模式有以下優點

  • 減少數據庫訪問量:現在只有CP節點直接連接數據庫
  • 提高安全性:一個DP節點的服務器遭受入侵不會影響到其他的DP節點
  • 易於管理:只需要通過CP節點就可以獲取集羣狀態信息

安裝步驟

1. 生成證書/祕鑰對

首先生成證書/祕鑰對保證CP與DP之間的通信安全

  • 執行命令 kong hybrid gen_cert 在當前目錄下生成cluster.crtcluster.key這兩個文件

將這兩個文件傳輸到所有需要部署CP和DP節點的服務器上

2. 部署CP節點

  • 複製默認配置
cd /etc/kong
cp kong.conf.default cp.conf
vim cp.conf
  • 修改配置文件
role = control_plane #指定爲CP節點

#上一步生成的文件路徑
cluster_cert = cluster.crt
cluster_cert_key = cluster.key

# 還需要指定數據庫配置
# database = postgres
# pg_host =
# pg_password =
  • 啓動
    • kong start -c /etc/kong/cp.conf
    • -c 後面填自己改的配置文件名

3. 部署多個DP節點

  • 修改配置文件
role = data_plane #指定爲DP節點
cluster_control_plane = CP的ip:8005
database = off

#第一步生成的文件路徑
cluster_cert = cluster.crt
cluster_cert_key = cluster.key
lua_ssl_trusted_certificate = cluster.crt
  • 啓動
    • kong start -c /etc/kong/dp.conf
    • -c 後面填自己改的配置文件名

備註: CP節點不能夠再作爲代理服務,如果需要在CP節點所在的服務器再部署一個DP節點的話,需要更改配置 prefix 來區分它們的工作目錄(它們的端口號不衝突,無需修改)

4. 檢查集羣狀態

  • 訪問 http://{{cp節點ip}}:8001/clustering/status 就可以查看當前集羣中有幾個數據節點加入了

混合模式部署的官方文檔地址 https://docs.konghq.com/2.0.x/hybrid-mode/

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