日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

2020-10-28

發布時間:2024/8/23 编程问答 28 豆豆
生活随笔 收集整理的這篇文章主要介紹了 2020-10-28 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Kubernetes的門戶-Ingress

目前Kubernetes(K8s)已經真正地占領了容器編排市場,是默認的云無關計算抽象,越來越多的企業開始將服務構建在K8s集群上。在K8s中,組件通過Service對外暴露服務,常見的包括NodePort、LoadBalancer、Ingress等。其中Ingress主要提供HTTP層(7層)路由功能,相比TCP(4層)的負載均衡具備非常多的優勢(路由規則更加靈活、支持金絲雀、藍綠、A/B Test發布模式、SSL支持、日志、監控、支持自定義擴展等),是目前K8s中HTTP/HTTPS服務的主流暴露方式。

Ingress提供的7層負載均衡具有非常強大的能力,例如:

  • 會話保持:讓相同的session ID路由到同一臺后端機器,保證每個用戶的會話只在一臺機器上處理。
  • 基于內容的轉發:能夠根據HTTP協議內容進行轉發,例如Host、URL甚至是PostBody等。
  • 重寫請求:能夠對用戶的請求進行動態修改,非常適用于新老系統的兼容性改造。
  • 加密:在負載均衡上配置SSL,提供統一的證書管理,每個服務器無需單獨維護證書。
  • 健康檢查增強:可基于業務規則進行健康檢查,而不僅僅是判斷端口連通性,使健康檢查更加精確。
  • 日志監控:全量7層訪問日志,能夠獲取每個請求的結果、耗時、請求大小等信息,能夠基于訪問日志監控到每個服務的質量。

Ingress日志分析與監控


原始的訪問日志記錄了網站的每個訪問請求,每個請求包括用戶地址、Host、URL、狀態碼、耗時、請求大小等多個維度的信息,基于訪問日志可以統計出不同維度下的訪問qps、成功率、延遲等黃金指標,以此實現可以針對各種維度的網站質量監控。但構建一套完整的訪問日志分析系統還是非常困難,這其中包括了很多過程和工作:采集、存儲、分析、可視化、告警等。在實施過程中最為復雜的點在于:

  • 采集問題:如何保證日志采集的可靠性、性能消耗、延時問題;
  • 分析:在保證分析靈活性的同時能夠保持快速的分析、查詢速度以及較低的實施成本;
  • 自動化:尤其在業務規模比較大的情況下,如何智能的監控和分析各個服務的狀態是一個迫切需要的功能。



為簡化廣大用戶對于Ingress日志分析與監控的門檻,阿里云容器服務和日志服務將Ingress日志打通(官方文檔),只需要應用一個yaml資源即可完成日志采集、分析、可視化等一整套Ingress日志方案的部署。
這套系統主要包括:

  • 日志實時采集方式:通過Logtail實時采集Ingress產生的輸出日志,并進行格式轉換
  • 存儲:SLS提供負載均衡的實時隊列用于日志的存儲,并提供按照TTL的存儲方式,可任意設置保存的日志天數。
  • 查詢/分析:基于SLS提供的SQL92語法可實現對Ingress日志各個維度的交互式分析與計算,例如統計UV變化,訪問請求分布,TOP延遲等。
  • 可視化大盤:將常見的監控、分析場景需求以圖表的形式固化成大盤,用戶絕大部分時間只需要查看大盤即可了解整個系統的狀態。
  • ?

    再次升級-從1.0到2.0

    ?

    Ingress日志分析與監控的方案已經發布2年左右,目前已經有上萬的實例使用了該方案。在長期的使用中,我們也發現了這套方案的一些限制,為了適應新時代的DevOps節奏,我們需要對方案進行整體的升級,提供更加簡單、更快速、更普惠、更智能的Ingress日志監控方案。

  • 更簡單:整個方案用戶的使用更加簡單,不需要去關注SLS的相關的資源,可以直接以單獨Ingress監控APP的方式使用;
  • 更快速:1.0的方案基于原始訪問日志實時計算,在時間跨度較大或日志量較大的情況下查詢速度較慢,使用體驗較差;
  • 更普惠:由于計算依賴原始日志,所以必須將日志長期保存,原始日志的存儲量較高,會產生較高的費用;
  • 更智能:隨著K8s集群中運行服務數量的增加,傳統的監控方式越來越吃力,依賴靜態指標的告警規則很難監控所有的異常,因此急需更加智能的AIOps能力來解放生產力。
  • 方案架構



    為了達到高性能、低成本、快速、智能等要求,SLS和阿里云容器服務團隊聯合對Ingress日志監控方案進行了一次架構升級,正式發布了2.0版本的Ingress日志中心,日志中心包括以下幾個部分:

  • 原始訪問日志存儲:當Ingress Controller產生訪問請求后,會實時將請求的訪問日志推送到用戶自身的Logstore中,整個過程的延遲一般在3-5秒即可完成,SLS的Logstore具備高可靠、實時索引、自動擴容等功能,保證日志的可靠性和可擴展性。
  • 預聚和:由于原始訪問日志量巨大,基于原始日志計算指標性能開銷較大,因此SLS專門推出了基于訪問日志的指標預聚和能力,能夠將上百萬甚至上億的訪問日志實時聚合成指標類型的時序數據,數據量會降低1-2個數量級,后續的分析與監控可直接基于時序數據進行,大大提高效率。
  • 智能巡檢:對于預聚和后的Metrics(指標數據),SLS提供了機器學習的自動巡檢功能,幫助用戶自動去檢測各個Ingress的各個維度的指標異常,將異常信息實時展現在時序的圖表中,結合實時告警能力進行自動的告警配置。此外后續還會支持異常打標,基于用戶反饋的信息進行更加精確的檢測。

  • 通過以上3層數據鏈路,實現了從原始訪問日志到預聚和的指標最后再到機器學習的異常事件整個數據的流轉,對于用戶來說,告警和監控只需要基于指標和智能巡檢的結果進行,而涉及到具體服務的問題分析可以再回到原始的訪問日志并基于SLS提供的各種SQL統計方式進行自定義的排查和分析。

    ?

    實時預聚和



    Ingress的訪問日志數量和用戶訪問成正比,在原始訪問日志上實時計算指標的開銷較大,一般不適合長時間的指標分析,并且原始日志存儲的成本較高,一般不會將日志存儲較長時間,但我們還是希望指標數據能夠盡可能長的存儲,這樣可以在分析的時候查看更長時間的數據。為此SLS專門為Ingress訪問日志定制了一套全托管指標實時預聚合的功能,能夠實時將Ingress的訪問日志聚合成指標并存儲在SLS的時序庫中,這樣所有的監控數據查詢工作都可以基于聚合后的時序數據進行,大大提升監控數據的查詢效率。

    ?

    豐富可視化

    Ingress訪問日志分析的一個重要工作是可視化系統的搭建,我們需要針對不同場景創建不同的報表以便滿足各個方面的需求,例如:

  • 整體大盤:包括網站當前的訪問UV/PV、整體延遲、成功率等,這個是老板們和SRE需要看的數據,需要保證數據時效性和刷新的速度
  • 監控大盤:能夠把監控需要關注的各種數據(延遲(平均、P99/P9999等)、流量、成功率、錯誤碼、TOP類統計)等顯示在一張報表上,并且能夠支持各種維度的過濾,方便定位到問題的實例。
  • 訪問大盤:顯示和用戶相關的訪問信息,例如PV/UV、訪問的地域分布、設備分布等,一般情況技術Leader會關注,另外部分的運營同學可能也會需要這部分數據。
  • 異常大盤:顯示異常巡檢的指標信息,能夠把異常的指標顯示在報表上,方便查看。
  • 后端流量分析:快速分析后端的流量、QPS、延遲、錯誤率等分布信息,能夠快速查找到“調皮”的機器。
  • ?

    智能巡檢

    在時序監控場景中,用戶往往先確定監控對象,并通過其歷史數據,結合業務經驗,得到不同組的閾值參數,通過各種手段(同比、環比、連續觸發幾次等)進行監控,往往一個監控對象要設計4~5條監控規則,并配置不同的參數。還有更大的問題,各個參數閾值無法快速的復用到不同的類似觀測對象中,當觀測對象的規模達到數千,甚至上萬后,傳統的配置效率底下,無法滿足在大規則時序指標數據下的監控需求。流式算法具有天然的優勢可以解決上面的問題,用戶只需要發起一個機器學習服務,模型自動拉取數據,實時訓練,實時反饋(通俗地說:“來一個點,學習一個點,檢測一個點”),在極大的降低成本的同時,實現對每一條線的單獨建模,單獨分析,單獨模型參數保存,實現時序異常檢測的“千線千面”。

    智能HPA

    ?

    基于業務訪問量的HPA

    HPA(Horizontal Pod Autoscaler)是Kubernetes提供的一個標準組件,用于POD的橫向自動擴縮容,例如:當Pod CPU、內存等指標上升到一定程度時會自動擴容,當這些指標下去后會自動縮容。這樣能夠保證在用戶體驗不變的情況下集群整體的資源使用都能處于一個較低的位置。


    默認的HPA只能針對集群的一些標準指標(CPU、內存、網絡等)進行擴容,這種擴容方式相對靜態,而且反應不出業務的情況。因此我們對HPA進行了一些擴展,支持按照Ingress訪問QPS進行擴容。即可以設置某個Service下的Pod限定能夠處理的QPS,當QPS上升到一定高度時會自動擴容一些Pod/節點,當QPS下降時會自動縮容一些Pod/節點。

    ?

    基于業務量預測的HPA

    HPA的預測原理是判斷某些指標的值進行擴縮容,而指標的值相對來說都有10-30秒左右的延遲,并且還有幾次的double check時間,因此從壓力上升到擴容的時間基本上在2-3分鐘左右,如果Pod啟動還需要預熱的話可能要更久,這段期間用戶的訪問請求很可能會出現高延遲或錯誤的情況。


    因此最好的方式是我們能夠提前知道未來幾分鐘的訪問請求量,當我們發現未來訪問請求會很高的時候,提前把Pod擴容出來并進行預熱,這樣可以在請求真正提升時Pod的資源已經提前分配好。為此我們結合SLS與阿里云達摩院聯合研發的多模型預測算法,實時預測Ingress上每個服務的訪問請求,并把這些預測的指標提供給HPA做動態擴容,能夠在請求量即將超過閾值的時候提前擴出Pod/節點,保證用戶訪問一直流暢。

    ?

    總結

    Ingress訪問日志中心提供了訪問日志分析、秒級監控指標分析、實時告警等功能,并提供基于AIOps的自動異常巡檢功能。基于這些功能我們可以快速構建出一套企業級的監控系統,能夠以非常小的工作量實現公司所有訪問入口的統一監控。

    ?

    ?

    原文鏈接
    本文為阿里云原創內容,未經允許不得轉載。

    總結

    以上是生活随笔為你收集整理的2020-10-28的全部內容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。