中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

Kong 的健康檢查和監控

發布時間:2020-04-11 09:55:25 來源:網絡 閱讀:406 作者:erdongx 欄目:系統運維

您可以讓 Kong 代理的 API 使用 ring-balancer , 通過添加包含一個或多個目標實體的upstream 實體來配置,每個目標指向不同的IP地址(或主機名)和端口。ring-balancer 將在不同的target之間平衡負載,并基于 uptream 配置對目標執行健康檢查,使它們成為健康或不健康的,無論它們是否響應,ring-balancer 將只把流量路由到健康的target。

Kong 支持兩種健康檢查方式,可以單獨使用,也可以組合使用。

  • active checks:其中定期請求目標中的特定 HTTP 或 HTTPS 端點,并根據其響應確定目標的健康狀態;

  • passive checks: Kong 分析正在代理的通信,并根據目標的行為響應請求來確定目標的健康狀況。

健康和不健康的 target

健康檢查功能的目標是為給定的 Kong 節點動態地將 target 標記為健康或不健康。沒有集群范圍內的健康信息同步,每個 Kong 節點分別確定其 target 的健康狀況。這是可以取到的,因為在給定的點上,一個 Kong 節點可能能夠成功地連接到一個目標,而另一個節點則無法到達。這樣第一個節點將認為它是健康的,而第二個則會將其標記為不健康,并開始將流量路由到upstream 的其他 target。

無論是主動探測(針對主動健康檢查)還是代理請求(針對被動健康檢查),都會生成用于確定目標是否健康的數據。請求可能會產生TCP錯誤、超時或HTTP狀態代碼。基于此信息,健康檢查器更新了一系列內部計數器:

  • 如果返回的狀態碼配置為 “healthy”,則將增加目標的 “Successes” 計數器,并清除其所有其他計數器;
  • 如果連接失敗,將增加目標的 “TCP failure”計數器,并清除 “Successes” 計數器;
  • 如果超時,將增加目標的 “timeouts” 計數器并清除 “Successes” 計數器;
  • 如果返回的狀態代碼配置為 “unhealthy”,它將增加目標的 “HTTP failures” 計數器,并清除 “Successes” 計數器。

如果任何 “TCP failure”、“HTTP failure” 或 “timeout” 計數器達到其配置的閾值,則target 將被標記為不健康。

如果 “success” 計數器達到其配置的閾值,則 target 將被標記為健康。
如果一個 upstream 的所有 target 都是不健康,Kong 會將 upstream 的請求返回 503 Service Unavailable

  1. 健康檢查只對狀態是 active 的 target 執行,不修改 Kong 數據庫中目標的活動狀態。

  2. 不健康的 target 不會從 loadbalancer 中刪除,因此在使用哈希算法時不會對balancer 布局產生任何影響(只會跳過它們)。

  3. DNS警告和 Balancer 警告也適用于健康檢查。如果對 target 使用主機名,需要確保DNS服務器始終為完整的 IP地址和名稱,并且不限制響應。如果不這樣做,可能會導致沒有執行健康檢查。

健康檢查的類型

健康檢查有兩種類型,分別是 Active health checksPassive health checks

Active health checks

Active health checks 就是主動探測他們的健康狀態。當 upstream 實體啟用活動健康檢查時,Kong 將定期向 upstream 的每個 target 的配置路徑發出 HTTP 或 HTTPS 請求。這允許 Kong 根據探測結果自動啟用和禁用 balancer 中的 target 。

Active health checks 的周期性是可以被配置的,當 target 是健康還是不健康。如果其中一個的interval值設置為零,則在相應的場景中禁用檢查。如果兩者都為零,則完全禁用活動健康檢查。

Passive health checks

Passive health checks 是否基于由 Kong 代理的請求(HTTP/HTTPS/TCP)執行檢查,而不生成額外的流量。當 target 變得無響應時,被動健康檢查器將檢測到這一點,并將目標標記為不健康。Ring-balancer 將開始跳過這個 target ,因此不會有更多的流量被路由到它。

當目標的問題解決,并準備再次接收流量時,Kong管理員可以手動通知health checker目標應該再次啟用,通過一個Admin API端點:

$ curl -i -X POST http://localhost:8001/upstreams/my_upstream/targets/10.1.2.3:1234/healthy
HTTP/1.1 204 No Content

這個命令將廣播一個集群范圍的消息,以便將 “health” 狀態傳播到整個 Kong 集群。這將導致 Kong 節點重置在 Kong 節點的所有 worker 中運行的健康檢查器的健康計數器,從而允許環平衡器再次將流量路由到目標。

被動健康檢查的優點是不會產生額外的流量,但它們不能自動將 target 重新標記為健康狀態:“circuit is broken”,需要由系統管理員重新啟用目標。

Kong 的監控

Kong 支持使用 Prometheus 進行監控數據采集,并且官方提供了采集方式和 Grafana 的Dashboard 模板

官方的 Kong Plugin Prometheus 會定期更新,看上去比較活躍。

除了官網以外,有網友也提供了一個監控模板,不過最后一次更新時間是2018 年 5 月 17 日,之后就沒有更新了,大家也可以參考。kong-prometheus-plugin

小結

Kong 的健康檢查主要介紹了健康檢查的類型,這兩類的健康檢查是可以打開和關閉的,打開和關閉的具體方法請參考官網文檔。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

康平县| 嘉峪关市| 合肥市| 贵德县| 黔南| 武山县| 平安县| 嵩明县| 长宁县| 麻江县| 乐安县| 当涂县| 化德县| 五华县| 从化市| 墨江| 绥棱县| 祁阳县| 尼勒克县| 商都县| 珠海市| 犍为县| 鹤岗市| 沾益县| 亚东县| 禄丰县| 沙湾县| 阿坝| 夹江县| 东海县| 永和县| 镶黄旗| 景谷| 韶山市| 凌海市| 柏乡县| 沾益县| 北流市| 海兴县| 马尔康县| 建宁县|