溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點(diǎn)擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Kong 四大參考說明

發(fā)布時(shí)間:2020-05-01 02:50:21 來源:網(wǎng)絡(luò) 閱讀:309 作者:erdongx 欄目:系統(tǒng)運(yùn)維

Kong 的官方有很多詳細(xì)的參考說明,比如配置文件、命令行、Admin API、代理、負(fù)載均衡,接下來我們簡單看一下,都提供什么內(nèi)容。

本文主要基于 Kong 1.3 版本進(jìn)行描述,如有更新,請查看最新文檔。

配置文件

通過對配置文件的 深入理解,可以優(yōu)化 Kong 集群、使用的數(shù)據(jù)庫、配置 Nginx ,
官方的參考資料是 Configuration Reference

Kong 在啟動(dòng)時(shí),可以通過 -c 或者 --conf參數(shù)來指定配置文件,比如:

kong start -c /path/to/kong.conf

可以使用 check 命令來校驗(yàn)配置文件的語法正確性,

$ kong check <path/to/kong.conf>
configuration at <path/to/kong.conf>
 is valid 

Kong 的配置在加載的時(shí)候也會(huì)去找同名的環(huán)境變量,所有也可以通過環(huán)境變量來配置 Kong,而且環(huán)境變量的優(yōu)先級(jí)高于配置文件??梢酝ㄟ^環(huán)境變量來配置 Kong 這樣方便了基于容器的部署和運(yùn)行。如果要使用環(huán)境變量,需要以 KONG_ 字段開頭。

命令行參考

所提供的CLI(命令行接口)允許您啟動(dòng)、停止和管理 Kong 實(shí)例。CLI 可以管理本地節(jié)點(diǎn)(如在當(dāng)前機(jī)器上)??梢詤⒖脊倬W(wǎng)文檔
CLI Reference

主要由如下命令

全局標(biāo)記

所有的命令都可以使用如下參數(shù)

  • --help : 打印命令的幫助信息
  • --v : 打開詳情模式
  • --vv : 打開 debug 模式

可用的命令

  • kong check 檢查配置文件語法等等
  • kong config 使用申明式配置文件。
  • kong health 檢查該節(jié)點(diǎn)上的 kong 是否在運(yùn)行
  • kong migration 管理 Kong 的數(shù)據(jù)庫
  • kong prepare 此命令準(zhǔn)備Kong前綴文件夾及其子文件夾和文件。
  • kong quit 優(yōu)雅的退出 Kong 實(shí)例
  • kong reload 重載 kong 實(shí)例配置
  • kong restart 重啟 kong 實(shí)例
  • kong start 啟動(dòng) kong 實(shí)例
  • kong stop 停止 kong 實(shí)例
  • kong version 打印版本信息

Admin API 參考

Admin API 的說明可以參考官網(wǎng)文檔:
Admin API Reference

Admin API 接受 2 兩種連接類型在每個(gè)終端。
分別是

  • application/x-www-from-urlencoded
  • application/json

共有 9 個(gè)對象,分別是:

  • Service Object
  • Route Object
  • Consumer Object
  • Plugin Object-Precedence
  • Certificate Object
  • CA Certificate Object
  • SNI Object
  • Upstream Object
  • Target Object

Proxy 參考

在本文檔中,我們將通過詳細(xì)解釋Kong的路由功能和內(nèi)部工作原理來介紹它的代理功能。

Kong 公開了幾個(gè)接口,可以通過兩個(gè)配置屬性進(jìn)行調(diào)整:

  • proxy_listen,它定義了一個(gè)地址/端口列表,Kong將在這些地址/端口上接受來自客戶機(jī)的公共通信,并將其代理到您的上游服務(wù)(默認(rèn)為8000)。
  • admin_listen,它還定義了一個(gè)地址和端口列表,但是這些應(yīng)該被限制為只能由管理員訪問,因?yàn)樗鼈児_了Kong的配置功能:Admin API(默認(rèn)情況下為8001)。
    Proxy Reference

Kong 經(jīng)常用到的術(shù)語有:

  • client : 指下游客戶向 Kong 代理端口發(fā)出請求。
  • upstream service :指自己位于 Kong 后面的 API/Service,客戶端請求被轉(zhuǎn)發(fā)到這些API/Service。
  • Service : 顧名思義,服務(wù)實(shí)體是上游服務(wù)的抽象。服務(wù)的示例包括數(shù)據(jù)轉(zhuǎn)換微服務(wù)、計(jì)費(fèi)API等。
  • Route : 這是指 Kong 路由實(shí)體。Route 是進(jìn)入 Kong 的入口點(diǎn),并為要匹配的請求定義規(guī)則,然后路由到給定的服務(wù)。
  • Plugin : 指 Kong 的 “plugins”,它是在代理生命周期中運(yùn)行的業(yè)務(wù)邏輯片段。插件可以通過管理 API 進(jìn)行配置——可以是全局的(所有傳入的流量),也可以是在特定的路由和服務(wù)上配置。

負(fù)載均衡參考

Kong 為多個(gè)后端服務(wù)提供了多種負(fù)載平衡請求的方法: 一種簡單的基于 DNS 的方法,另一種是更動(dòng)態(tài)的環(huán)形平衡器,該平衡器還允許在不需要DNS服務(wù)器的情況下進(jìn)行服務(wù)注冊。

負(fù)載均衡可以參考官網(wǎng)文檔
Load Balancing Reference 來了解。

基于 DNS 的負(fù)載均衡

當(dāng)使用基于 DNS 的負(fù)載平衡時(shí),后端服務(wù)的注冊是在 Kong 之外完成的,而 Kong 只接收來自 DNS 服務(wù)器的更新。

如果主機(jī)名沒有解析為上游名稱或 DNS 主機(jī)文件中的名稱,則使用包含主機(jī)名(而不是IP地址)的主機(jī)定義的每個(gè)服務(wù)都將自動(dòng)使用基于 DNS 的負(fù)載平衡。

DNS 記錄 ttl 設(shè)置(生存時(shí)間)決定信息刷新的頻率。當(dāng)使用 ttl 為 0 時(shí),每個(gè)請求都將使用自己的 DNS 查詢進(jìn)行解析。這將帶來性能損失,但是更新/更改的延遲將非常低。

A 記錄

一個(gè) A 記錄對應(yīng)一個(gè)或者多個(gè) IP 地址,因此,當(dāng)主機(jī)名解析為 A 記錄時(shí),每個(gè)后端服務(wù)必須有自己的IP地址。

因?yàn)闆]有權(quán)重信息,所以所有條目在負(fù)載平衡器中都將被視為同等權(quán)重,并且平衡器將進(jìn)行直接的循環(huán)。

SRV 記錄
SRV記錄包含所有IP地址的權(quán)重和端口信息。后端服務(wù)可以通過IP地址和端口號(hào)的唯一組合來標(biāo)識(shí)。因此,一個(gè)IP地址可以在不同的端口上承載相同服務(wù)的多個(gè)實(shí)例。

因?yàn)闄?quán)重信息是可用的,所以每個(gè)條目將在負(fù)載平衡器中獲得自己的權(quán)重,并執(zhí)行加權(quán)循環(huán)。

DNS 的優(yōu)先級(jí)

1、前面解析的最后一個(gè)成功類型
2、SRV 記錄
3、A記錄
4、CNAME 記錄

這些可以在配置文件的 dns_order 進(jìn)行配置。

基于 Ring-balancer 的負(fù)載均衡

使用 Ring-balancer 時(shí),后端服務(wù)的添加和刪除將由 Kong 處理,不需要 DNS 更新。Kong 將作為服務(wù)注冊處。節(jié)點(diǎn)可以通過一個(gè)HTTP請求添加/刪除,并將立即啟動(dòng)/停止接收流量。

配置 Ring-balancer 工作需要有 Upstream 和 target 兩個(gè)實(shí)體。

  • target : 帶有后端服務(wù)所在端口號(hào)的IP地址或主機(jī)名,例如。“192.168.100.12:80”。每個(gè)目標(biāo)都獲得一個(gè)額外的權(quán)重,以指示它獲得的相對負(fù)載。IP地址可以是IPv4和IPv6格式。
  • upstream : 一個(gè) virtual hostname,可用于路由的 host 字段,例如一個(gè) upstream 是 weather.v2 會(huì)收到服務(wù) host=weather.v2.service 的所有請求。

小結(jié)

本來大致講述了 Kong 的配置文件、命令行、代理、負(fù)載均衡等內(nèi)容。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI