国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门

聚集網(jujiwang.com) - 收錄免費分類目錄信息軟文發布網址提交
免費加入

Kubernetes 集群的可觀察性:監控、日志記錄和故障排除的最佳實踐 (kubernetes)

文章編號:11344時間:2024-09-30人氣:


Kubernetes

Kubernetes 是一個容器編排平臺,用于管理容器化應用程序。隨著 Kubernetes 集群變得越來越復雜和分布式,監控、日志記錄和故障排除變得至關重要以確保正常運行和高可用性。

監控

監控是收集和分析有關 Kubernetes 集群性能和行為的數據的過程。它可以幫助你檢測問題、識別趨勢并優化資源利用率。

最佳實踐

  • 使用 Kubernetes 內置的監控工具(例如 Metrics Server 和 Node Exporter)
  • 使用外部監控解決方案(例如 Prometheus 和 Grafana)
  • kubernetes
  • 監控以下指標:
    • CPU 和內存使用率
    • 網絡流量
    • Pod 和容器狀態
    • 事件和錯誤
  • 設置警報和通知以在出現問題時提醒你

日志記錄

日志記錄是記錄 Kubernetes 集群中發生事件的過程。它可以幫助你調試問題、跟蹤應用程序行為并進行審計。

最佳實踐

  • 使用 Kubernetes 內置的日志記錄工具(例如 journalctl 和 kubectl logs)
  • 使用外部日志記錄解決方案(例如 Fluentd 和 Elasticsearch)
  • 收集以下日志:
    • 應用程序日志
    • Kubernetes 日志
    • 容器和 Pod 日志
    • 事件和錯誤日志
  • 使用日志聚合和分析工具來查找趨勢和模式

故障排除

故障排除是識別和解決 Kubernetes 集群中問題的過程。它需要系統的方法和對集群的深入了解。

最佳實踐

  • 使用 kubectl 工具獲取有關集群和 Pod 的信息
  • 檢查容器和 Pod 狀態(例如使用 kubectl get pods)
  • 查看日志以查找錯誤和警告消息
  • 利用 Kubernetes 事件(使用 kubectl get events)來識別問題
  • 使用診斷工具(例如 kubectl describe 和 kubectl top)來獲取有關集群的詳細信息
  • 利用 Kubernetes 社區資源(例如 Stack Overflow 和 Kubernetes 文檔)來尋求幫助

結論

實施 Kubernetes 集群的可觀察性最佳實踐對于確保正常運行和高可用性至關重要。通過監控、日志記錄和故障排除,你可以快速檢測和解決問題,從而提高集群的性能和可靠性。


技術分享|AWS EKS 與 APISIX 實現微服務架構的實踐指南

本文深入探討了如何利用AWS Elastic Kubernetes Service(EKS)與APISIX實現高效穩定的微服務架構實踐。 微服務架構憑借其靈活性和可擴展性,為企業IT架構提供了更高效的服務管理和部署方式。 Amazon Elastic Kubernetes Service(EKS)作為亞馬遜云科技提供的托管Kubernetes服務,簡化了集群管理和維護流程,使用戶無需處理控制層面或節點的安裝、操作和維護。 借助EKS的特性,結合APISIX的高性能API網關功能,構建出一個高效、穩定且易于管理的微服務架構。 APISIX作為一個云原生、動態、實時、高性能的API網關,提供了豐富的功能,如流量管理、監控、安全等,有助于微服務架構的實現。 通過定義路由規則,APISIX能夠將客戶端請求精準轉發至相應服務。 同時,其豐富的插件支持,如身份驗證、限速、灰度發布等,進一步強化了APISIX在微服務架構中的作用。 全面了解APISIX的特性,包括API Gateway、APISIX Dashboard和插件等核心功能。 API Gateway負責實時管理所有流量,提供路由、負載均衡、認證授權、限流熔斷、數據轉換、日志記錄監控、緩存等服務。 APISIX Dashboard提供可視化配置界面,簡化管理流程,而插件系統則允許用戶擴展和定制功能,以滿足特定需求。 ETCD作為配置存儲和分布式協調系統,確保了APISIX的高可用性和一致性。 在實踐中,部署前需選擇合適EC2實例部署ETCD集群,避免直接部署于EKS上以確保數據持久性與穩定性。 使用Helm工具簡化APISIX在EKS上的部署,并配置其連接ETCD集群。 同時,APISIX Dashboard的部署與使用也需遵循相應步驟,通過配置文件指定ETCD地址,實現可視化管理。 在微服務的路由與管理中,通過Ingress暴露服務,用戶可通過APISIX Gateway和Dashboard的Web界面進行路由添加、插件配置等操作。 觀測性方面,APISIX提供豐富的插件,如prometheus、kafka-logger等,配合第三方工具實現對服務和路由性能的監控、日志記錄等。 安全考慮是實踐中的重要環節,涉及TLS設置、秘鑰管理等,遵循最佳實踐如自動縮放、資源配額和健康檢查,確保系統穩定運行和數據安全。 總結,AWS EKS與APISIX結合為微服務架構提供了強大、靈活且易于管理的解決方案。 通過本文提供的實踐指南,開發者和運維人員能夠實施這一組合方案,實現系統穩定運行、數據安全以及高可用性的保障,為企業技術創新提供堅實基礎。

「微服務架構」Medium的微服務架構實踐

微服務1架構的目標是幫助工程團隊更快,更安全,更高質量地交付產品。 解耦服務允許團隊快速迭代,對系統的其余部分影響最小。

在Medium,我們的技術堆棧始于2012年的單片應用程序。 我們已經構建了幾個衛星服務,但我們還沒有制定一個系統地采用微服務架構的策略。 隨著系統變得越來越復雜并且團隊不斷發展,我們在2018年初轉向了微服務架構。 在這篇文章中,我們希望分享我們有效地做到這一點并避免微服務綜合癥的經驗。

首先,讓我們花一點時間來思考微服務架構是什么,不是什么。 “微服務”是那些過載和混亂的軟件工程趨勢之一。 這就是我們在Medium認為它是什么:

該定義包括三個微服務設計原則:

Three Principles of Modeling Microservices

當我們對微服務進行建模時,我們應該遵守所有三個設計原則。 這是實現微服務架構全部潛力的唯一途徑。 錯過任何一個都會成為反模式。

沒有一個目的,每個微服務最終會做太多事情,成長為多個“單片”服務。 我們不會從微服務架構中獲得全部好處,我們也會支付運營成本。

如果沒有松散耦合,對一個服務的更改會影響其他服務,因此我們無法快速安全地發布更改,這是微服務架構的核心優勢。 更重要的是,緊密耦合引起的問題可能是災難性的,例如數據不一致甚至數據丟失。

如果沒有高凝聚力,我們將最終得到一個分布式單片系統 - 一組混亂的服務,必須同時進行更改和部署才能構建單一功能。 由于多個服務協調的復雜性和成本(有時跨多個團隊),分布式單片系統通常比集中式單片系統差得多。

與此同時,了解 微服務不是什么 很重要:

在Medium,我們總是在做出重大產品或工程決策時會問“為什么現在?”這個問題。 “為什么?”是一個顯而易見的問題,但它假設我們擁有無限的人,時間和資源,這是一個危險的假設。 當你想到“為什么現在?”時,你突然有了更多的限制 - 對當前工作的影響,機會成本,分心的開銷等等。 這個問題有助于我們更好地優先考慮。

我們現在需要采用微服務的原因是我們的單片應用程序已經成為多個方面的瓶頸。

首先,最緊迫和最重要的瓶頸是其性能。

某些計算量很大且I / O很重的任務不適合.我們一直在逐步改進整體應用程序,但事實證明它是無效的。 它的低劣性能使我們無法提供更好的產品而不會使已經非常慢的應用程序變慢。

其次,整體應用程序的一個重要且有點緊迫的瓶頸是它會減慢產品開發速度。

由于所有工程師都在單個應用程序中構建功能,因此它們通常緊密耦合。 我們無法靈活地改變系統的一部分,因為它也可能影響其他部分。 我們也害怕做出重大改變,因為影響太大,有時難以預測。 整個應用程序作為一個整體進行部署,因此如果由于一次錯誤提交導致部署停滯,那么所有其他更改(即使它們完全正常工作)也無法完成。 相比之下,微服務架構允許團隊更快地發貨,學習和迭代。 他們可以專注于他們正在構建的功能,這些功能與復雜系統的其余部分分離。 更改可以更快地進入生產。 他們可以靈活地安全地嘗試重大變革。

在我們新的微服務架構中,更改會在一小時內完成生產,工程師不必擔心它會如何影響系統的其他部分。 該團隊還 探索 了在開發中安全使用生產數據的方法2多年來一直是白日夢。 隨著我們的工程團隊的發展,所有這些都非常重要。

第三,單一應用程序使得難以為特定任務擴展系統或隔離不同類型任務的資源問題。

使用單一的單一應用程序,我們必須擴展和縮小整個系統,以滿足更多資源需求的任務,即使這意味著系統過度配置用于其他更簡單的任務。 為了緩解這些問題,我們對不同類型的請求進行分片,以分離進程。 它們在一定程度上起作用,但不會擴展,因為這些微單一版本的單片服務是緊密耦合的。

最后但同樣重要的是,一個重要且即將成為緊迫的瓶頸是它阻止我們嘗試新技術。 微服務架構的一個主要優點是每個服務都可以使用不同的技術堆棧構建,并與不同的技術集成。 這使我們能夠選擇最適合工作的工具,更重要的是,我們可以快速安全地完成工作。

采用微服務架構并非易事。 它可能會出錯,實際上會損害工程生產力。 在本節中,我們將分享七個在采用早期階段幫助我們的策略:

有人可能會認為采用新的服務器架構意味著產品開發的長時間停頓以及對所有內容的大量重寫。 這是錯誤的做法。 我們永遠不應該為了建立新的服務而建立新的服務。 每次我們建立新服務或采用新技術時,都必須具有明確的產品價值和/或工程價值。

產品價值應以我們可以為用戶提供的利益為代表。 與在單片應用程序中構建值相比,需要一項新服務來提供值或使其更快地交付值。 工程價值應該使工程團隊更好,更快。

如果構建新服務沒有產品價值或工程價值,我們將其留在單一的應用程序中。 如果十年內Medium仍然有一個支持某些表面的單片應用程序,那就完全沒了問題。 從單一應用程序開始實際上有助于我們戰略性地對微服務進行建模。

建立具有明確價值的新服務

有人可能會認為采用新的服務器架構意味著產品開發的長時間停頓以及對所有內容的大量重寫。 這是錯誤的做法。 我們永遠不應該為了建立新的服務而建立新的服務。 每次我們建立新服務或采用新技術時,都必須具有明確的產品價值和/或工程價值。

產品價值應以我們可以為用戶提供的利益為代表。 與在單片應用程序中構建值相比,需要一項新服務來提供值或使其更快地交付值。 工程價值應該使工程團隊更好,更快。

如果構建新服務沒有產品價值或工程價值,我們將其留在單一的應用程序中。 如果十年內Medium仍然有一個支持某些表面的單片應用程序,那就完全沒了問題。 從單一應用程序開始實際上有助于我們戰略性地對微服務進行建模。

單片持久存儲被認為是有害的

建模微服務的很大一部分是對其持久數據存儲(例如,數據庫)進行建模。 跨服務共享持久數據存儲通常似乎是將微服務集成在一起的最簡單方法,然而,它實際上是有害的,我們應該不惜一切代價避免它。 這就是原因。

首先,持久數據存儲是關于實現細節的。 跨服務共享數據存儲會將一個服務的實現細節暴露給整個系統。 如果該服務更改了數據的格式,或者添加了緩存層,或者切換到不同類型的數據庫,則還必須相應地更改許多其他服務。 這違反了松散耦合的原則。

其次,持久數據存儲不是服務行為,即如何修改,解釋和使用數據 。 如果我們跨服務共享數據存儲,則意味著其他服務也必須復制服務行為。 這違反了高內聚的原則- 給定域中的行為泄露給多個服務。 如果我們修改一個行為,我們將不得不一起修改所有這些服務。

在微服務架構中,只有一個服務應該負責特定類型的數據。 所有其他服務應該通過負責服務的API請求數據,或者保留數據的 只讀非規范(可能具體化)副本 。

這可能聽起來很抽象,所以這是一個具體的例子。 假設我們正在構建一個新的推薦服務,它需要來自規范帖子表的一些數據,目前在AWS DynamoDB中。 我們可以通過兩種方式之一為新推薦服務提供發布數據。

在單片存儲模型中,推薦服務可以直接訪問單片應用程序所執行的相同持久存儲。這是一個壞主意,因為:

緩存可能很棘手。 如果推薦服務與單一應用程序共享相同的緩存,我們也必須在推薦服務中復制緩存實現細節;如果推薦服務使用自己的緩存,當單片應用更新帖子數據時,我們將不知道何時使其緩存無效。

如果單片應用程序決定更改為使用RDS而不是DynamoDB來存儲帖子數據,我們將不得不重新實現推薦服務中的邏輯以及訪問帖子數據的所有其他服務。

單片應用程序具有解釋帖子數據的復雜邏輯 ,例如,如何確定帖子是否應該對給定用戶不可見。 我們必須在推薦服務中重新實現這些邏輯。 一旦整體應用程序更改或添加新邏輯,我們也需要在任何地方進行相同的更改。

即使推薦服務是自己的數據訪問模式的錯誤選項,推薦服務仍然停留在DynamoDB上。

在解耦存儲模型中,推薦服務不能直接訪問發布數據,也不能直接訪問任何其他新服務。 發布數據的實??現細節僅保留在一個服務中。 有不同的方法來實現這一目標。

Option A理想情況下,應該有一個擁有帖子數據的Post服務,其他服務只能通過Post服務的API訪問郵政數據。 但是,為所有核心數據模型構建新服務可能是一項昂貴的前期投資。

當人員配置有限時,還有一些更實用的方法。 根據數據訪問模式,它們實際上可能是更好的方式。

在 選項B 中,單一應用程序可讓推薦服務知道何時更新相關的帖子數據。 通常,這不必立即發生,因此我們可以將其卸載到排隊系統。

在 選項C 中,ETL管道生成推薦服務的發布數據的只讀副本,以及可能對推薦有用的其他數據。 在這兩個選項中,推薦服務完全擁有其數據,因此它可以靈活地緩存數據或使用最適合的數據庫技術。

解耦“建立服務”和“運行服務”

如果構建微服務很難,那么運行服務往往更難。 當運行服務與構建每個服務相結合時,它會減慢工程團隊的速度,團隊必須不斷重新發明這樣做。 我們希望讓每項服務都專注于自己的工作而不用擔心如何運行服務的復雜問題,包括網絡,通信協議,部署,可觀察性等。 服務管理應該與每個服務的實現完全分離。

由于最近在 容器化,容器編排,服務網格,應用程序性能監 控等方面的技術進步,“運行服務”的解耦變得比以往更容易實現。

網絡。 網絡(例如,服務發現,路由,負載平衡,流量路由等)是運行服務的關鍵部分。 傳統方法是為每種平臺/語言提供庫。 它工作但不理想,因為應用程序仍然需要非常繁瑣的工作來集成和維護庫。 通常,應用程序仍然需要單獨實現某些邏輯。 現代解決方案是在Service Mesh中運行服務。 在Medium,我們使用 Istio和Envoy作為邊車代理 。 構建服務的應用工程師根本不需要擔心網絡問題。

通信協議 。 無論您選擇哪種技術堆?;蛘Z言來構建微服務,從一個高效,類型化,跨平臺且需要最少開發開銷的成熟RPC解決方案開始是非常重要的。 支持向后兼容性的RPC解決方案也使部署服務更加安全,即使它們之間存在依賴關系。 在Medium,我們選擇了gRPC。

一種常見的替代方案是基于HTTP的REST + JSON,它長期以來一直是服務器通信的福音解決方案。 但是,盡管該堆棧非常適合瀏覽器與服務器通信,但它對于服務器到服務器的 通信效率很低 ,尤其是當我們需要發送大量請求時。 如果沒有自動生成的 存根和樣板代碼 ,我們將不得不手動實現服務器/客戶端代碼。 可靠的RPC實現不僅僅包裝網絡客戶端。 另外,REST是“自以為是”,但總是讓每個人都對每個細節都達成一致很困難,例如,這個調用真的是REST,還是只是一個RPC?這是一種資源還是一種操作?等等

部署。 擁有一致的方法來構建,測試,打包,部署和管理服務非常重要。 所有Medium的微服務都在容器中運行。 目前,我們的編排系統是AWS ECS和Kubernetes的混合體,但僅限于Kubernetes。

我們構建了自己的系統來 構建,測試,打包和部署 服務,稱為BBFD。 它在一致地跨服務工作和為個人服務提供采用不同技術堆棧的靈活性之間取得平衡。 它的工作方式是讓每個服務提供基本信息,例如,要監聽的端口,構建/測試/啟動服務的命令等,BBFD將負責其余的工作。

徹底和一致的可觀察性

可觀察性包括允許我們了解系統如何工作的過程,約定和工具,以及在不工作時對問題進行分類。 可觀察性包括日志記錄,性能跟蹤,指標,儀表板,警報,并且對于微服務架構的成功至關重要。

當我們從單個服務遷移到具有許多服務的分布式系統時,可能會發生兩件事:

我們失去了可觀察性,因為它變得更難或更容易被忽視。

不同的團隊重新發明了輪子,我們最終得到了零碎的可觀察性,這實際上是低可觀察性 ,因為很難使用碎片數據連接點或分類任何問題。

從一開始就具有良好且一致的可觀察性非常重要,因此我們的DevOps團隊提出了一致的可觀察性策略,并構建了支持實現這一目標的工具。 每項服務都會自動獲取詳細的DataDog儀表板,警報和日志搜索,這些服務在所有服務中也是一致的。 我們還大量使用LightStep來了解系統的性能。

并非每一項新服務都需要從零開始構建

在微服務架構中,每個服務都做一件事并且做得非常好。 請注意,它與如何構建服務無關。 如果您從單一服務遷移,請記住,如果您可以從單片應用程序中剝離微服務并不總是必須從頭開始構建。

在這里,我們采取務實的態度。 我們是否應該從頭開始構建服務取決于兩個因素:(1)適合該任務的程度如何;(2)在不同的技術堆棧中重新實現的成本是多少。

如果是一個很好的技術選項并且現有的實現很好,我們將代碼從單片應用程序中刪除,并用它創建一個微服務。 即使采用相同的實現,我們仍將獲得微服務架構的所有好處。

我們的單片單片應用程序的架構使我們可以相對輕松地使用現有實現構建單獨的服務。 我們將在本文稍后討論如何正確構建單片。

尊重失敗,因為他們會發生

在分布式環境中,更多的東西可能會失敗,而且它們會失敗。 如果處理不當,任務關鍵型服務的失敗可能是災難性的。 我們應該始終考慮如何測試故障并優雅地處理故障。

從第一天起避免使用微服務綜合癥

微服務不是靈丹妙藥 - 它解決了一些問題,但創造了一些其他問題,我們將其稱為“微服務綜合癥”。 如果我們從第一天開始就不去考慮它們,那么事情會變得很快,如果我們以后再照顧它們會花費更多。 以下是一些常見癥狀。

隨著最近的技術創新,采用微服務架構要容易得多。這是否意味著我們都應該停止構建單一服務?

雖然新技術支持得更好,但微服務架構仍然存在高度復雜性和復雜性。 對于小型團隊來說,單一的應用程序通常仍然是更好的選擇。 但是,請花些時間來構建單片應用程序,以便以后在系統和團隊成長時更容易遷移到微服務架構。

在Medium,我們在早期的單片應用程序中做出了一些很好的架構決策。

我們的單片應用程序由組件高度模塊化,即使它已經發展成為一個非常復雜的應用程序,包括Web服務器,后端服務和離線事件處理器。 脫機事件處理器單獨運行,但使用完全相同的代碼。 這使得將一大塊業務邏輯剝離到單獨的服務相對容易,只要新服務提供與原始實現相同(高級)的接口即可。

我們的整體應用程序在較低級別封裝了數據存儲詳細信息。 每種數據類型(例如,數據庫表)具有兩層實現:數據層和服務層。

這有助于我們采用微服務架構,因為一種類型數據的實現細節完全隱藏在代碼庫的其余部分。 創建新服務來處理某些類型的數據相對容易且安全。

單片應用程序還可以幫助我們對微服務進行建模,并使我們能夠靈活地專注于系統中最重要的部分,而不是從頭開始為所有微服務建模。

單片應用程序為我們服務了好幾年,但它開始減慢我們從運送偉大的項目和快速迭代。 我們開始系統地和戰略性地采用微服務架構。 我們仍處于這一旅程的早期階段,但我們已經看到了它的優勢和潛力 - 它大大提高了開發效率,使我們能夠大膽地思考并實現大量的產品改進,并解鎖了工程團隊以安全地測試新技術。

加入Medium的工程團隊是一個激動人心的時刻。 如果這聽起來很有趣,請查看我們的工作頁面 - 在Medium工作。 如果您對微服務架構特別感興趣,您可能需要先了解這兩個開頭:高級全棧工程師和高級平臺工程師。

原文 :討論: 請加入知識星球【首席架構師圈】

如何發現Kubernetes中服務和工作負載的異常

大家好,我是來自阿里云的李煌東,今天由我為大家分享Kubernetes監控公開課的第二節內容:如何發現Kubernetes中服務和工作負載的異常。

本次分享由三個部分組成:

一、Kubernetes異常定位存在痛點;

二、針對這些痛點,Kubernetes監控如何更快、更準、更全的發現異常;

三、網絡性能監控、中間件監控等典型案例解析。

Kubernetes異常定位存在痛點

當下的互聯網架構中,越來越多的公司采用微服務+Kubernetes這樣的架構,這樣的架構有如下特點:

首先應用層基于微服務,微服務由解耦開的幾個服務相互調用構成,服務一般職責分明、邊界明確,造成的結果是一個簡單的產品也有幾十、甚至上百個微服務,相互之間的依賴、調用是非常復雜的,這給定位問題帶來比較大的成本。 同時,每個服務的owner可能來自不同團隊,不同的開發,可能使用不同的語言,對我們監控的影響是對每一種語言都需要進行監控工具的接入,投資回報率低。 還有一個特點是多協議,幾乎每種中間件(Redis、MySQL、Kafka)都有他們獨特的協議,怎么要做到快速對這些協議進行觀測,是不小的挑戰。

雖然Kubernetes和容器對上層應用屏蔽了底層的復雜度,但是帶來的兩個結果是:基礎設施層越來越高;另一個是上層應用和基礎設施之間信息變得越來越復雜了。 舉個例子,用戶反饋網站訪問很慢,管理員查看訪問日志、服務狀態、資源水位發現都沒問題,這時候不知道問題出現在哪里,雖然懷疑基礎設施有問題,但無法定界的情況下只能一個一個排查效率低,問題的根源就是上層應用和基礎設施之間缺少上下問題關聯,無法做到端到端串聯。

最后一個痛點是數據散、工具多、信息沒打通。 舉個例子,假設我們收到一個告警,用grafana去查看指標,指標只能描述的比較粗略,我們得去看下日志,這時候我們要去SLS日志服務看下有沒有對應的日志,日志也沒問題,這時候我們需要登錄到機器上去看,然而登錄到容器里面可能又因為重啟導致日志沒有了。 查了一波之后,可能我們會覺得可能問題不是出現在這個應用,于是我們又去看鏈路追蹤是不是下游有問題。 總而言之,工具用了一大堆,瀏覽器開了十幾個窗口,效率低、體驗差。

這三個痛點分別歸納為成本、效率、體驗三個方面。 針對這些痛點,接下來我們一起看下Kubernetes監控的數據體系,看下怎么來更好的解決成本、效率、體驗三大問題。

Kubernetes監控如何發現異常

下圖金子塔自頂向下表示信息的密度或者詳細程度,越往下面信息越詳細。 我們從底部開始講,Trace是我們通過eBPF技術以無入侵、多協議、多語言的方式采集應用層協議數據,如HTTP、MySQL、Redis,協議數據會進一步解析成容易理解的請求詳情、響應詳情、各個階段的耗時信息。

再上一層是指標,指標主要由黃金指標、網絡、Kubernetes體系中的指標。 其中黃金指標和網絡指標是基于eBPF采集的,所以同樣他們是沒有入侵的,支持各種協議的,有了黃金指標,我們就能知道服務整體上是否有異常、是否有慢、是否影響用戶;網絡指標主要是對socket的支持,如丟包率、重傳率、RTT等,主要用來監控網絡是否正常的指標。 Kubernetes體系中的指標是指原來Kubernetes監控體系中的cAdvisor/MetricServer/NodeExporter/NPD這些指標。

再上一層是事件,事件直接明確地告訴我們發生了什么,可能我們遇到最多的是Pod重啟、拉鏡像失敗等。 我們對Kubernetes事件進行了持久化存儲,并保存一段時間,這樣方便定位問題。 然后,我們的巡檢和健康檢查也是支持以事件的形式報出來。

最頂層是告警,告警是監控系統的最后一環,當我們發現某些特定異??赡軐I務有損后,我們就需要對指標、事件進行告警配置。 告警目前支持PromQL,智能告警支持對歷史數據進行智能算法檢測,從而發現潛在的異常事件。 告警的配置支持動態閾值,通過調節靈敏度的方式來配置告警,從而避免寫死閾值。 有了Trace、指標、事件、告警之后,我們用拓撲圖將這些數據和Kubernetes實體都關聯起來,每個節點對應Kubernetes實體中的服務和工作負載,服務之間調用用線表示。 有了拓撲圖,我們就像拿到一張地圖,能快速識別拓撲圖中的異常,并對異常進行進一步的分析,對上下游、依賴、影響面進行分析,從而對系統有了更全面的掌控。

最佳實踐&場景分析

接下來我們講下發現Kubernetes中服務和工作負載的異常的最佳實踐。

首先還是先有指標,指標能反應服務的監控狀態,我們應盡可能地收集各種指標,并且越全越好,不限于黃金指標、USE指標、Kubernetes原生指標等;然后,指標是宏觀數據,需要做根因分析我們得有Trace數據,多語言、多協議的情況下要考慮采集這些Trace的成本,同樣盡可能地支持多一點協議、多一點語言;最后,用一張拓撲將指標、Trace、事件匯總起來、串聯起來,形成一張拓撲圖,用來做架構感知分析、上下游分析。

通過這三種方法的分析,服務和工作負載的異常通常暴露無遺了,但我們不應該就此停止前進的腳步,加入這個異常下次再來,那么我們這些工作得重來一遍,最好的辦法是針對這類異常配置對應的告警,自動化地管理起來。

我們用幾個具體的場景來詳細介紹:

(一)網絡性能監控

網絡性能監控以重傳為例,重傳的意思是說發送方認為發生了丟包現象,就重發這些數據包。以圖中的傳輸過程為例:

發送方發送編號為1的包,接收方接受了,返回ACK2

發送方發送編號為2的包,接收方返回ACK2

發送方發送編號為3、4、5的包,接收方都返回ACK2

直到發送方收到3次同樣的ACK,就會觸發重傳機制,重傳會導致延遲升高

代碼和日志是觀察不出來的,這種情形下最終很難找到根因。 為了能快速定位這個問題,我們需要一組網絡性能指標來提供定位依據,包含以下指標,P50、P95、P99指標來表示延時,然后我們需要流量、重傳、RTT、丟包這些指標來表征網絡情況。

以某個服務RT高為例:首先我們看到拓撲的邊是紅的,紅的判斷邏輯是根據延時、錯誤來判斷的,當發現這個紅邊的時候,點擊上面的邊,就可以看對應的黃金指標了。

點擊底部最左邊這個按鈕,可以查看當前服務的網絡數據列表,我們可以按平均響應時間、重傳、RTT排下序,可以看到第一個服務調用延時比較高,快到一秒的返回時間,同時也看到重傳比較高,相比于其他服務高很多。 這里其實是通過工具去注入了重傳高這么一個故障,看起來更明顯一些。 這樣分析下來我們就知道可能是網絡的問題,就可以進一步排查了。 有經驗的開發一般會拿著網絡指標、服務名、ip、域名這些信息去找網絡的同事排查,而不是只是告訴對方說我服務很慢,這樣對方知道的信息太少,就不會積極去排查,因為別人也不知道從哪里開始,當我們提供了相關數據,對方就有了參考,會順藤摸瓜進一步推進。

(二)DNS解析異常

第二個場景是DNS解析異常。 DNS通常是協議通信的第一步,比如HTTP請求,第一步就是先拿到IP,也就是我們平常說的服務發現過程,第一步出現問題,整個調用就直接失敗了,這就是所謂關鍵路徑不能掉鏈子。 在Kubernetes集群中所有的DNS都走CoreDNS的解析,所以CoreDNS上容易出現瓶頸,一旦出現問題,影響面也是非常大的,可能整個集群都不可用了。 舉個兩個月前發生的鮮活的例子,著名的CDN公司Akamai就發生了一個DNS故障,導致眾多網站像Airbnb網站無法訪問,事故持續了長達一個小時。

在Kubernetes集群中DNS解析比較核心的幾個場景有三個:

調用外部API網關

調用云服務,云服務一般是公網的

調用外部中間件

這里對CoreDNS常見的問題進行了歸納,大家可以參考下,排查下自己的集群上有沒有類似問題:

配置問題(ndots問題),ndots是個數字,表示域名中點的個數要是小于ndots,那么搜索就優先走search列表中的域去查找,這樣的話會產生多次查詢,對性能的影響還是挺大的。

由于Kubernetes所有的域名解析都走CoreDNS,非常容易成為性能瓶頸,有人統計過大概qps在5000~8000的時候就要關注性能問題了。 尤其是依賴外部Redis、MySQL這種訪問量比較大的。

低版本的CoreDNS有穩定性問題,這個也是需要關注的點。

有些語言,想PHP對連接池支持的不是很好,導致每次都要去解析DNS,創建連接,這個現象也是比較常見的。

接下來,我們看下KubernetesCoreDNS中可能會發生問題的地方,首先應用和CoreDNS之間的網絡可能有問題;第二是CoreDNS本身問題,比如CoreDNS返回SERVFAIL、REFUSE這些錯誤碼,甚至因為Corefile配置錯了,導致返回值是錯的;第三點是跟外部DNS通信的時候,發生網絡中斷、性能問題;最后一個是外部DNS不可用。

針對這些問題點總結出以下步驟來盤查:

第一、從客戶端側,先看下請求內容和返回碼,如果是返回是錯誤碼說明是服務端有問題。 如果是慢解析,可以看下時間瀑布流看下時間耗費在哪個階段。

第二、看網絡是否正常,看流量、重傳、丟包、RTT這幾個指標就夠了。

第三、查看服務端,看下流量、錯誤、延時、飽和度這幾個指標,再看下CPU、內存、磁盤等這幾個資源指標,也能定位出是否有問題。

第四、看下外部DNS,同理我們可以通過請求Trace、返回碼、網路流量、重傳等指標來定位。

接下來我們看下拓撲。 首先看到紅色的線表示有異常的DNS解析調用,點擊這個我們能看到調用的黃金指標;點擊查看列表,彈出詳情頁面,可查看請求的詳情,是請求這個域名,請求過程中經歷發送、等待、下載三個過程,看起來指標正常,接下來我們點擊看響應,發現響應是域名不存在。 那么這時候我們可以進一步看下外部DNS是否有問題,步驟也是一樣的,后面我會在demo中展示,所以這里就不展開先了。

(三)全鏈路壓測

第三個典型場景是全鏈路壓測,對于大促這種場景峰值是平常的數倍,怎么保障大促的穩定,需要通過一系列的壓測來驗證系統能力、系統穩定性評估、做容量規劃、識別系統瓶頸。 一般會有這么幾個步驟:先預熱下,這時候驗證下鏈路是否正常的,逐步加流量直到峰值,然后開始摸高,也就是看下能支持的最大TPS是多少,接著再加流量,這時候主要就是看服務是否能正常限流了,因為已經找過最大TPS了,再加大力量就是破壞性流量了。 那么在這個過程中,我們需要關注哪些點呢?

首先針對我們多語言、多協議的微服務架構,比如這里的java、Golang、Python應用,這里有RPC、MySQL、Redis、Kafka應用層協議,我們得有各種語言、各種協議的黃金指標,用來驗證系統能力;針對系統的瓶頸、容量規劃這塊,我們需要use指標,去看各種流量級別情況下資源的飽和度,來確定是不是要擴容,每增加一次流量,對應看下use指標,對應調整容量,逐步優化;對于復雜架構,需要有一張全局的大圖來幫助梳理上下游依賴、全鏈路架構,確定爆炸報警,比如這里的CheckoutService就是個關鍵的服務,這個點如果出現問題,影響面會很大。

第一、各種語言、協議通信的黃金指標,通過查看列表進一步看調用的詳情

第二、點擊節點詳情下鉆查看cpu、memory等use資源指標

第三、整個拓撲圖是能反映整個架構的形態的,有了全局的架構視角,就能識別哪個服務容易成為瓶頸、爆炸半徑有多大,是否需要做高可用保障。

(四)訪問外部MySQL

第四個場景是訪問外部MySQL,先看下訪問外部MySQL有哪些常見的問題:

首先是慢查詢,慢查詢提現為延時指標高,這時候去看trace里面詳情請求是啥,查詢的是哪張表,哪些字段,進而看下是不是查詢量太大了、表太大了、還是說沒有建索引等。

查詢語句過大,我們知道查詢語句太大會導致傳輸耗時高,網絡稍一抖動就造成失敗重試,還會引發帶寬占用的問題。 一般都是一些批量的更新、插入導致的,出現這種問題延時指標會飆高,這時候我們可以選擇RT較高的一些Trace來看,看下語句怎么寫的、看下查詢語句的長度是不是太大了。

錯誤碼返回,比如表不存在這種,那么解析出其中的錯誤碼就很有幫助了,再進一步看里面的詳情,去看語句,就比較容易定位出根因了。

網絡問題,這個點也講過比較多了,一般配合著延時指標加上RTT、重傳、丟包來確定網絡是否有問題。

接下來看下拓撲圖,中間框住的應用依賴了外部的MySQL服務,點擊拓撲線可以進一步看黃金指標,點擊查看列表可以進一步看請求的詳情、響應等。 同時我們也可以看下網絡性能指標,這個table是將當前拓撲中的網絡數據根據來源和目標進行歸類,可以分別查看請求數、錯誤數、平均響應時間、socket重傳、socketrtt,點擊上面箭頭可以對應地排序。

(五)多租戶架構

第五個典型案例是多租戶架構。 多租戶指的是不同的租戶、工作負載、不同團隊,公用一個集群,通常一個租戶對應一個命名空間,同時保證資源的邏輯隔離或者物理隔離,互不影響、互不干擾。 常見的場景有:企業內部用戶,一個團隊對應一個租戶,同一個命名空間內網絡不受限制,用網絡策略去控制不同命名空間之間的網絡流量。 第二種是SaaS提供商多租戶架構,每個用戶對應一個命名空間,同時租戶和平臺分別處于不同的命名空間。 雖然Kubernetes的命名空間特性給多租戶架構帶來了便利,但也給可觀測帶來兩個挑戰:第一命名空間非常多,查找信息變得很繁瑣,增加了管理成本、理解成本。 第二是租戶之間有流量隔離的要求,在命名空間比較多的情況下往往無法做到準確、全面的發現異常流量。 第三是對多協議、多語言的Trace支持。 曾經遇到過一個客戶,一個集群里面有400多個命名空間,管理起來非常痛苦,而且應用是多協議、多語言的,要支持Trace,得一個個改造。

這是我們產品的集群首頁,Kubernetes的實體以命名空間的方式劃分,支持查詢來定位到我想看的集群。 氣泡圖上展示對應命名空間上的實體數,以及有異常的實體數,比如框子里3個命名空間里存在有異常的pod,點進去可以進一步看異常。 首頁下面是按黃金指標排序的性能概覽,也就是場景的Top功能,這樣能快速查看哪幾個命名空間是有異常的。

在拓撲圖中,如果命名空間比較多,可以通過過濾功能查看想看的命名空間,或者通過搜索方式快速定位到想看的命名空間。 由于節點是以命名空間分組的,能通過命名空間之間的線來查看命名空間的流量,這樣就能方便地查看有來自哪些命名空間的流量、是否有異常流量等等。

我們將上述場景介紹總結如下:

網絡監控:如何能分析網絡導致的服務的錯慢、中斷,如何分析網絡問題帶來的影響

服務監控:如何通過黃金指標確定服務是否健康?如何通過支持多協議的Trace查看詳情?

中間件、基礎設施監控:如何用黃金指標、trace分析中間件、基礎設施的異常,如何快速定界是網絡問題,還是自身問題,還是下游服務問題

架構感知:如何通過拓撲感知整個架構,梳理上下游、內部外部依賴,進而能掌控全局?如何通過拓撲保障架構有足夠的觀測性、穩定性保障,如何通過拓撲分析、發現系統中的瓶頸、爆炸半徑。

從這幾個場景中又進一步列舉常見的case:網絡、服務的可用性檢測,健康檢查;中間件架構升級可觀測性保障;新業務上線驗證;服務性能優化;中間件性能監控;方案選型;全鏈路壓測等。

產品價值

經過以上內容介紹,我們將Kubernetes的產品價值總結如下:

通過多協議、多語言、無入侵的方式采集服務的指標和Trace數據,最大限度地減少接入的成本,同時提供覆蓋度全面的指標和Trace;

有了這些指標和Trace之后我們就能,對服務和工作負載進行科學的分析、下鉆;

將這些指標、Trace關聯起來串成一張拓撲圖,能在一張大圖上進行架構感知、上下游分析、上下文關聯等,充分得理解架構,評估潛在的性能瓶頸等,方便做進一步的架構優化;

提供配置簡單的告警配置方法,將經驗知識沉淀到告警中,做到主動發現。

K8s技術全景:架構、應用與優化

Kubernetes(K8s)作為關鍵的容器編排技術,涵蓋了架構、應用部署與優化的全面探討。 從其開源歷程到現在的廣泛應用,K8s憑借其設計哲學和社區支持,已經成為云原生應用和微服務架構的基石。 本文將深入解析K8s的核心概念,包括其架構設計、容器編排機制、網絡與存儲管理,以及安全、高可用性和監控系統,以展現其強大而靈活的管理能力。 K8s的核心是容器編排,它通過Pod管理應用程序的生命周期,控制器如Deployment、StatefulSet和Job確保服務的穩定和可用。 網絡模型采用扁平化設計,允許Pod間直接通信,同時支持復雜的網絡策略。 在存儲方面,K8s提供了Volume和PV/PVC/StorageClass機制,以適應不同的存儲需求。 為了保障安全,K8s實施了認證、授權和審計機制,確保集群和數據的合規性。 高可用性和災難恢復是K8s的重要特性,通過集群配置的高可用性和備份策略,確保在面臨各種問題時仍能保持服務運行。 監控和日志管理則是確保集群健康和性能的關鍵,通過集成的工具和策略,管理員能實時監控資源和診斷問題。 總而言之,Kubernetes憑借其全面而深入的架構設計和管理功能,為現代應用提供了強大且可擴展的容器化解決方案。 無論是在單個節點還是大規模集群中,K8s都扮演著不可或缺的角色,是企業級應用部署和運維的首選平臺。

OpenKruise x iLogtail:管理可觀測數據采集Sidecar容器最佳實踐

在Kubernetes集群中,Sidecar容器被廣泛用于采集業務容器的可觀測性數據。 然而,這種部署模式在管理和維護上存在高成本和復雜性問題。 本文分析了Sidecar采集容器管理的難點,并通過OpenKruise提供的能力逐一解決,以iLogtail為例,給出最佳實踐。 Sidecar部署方式在可觀測系統中有著重要應用。 Kubernetes官方文檔中介紹的三種數據采集形式各有優劣。 Sidecar方式通過在每個Pod內部署采集agent,雖然資源占用較高,但提供了穩定性、靈活性和多租戶隔離等優勢。 建議在Job類任務采集或作為PaaS平臺服務多個業務方的集群中使用此方式。 然而,使用K8s Sidecar模式存在挑戰,包括修改業務部署聲明、確保采集agent的生命周期與業務容器同步等。 本文以iLogtail為例,提供了一種通用的Sidecar采集部署配置。 iLogtail是阿里云開源的高性能輕量級可觀測性數據采集Agent,支持多種數據類型的采集。 配置中包括volumeMounts部分用于聲明共享存儲,以及args部分控制Sidecar和業務容器間進程的啟動及退出順序。 此配置展示了Sidecar模式的弊端,如資源占用、管理復雜性等。 OpenKruise管理Sidecar容器的利器包括SidecarSet、Container Launch Priority和Job Sidecar Terminator。 其中,SidecarSet負責注入和升級Sidecar容器,Container Launch Priority控制容器啟動順序,而Job Sidecar Terminator在業務容器完成后通知Sidecar容器退出。 在iLogtail的Sidecar部署實踐中,通過使用OpenKruise的上述能力簡化了管理流程。 社區中已有iLogtail部署案例。 使用OpenKruise管理iLogtail Sidecar容器,能夠降低管理難度,解耦Sidecar和業務容器配置,確保容器間的啟動順序,并支持不重建Pod更新Sidecar容器。 通過配置和實踐,Sidecar容器的管理得到了簡化,確保了iLogtail采集數據的完整性和可靠性。 此外,獨立升級Sidecar容器也得以實現,進一步提高了靈活性和安全性。 使用OpenKruise管理iLogtail日志采集,能夠大幅降低管理難度,提高系統的穩定性和可靠性。 然而,關于Sidecar容器資源分配、日志路徑規劃和業務Pod中Sidecar配置的差異化等問題仍需進一步探索。 開發者社區的協作和貢獻對于推動Kubernetes生態的發展至關重要。



相關標簽: Kubernetes、 集群的可觀察性、 監控、 kubernetes、 日志記錄和故障排除的最佳實踐、

上一篇:Kubernetes集群自動化部署流水線編排和持續

下一篇:Kubernetes集群無服務器化充分利用無服務器

內容聲明:

1、本站收錄的內容來源于大數據收集,版權歸原網站所有!
2、本站收錄的內容若侵害到您的利益,請聯系我們進行刪除處理!
3、本站不接受違法信息,如您發現違法內容,請聯系我們進行舉報處理!
4、本文地址:http://m.sycxjdsbhs.com/article/00ee18392ebebd913e19.html,復制請保留版權鏈接!


溫馨小提示:在您的網站做上本站友情鏈接,訪問一次即可自動收錄并自動排在本站第一位!
隨機文章
深入了解 Squirrelsql 的高級功能,成為數據庫處理大師 (深入了解是什么)

深入了解 Squirrelsql 的高級功能,成為數據庫處理大師 (深入了解是什么)

Squirrelsql是一款功能強大的數據庫管理工具,可用于管理多種類型的數據庫,包括MySQL、PostgreSQL、Oracle和SQLServer,除了基本功能外,Squirrelsql還提供了許多高級功能,可幫助您提高工作效率并簡化數據庫管理任務,高級SQL編輯Squirrelsql的高級SQL編輯器提供了多種功能,可以幫助您...。

本站公告 2024-09-25 05:26:00

單擊 確定。(單擊確定終止)

單擊 確定。(單擊確定終止)

單擊確定將終止操作,請慎重考慮是否單擊確定,單擊確定后,操作將無法撤銷,如果您不確定是否單擊確定,請咨詢專業人士,單擊確定前需要考慮的事項操作是否必要操作的潛在后果其他可用的選項如果單擊確定,您是否有準備承受后果單擊確定后會發生什么單擊確定后,操作將立即開始,操作完成后,您將收到一條確認消息,如何撤消單擊確定一旦單擊確定,操作將無法撤...。

技術教程 2024-09-24 20:29:34

Message Digest 安全性:理解哈希碰撞和偽造風險 (message)

Message Digest 安全性:理解哈希碰撞和偽造風險 (message)

消息摘要,也稱為哈希函數,是密碼學中重要的工具,用于生成消息的固定大小的數字摘要,這些摘要用于驗證消息的完整性,確保它們在傳輸過程中未被修改,哈希函數的特性理想的哈希函數應具有以下特性,抗碰撞性,對于任何給定的消息,找到另一個具有相同哈希值的消息幾乎是不可能的,第二原像抗性,給定一個哈希值,找到具有該哈希值的消息幾乎是不可能的,抗預像...。

技術教程 2024-09-24 16:46:13

妻子出走后:一個被遺棄丈夫的自述 (妻子出走后的法律責任)

妻子出走后:一個被遺棄丈夫的自述 (妻子出走后的法律責任)

作者,一位被遺棄的丈夫前言,婚姻是一場神圣的契約,承諾著愛、忠誠和責任,當這份契約破裂時,帶來的往往是無情的痛苦和傷害,我是一個被遺棄的丈夫,經歷了妻子出走后的煎熬和絕望,我寫下自述,希望它能幫助其他處于類似情況的人了解他們的權利和責任,并為他們提供一些安慰和支持,妻子的出走,我的妻子在沒有留下任何解釋或預兆的情況下出走了,她帶走了我...。

本站公告 2024-09-23 19:24:14

為 HTML 表格創建像素完美的邊框:最佳實踐 (為html表格某一格填充顏色)

為 HTML 表格創建像素完美的邊框:最佳實踐 (為html表格某一格填充顏色)

為HTML表格單元格填充顏色有時,您可能需要為HTML表格的特定單元格填充顏色,這是通過使用CSSbackground,color屬性來實現的,例如,以下CSS代碼為具有filled類的所有單元格填充紅色,.filled,background,color,ff0000,您可以通過將filled類添加到單元格的td元素來為特定單元格填...。

本站公告 2024-09-16 06:51:35

海量網站程序下載,助您輕松搭建您的網站 (海量網站程序下載)

海量網站程序下載,助您輕松搭建您的網站 (海量網站程序下載)

歡迎來到我們的網站程序下載中心!在這里,您可以找到海量免費和付費的網站程序,助您輕松搭建您的網站,網站程序分類內容管理系統,CMS,電子商務平臺博客軟件論壇軟件圖片庫軟件維基軟件內容管理系統,CMS,WordPress,免費,Joomla,免費,Drupal,免費,Shopify,付費,Squarespace,付費,電子商務平臺Wo...。

本站公告 2024-09-10 17:14:01

VB 數據庫連接:揭示數據庫世界 (vb6.0連接數據庫)

VB 數據庫連接:揭示數據庫世界 (vb6.0連接數據庫)

引言在軟件開發的世界中,連接到數據庫是至關重要的,對于使用VB6.0開發應用程序的人來說,了解如何連接和操作數據庫是成功項目的關鍵,連接到數據庫在VB6.0中連接到數據庫的過程涉及以下步驟,創建ADO連接對象指定連接字符串打開連接創建ADO連接對象在VB6.0中,可以使用ADO,ActiveXDataObjects,庫來連接到數據庫,...。

最新資訊 2024-09-10 10:24:27

計算機編程基礎知識:為初學者奠定堅實的基礎 (計算機編程基礎知識)

計算機編程基礎知識:為初學者奠定堅實的基礎 (計算機編程基礎知識)

簡介計算機編程是向計算機提供指令并對其行為進行控制的過程,它是一種用計算機可理解的語言對計算機進行通信的方法,計算機編程對于解決問題、創建軟件應用程序以及自動化任務至關重要,計算機編程基礎知識1.變量和數據類型變量是計算機中用于存儲數據的內存位置,每個變量都有一個名稱和一個數據類型,指定了變量可以存儲的數據類型,如數字、字符串或布爾值...。

技術教程 2024-09-09 14:22:18

見證中國的編程天才:編程中國上冉冉升起的明星 (見證中國的編劇是誰)

見證中國的編程天才:編程中國上冉冉升起的明星 (見證中國的編劇是誰)

中國的科技產業正在蓬勃發展,而編程是中國經濟中一個日益重要的部分,編程中國是該國最大的編程社區之一,擁有超過1000萬會員,在該平臺的眾多技術愛好者中,涌現了許多編程天才,他們正在用他們的技能塑造中國的未來,編程中國的杰出貢獻者張雨錫,知名算法競賽選手,在各大國際比賽中屢獲殊榮,他也是一名出色的導師,幫助了許多學生提高編程水平,李銳,...。

最新資訊 2024-09-09 10:06:57

VCL 控件庫:了解 Delphi 和 C++Builder 中的各種控件及其功能 (vc 控件)

VCL 控件庫:了解 Delphi 和 C++Builder 中的各種控件及其功能 (vc 控件)

引言VCL,視覺組件庫,控件庫是EmbarcaderoDelphi和C,Builder集成開發環境,IDE,提供的一套功能強大的用戶界面,UI,控件,這些控件提供了創建各種應用程序所需的豐富組建,包括桌面、移動和Web應用程序,VCL控件概述VCL控件庫包含一系列控件,可以分為以下幾類,基本控件,這些控件是最基本的構建塊,用于創建用...。

技術教程 2024-09-07 18:16:07

踏進網絡開發大門:網站編程入門指南 (網絡開發技巧)

踏進網絡開發大門:網站編程入門指南 (網絡開發技巧)

引言隨著互聯網的飛速發展,網絡開發變得比以往任何時候都更加重要,網站是企業、組織和個人的在線形象,也是與客戶互動、提供信息和銷售產品或服務的重要平臺,如果你對構建自己的網站感興趣,那么學習網絡開發技能是必不可少的,本指南將帶你踏進網絡開發的大門,提供網站編程入門的全面指南,我們將涵蓋從基礎概念到實用實踐的一切內容,讓你能夠從頭開始構建...。

本站公告 2024-09-07 14:15:09

不完全 Gamma 函數在概率和統計建模中的作用:理論和實際應用 (不完全gamma函數表)

不完全 Gamma 函數在概率和統計建模中的作用:理論和實際應用 (不完全gamma函數表)

簡介不完全Gamma函數,IGF,在概率和統計建模中是一個強大的工具,它是Gamma函數的一個特殊情況,其定義為,$$P,z,a,b,=\frac,1,\Gamma,a,\int,0^zt^,a,1,e^,t,b,$$其中,a和b是形參,IGF的理論性質IGF具有許多有用的理論性質,包括,當z=0時,IGF為0當z為正無窮大...。

技術教程 2024-09-07 13:43:14

Copyright ? 2025 聚集網 All Rights Reserved
此內容系本站根據來路自動抓取的結果,不代表本站贊成被顯示網站的內容或立場。
本頁閱讀量次 | 本站總訪問次 | 本站總訪客人 | 今日總訪問次 | 今日總訪客人 | 昨日總訪問次 | 昨日總訪客人 |
技術支持:聚集網

国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门
欧美高跟鞋交xxxxhd| 欧美成人午夜影院| 国产欧美日韩精品专区| 亚洲片国产一区一级在线观看| 国产精品女人网站| 91探花福利精品国产自产在线| 亚洲国产精品久久久久| 欧美日韩aaaa| 久久综合久久八八| 一个色综合导航| 国产精品久久久久久久9999| 性欧美亚洲xxxx乳在线观看| 亚洲精品美女网站| 国产成人精品视频| 91社影院在线观看| 日韩精品视频在线观看免费| 992tv成人免费影院| 午夜精品久久久久久99热软件| 国产精品精品久久久| 日韩三级影视基地| 欧美激情aaaa| 国产精品永久免费观看| 欧美激情免费看| 日韩在线观看网址| 久久久久久久999精品视频| 久久免费观看视频| 中文字幕自拍vr一区二区三区| 欧美三级免费观看| 91视频国产一区| 欧美综合激情网| 亚洲女人天堂色在线7777| 2019av中文字幕| 欧美日韩亚洲视频一区| 大桥未久av一区二区三区| xvideos亚洲| 国产精品69av| 一本一本久久a久久精品牛牛影视| 精品免费在线视频| 亚洲一区二区国产| 欧美一级片在线播放| 亚洲精品电影网在线观看| 久久久久亚洲精品成人网小说| 亚洲高清久久久久久| 亚洲欧美综合区自拍另类| 久久资源免费视频| 精品国产精品三级精品av网址| 欧美—级高清免费播放| 超碰日本道色综合久久综合| 亚洲欧洲黄色网| 欧美黄色三级网站| 国产精品免费一区二区三区都可以| 亚洲美女在线看| 久久久伊人欧美| 国产欧美精品va在线观看| 怡红院精品视频| 欧美激情欧美激情在线五月| 久久不射电影网| 91精品久久久久久| 91国产一区在线| 国产91在线高潮白浆在线观看| 在线电影av不卡网址| 国产精品pans私拍| 国产精品久久久久久av福利| 中文字幕免费国产精品| 亚洲视频一区二区三区| 久久精品国产99国产精品澳门| 福利一区视频在线观看| 亚洲日韩中文字幕在线播放| 久久亚洲国产成人| 成人福利在线观看| 欧美裸身视频免费观看| 亚洲a成v人在线观看| 国产精品旅馆在线| 久久国产精品首页| 欧美中文在线观看国产| 欧美激情第三页| 91chinesevideo永久地址| 日韩免费观看视频| 欧美国产精品日韩| 久久久久久九九九| 精品爽片免费看久久| 欧美电影免费在线观看| 日韩成人在线电影网| 国产成人avxxxxx在线看| 国产精品成人免费视频| 伊人久久久久久久久久久| 欧美中文字幕精品| 成人黄在线观看| 亚洲韩国欧洲国产日产av| 91精品综合久久久久久五月天| 91免费电影网站| 日韩欧美成人网| 国产精品日韩一区| 国产精品国产三级国产aⅴ浪潮| 国自产精品手机在线观看视频| 国产精品电影一区| 亚洲欧洲国产一区| 欧美日韩精品在线视频| 亚洲图片在线综合| 日韩美女在线看| 国产视频观看一区| 国模精品系列视频| 亚洲美女喷白浆| 亲子乱一区二区三区电影| 51久久精品夜色国产麻豆| 亚洲精品欧美日韩| 亚洲欧美制服另类日韩| 欧美性猛交xxxxx水多| 中文字幕在线精品| 疯狂做受xxxx高潮欧美日本| 国产精品观看在线亚洲人成网| 亚洲欧美日韩精品久久| 亚洲欧美日韩另类| 久久久久久国产精品三级玉女聊斋| 欧美亚洲成人精品| 91丝袜美腿美女视频网站| 中文字幕亚洲综合| 91国偷自产一区二区三区的观看方式| 91久久精品一区| 国产午夜精品全部视频在线播放| 亚洲精品国产suv| 国产日韩欧美成人| 亚洲欧美日韩国产成人| 韩国v欧美v日本v亚洲| 亚洲国产小视频在线观看| 国产一区二区在线免费| 北条麻妃99精品青青久久| 国内精品久久久久久久| 亚洲理论片在线观看| 久久久久亚洲精品国产| 欲色天天网综合久久| 色青青草原桃花久久综合| 国产精品午夜视频| 亚洲第一区中文字幕| 精品丝袜一区二区三区| 日韩在线小视频| 福利视频一区二区| 精品国产91久久久久久| 91麻豆国产语对白在线观看| 一区二区三区国产视频| 91在线免费观看网站| 亚洲欧洲午夜一线一品| 海角国产乱辈乱精品视频| 久久69精品久久久久久国产越南| 午夜免费在线观看精品视频| 日本精品中文字幕| 欧美黄色三级网站| 黑人极品videos精品欧美裸| 一区二区三区 在线观看视| 欧美激情视频一区二区| 国产丝袜一区视频在线观看| 久久精品成人欧美大片| 亚洲精品一区中文| 国产精品第一视频| 在线观看欧美日韩| 在线精品国产欧美| 欧美丰满少妇xxxxx做受| 久久久久久久91| 欧美亚洲另类在线| 国产精品女人久久久久久| 亚洲第一中文字幕在线观看| 国产精品高潮粉嫩av| 亚洲xxxx视频| 91在线直播亚洲|