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

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

深入探究 Kubernetes 集群的強大功能和最佳實踐 (深入探究科學問題)

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


深入探究

Kubernetes 是一個開源容器編排平臺,用于管理和部署容器化應用程序。

Kubernetes 的強大功能包括:

  • 容器編排:Kubernetes 允許您以高效的方式管理和部署容器化應用程序。
  • 可擴展性:Kubernetes 可以擴展到管理成千上萬個容器,使其成為大規模應用程序的理想選擇。
  • 自動化:Kubernetes 可以自動化容器的部署、管理和擴展,從而減少手動工作。
  • 可移植性:Kubernetes 可以部署在各種基礎設施上,包括本地、云和混合云。
  • 社區支持:Kubernetes 有一個巨大的社區,提供支持和資源。

Kubernetes 的ConfigMap功能和用法

在Kubernetes中,ConfigMap用于存儲非機密配置信息,如環境變量、配置文件內容,實現配置與容器鏡像分離,提升管理和靈活性。 ConfigMap創建可通過多種方式實現,包括使用kubectl命令行工具、YAML配置文件或現有文件/目錄內容。 通過kubectl創建簡單ConfigMap,使用kubectl get命令查看,并使用kubectl describe查看詳細信息。 使用YAML文件創建ConfigMap,將內容存儲在文件中,然后應用配置。 ConfigMap可注入到Pod中,作為環境變量或卷掛載。 查看日志,驗證配置是否正確注入。 更新ConfigMap,無需重建Pod,通過kubectl編輯或修改YAML文件后使用apply命令。 最佳實踐:利用ConfigMap管理配置信息,支持多種注入方式,實現應用配置動態調整和環境無關性,提高應用可移植性和管理效率。

如何發現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這種訪問量比較大的。

Kubernetes

低版本的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關聯起來串成一張拓撲圖,能在一張大圖上進行架構感知、上下游分析、上下文關聯等,充分得理解架構,評估潛在的性能瓶頸等,方便做進一步的架構優化;

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

技術分享|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結合為微服務架構提供了強大、靈活且易于管理的解決方案。 通過本文提供的實踐指南,開發者和運維人員能夠實施這一組合方案,實現系統穩定運行、數據安全以及高可用性的保障,為企業技術創新提供堅實基礎。

了解Kubernetes資源類型

在深入研究Kubernetes資源之前,讓我們先澄清一下“資源”一詞在這里指的是什么。 我們在Kubernetes集群中創建的任何東西都被視為一種資源:部署、pod、服務等。 在本文中,我們將重點介紹CPU和內存等主要資源,以及暫態存儲和擴展資源等其他資源類型。

集群管理的一個方面是將這些資源自動分配給在pod中運行的容器,這樣,理想情況下,每個容器都有它所需的資源(但沒有更多)。

在本文中,我們將重點介紹集群上運行的容器的邏輯資源。 我們將分析開發人員每天使用的四種常見Kubernetes資源:CPU、內存、暫態存儲和擴展資源。 對于每種資源,我們將 探索 如何在Kubernetes中衡量它,回顧如何監控每種特定資源,并強調優化資源使用的一些最佳實踐。

Kubernetes集群通常運行在多臺機器上,每臺機器都有多個CPU核。 它們加起來就是可用內核的總數。

我們不需要使用所有的內核。 我們可以以1/1000的增量指定CPU核心的任何部分(例如,半個核心或500百萬CPU)。

Kubernetes容器在Linux內核上運行,這允許指定cGroup來限制資源。 Linux調度器將使用的CPU時間(由內部時間片定義)與定義的限制進行比較,以決定是否在下一個時間片中運行容器。 我們可以使用kubectl top命令查詢CPU資源,為pod或節點調用它。

我們可以通過改進算法和編碼,或者通過編譯器優化,使程序在容器中運行更加高效,從而優化處理器時間的使用。 集群用戶對預編譯容器的速度或效率沒有太大影響。

內存

Kubernetes集群中的每臺機器也都有內存,加起來就是集群的總數。 內核級控制主內存,類似于使用cGroup的CPU時間。 如果容器中的例程請求的內存分配超出了硬限制,則表示內存不足錯誤。

優化資源使用在很大程度上取決于應用程序的開發工作。 一個步驟是提高垃圾收集頻率,以防止基于堆的鏡像分配的內存超過硬限制。 同樣,kubectl top命令可以提供有關內存使用的信息。

探索 CPU和內存

作為我們的第一個深入示例,讓我們將流行web服務器NGINX的三個復制容器部署到本地Kubernetes安裝中。 我們在筆記本電腦上運行一個單節點“集群”,它只有兩個內核和2 GiB的內存。

下面的代碼定義了這種pod部署,并將十分之一的核心(100 milli-CPU)和100 MiB的主內存授予三個NGINX容器中的每一個。 下面的代碼還將它們的使用限制為請求值的兩倍。

apiVersion: apps/v1

kind: Deployment

name: nginx-deployment

replicas: 3

matchLabels:

containers:

- name: nginx

image: nginx

resources:

memory: 100Mi

memory: 200Mi

- containerPort: 80

我們可以這樣部署到默認命名空間:

kubectl apply -f

本地集群只有一個節點。使用此命令可返回有關它的詳細信息:

kubectl describe nodes docker-desktop

深入探究科學問題

在剪切大部分輸出后,我們可以檢查一些有關資源使用的信息:

Namespace Name CPU. Requests CPU Limits Memory Requests Memory Limits Age

default nginx-deployment-585bd9cc5f-djql8 100m (5%) 200m (10%)100Mi (5%) 200Mi (10%) 66s

default nginx-deployment-585bd9cc5f-gz98r 100m (5%) 200m (10%)100Mi (5%) 200Mi (10%) 66s

default nginx-deployment-585bd9cc5f-vmdnc 100m (5%) 200m (10%)100Mi (5%) 200Mi (10%) 66s

Resource Requests Limits

cpu 1150m (57%) 600m (30%)

memory 540Mi (28%) 940Mi (49%)

ephemeral-storage 0 (0%) 0 (0%)

hugepages-1Gi 0 (0%) 0 (0%)

hugepages-2Mi 0 (0%) 0 (0%)

此信息顯示CPU和內存使用請求和限制,就像我們的部署對象指定的那樣。 它還將值顯示為最大可能分配的百分比。

接下來是該節點的當前總數,再次以絕對值和百分比列出。 這些數字包括在kube系統命名空間中運行的一些其他容器,我們在這里沒有顯示這些容器,因此上面的輸出中沒有包含差異。

上面代碼段的最后三行表示CPU和內存之外的其他類型的資源,在本例中,這些資源沒有設置請求或限制。

暫態存儲

另外一種Kubernetes資源類型是暫態存儲。 這是在pod生命周期內無法存活的掛載式存儲。 Kubernetes經常使用暫態存儲來緩存或日志,但從不將其用于重要數據,如用戶記錄。 我們可以請求或限制暫態存儲,比如主內存,但它通常不是一種有限的資源。

那么,在上面的代碼片段中,hugepages-1Gi和hugepages-2Mi是什么意思呢?巨頁面是Linux內核的一種現代內存功能,用于為進程分配可配置大小的大型主內存頁面。 為了提高效率,我們可以這樣做。

Kubernetes支持將如此大的頁面分配給容器。 這些構成了我們可以單獨請求的每個頁面大小的資源類型。

在指定請求或限制時,我們設置的是內存總量,而不是頁數。

hugepages-2Mi: 100Mi

hugepages-1Gi: 2GiHere, we limit the number of 2 MiB pages to 50 and the number of 1 GiB pages to 2.

擴展資源

集群用戶還可以使用擴展資源類型定義自己的資源類型(每個集群或節點)。 一旦定義了類型并指定了可用單元,我們就可以使用請求和限制,就像我們目前使用的內置資源一樣。

例如:

/handles: 100

此設置將容器限制為核心的20%和項目句柄的100%。

資源請求和限制

請注意,資源請求和限制是我們討論暫態存儲和擴展資源的關鍵。 這是因為最終用戶可以在應用程序的部署清單中指定資源請求和限制,這對Kubernetes應該如何處理容器或pod施加了一些規則。

請求指示容器應該擁有多少資源。 它們幫助調度器根據請求的資源量和節點上的可用資源量將pod分配給節點。

限制用于指示容器可以使用多少資源的硬上限,在操作系統級別強制執行。 請求和限制是可選的,但如果我們不指定限制,容器可以使用節點的大部分資源,這可能會帶來負面的成本或性能影響。 因此,我們必須謹慎行事。

請記住,雖然一個pod可以包含多個容器,但通常每個pod只有一個容器。 我們將資源分配給容器,但pod的所有容器都來自節點級別的公共資源池。

考慮服務質量

到目前為止,我們描述的資源系統是管理計算資源的一種相當簡單的方法。 Kubernetes提供了一個簡單的服務質量(QoS)系統。

QoS描述了一個技術系統在硬件有限的情況下,在保持最佳總體質量的同時提供不同服務級別的方法。 Kubernetes QoS系統為pod分配三個級別中的一個:Guaranteed、Burstable和BestEffort。

在pod的生命周期內,Guaranteed級別提供了所需且有限的資源,適合在恒定負載下運行的監控系統等應用。

Burstable服務級別適用于具有基本使用模式的pod,由于需求增加,這些pod的使用模式有時會超過基線。 這個級別非常適合數據庫或web服務器,它們的負載取決于傳入請求的數量。

BestEffort不保證資源可用性。 因此,它最適合于批處理作業之類的應用程序,它們可以在需要時重復,或者適合于非任務關鍵型的暫存環境。

結論

Kubernetes集群維護CPU時間、內存、暫態存儲和擴展資源等硬件資源,并將它們分配給正在運行的容器。 通過一個請求和限制系統,運維人員可以根據單個容器定制資源分配,然后讓Kubernetes系統將它們適當地分配給節點。

擴展資源使我們能夠定義自己的資源類型,并以類似的方式使用它們。 Kubernetes還根據請求和限制將服務質量指定給pod。 然后,它使用這些名稱來制定計劃和終止決策。

Kubernetes資源優化對于平衡成本和最終用戶體驗至關重要。 然而,使用本文的方法手動分配參數可能會非常耗時、昂貴,而且難以擴展。

原文鏈接:

為什么K8S升級會導致故障?滴滴事故解析

在IT圈,近期發生了幾個導致業務連續性中斷的重大事件,涉及阿里云和滴滴這樣的行業領軍企業,尤其是滴滴打車的故障,對眾多用戶出行產生了嚴重影響。 網傳原因是集群升級所致。 滴滴官方技術公眾號也提到了K8s升級方案與這一事故的關聯。 然而,技術團隊在處理重大服務中斷時,往往是由多個錯誤累積而成的結果。 滴滴作為一個業界頂尖的SRE團隊,即便如此,也未能避免這次事件,這表明了問題可能不單純是技術上的單一原因。 從公開的技術分析來看,滴滴的技術團隊至少犯了幾個明顯錯誤:1. 將K8S從1.12升級至1.20版本。 根據K8S官方版本偏差文檔,升級過程中允許的不同版本差異應在3個以內,但滴滴升級的版本差異為8個,嚴重違反了官方建議。 2. 集群節點規模超過K8S版本的5000個節點限制。 一般而言,運維團隊會謹慎對待超過此限制的節點規模,以防潛在風險。 3. 原地升級方案的回退機制考慮不周,且未經嚴格測試。 這種升級方式在多版本共存時存在較高的風險。 4. 技術團隊可能存在基于非技術因素的決策壓力,導致選擇了風險更高的升級策略。 針對以上問題,具體分析如下:1. 考慮到版本差異過大的風險,滴滴在選擇升級策略時應避免跨8個版本的升級。 原地升級方案應謹慎對待,確保有全面的備份和回退機制,以降低風險。 2. 節點規模的考量。 在規模超過5000個節點時,應考慮構建多個集群,以分散風險。 即使在較小規模下,過大的節點數量也可能導致升級復雜性增加。 3. 技術團隊的決策獨立性。 在面對管理層壓力時,應堅持風險最低的決策,保持技術中立性,避免因非技術因素影響升級策略。 針對這些問題,云托管服務提供了一種有效的解決方案,比如DigitalOcean的Kubernet托管集群DOKS,它遵循社區支持時間,僅維護最近的Kubernets版本,確保與相關生態兼容性更高。 托管服務解決的問題:1. 跨版本兼容性問題:托管服務避免了超過3個版本的跨版本升級,嚴格遵循社區推薦的最佳實踐,確保技術的中立性。 2. 規模限制:托管服務不會擅自超過K8s的5000個節點限制,對于大規模集群的需求,可采用多集群策略。 3. 升級流程自動化:托管服務提供自動化的升級方案和策略,避免人為錯誤,確保升級過程穩定可靠。 4. 升級觸發方式:托管服務提供手動和自動升級選項,由管理員控制,減少人為決策風險。 通過采用云托管服務,企業能夠避免類似事故,確保Kubernetes集群的穩定性和安全性。 此外,托管服務還提供了高可用控制平面、彈性擴展、一鍵安裝、安全加固、性能監控等額外功能,提高了整體系統性能和可用性。



相關標簽: 集群的強大功能和最佳實踐、 深入探究、 深入探究科學問題Kubernetes、

上一篇:揭秘大型集群的高可用性策略故障轉移容錯性

下一篇:Contactsprovider的終極指南簡化您的聯系人

內容聲明:

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


溫馨小提示:在您的網站做上本站友情鏈接,訪問一次即可自動收錄并自動排在本站第一位!
隨機文章
grid 設置的最佳實踐:提高布局效率和可維護性的技巧 (grid設置教程)

grid 設置的最佳實踐:提高布局效率和可維護性的技巧 (grid設置教程)

CSSGridLayout模塊是一個強大而靈活的工具,可以幫助我們創建復雜而響應式布局,要有效地使用Grid,了解最佳實踐非常重要,1.使用具有意義的名稱為您的grid容器和項使用有意義的名稱,這將使您的代碼更易于閱讀和理解,同時還可以幫助您調試問題,.grid,container,display,grid,grid,template...。

技術教程 2024-09-29 02:34:30

NumPy with Pandas: An Introduction to Data Manipulation and Analysis in Python (numpy無法導入)

NumPy with Pandas: An Introduction to Data Manipulation and Analysis in Python (numpy無法導入)

簡介NumPy和Pandas是用于Python數據操作和分析的兩個強大的庫,NumPy擅長處理多維數組,而Pandas則擅長處理表格數據,數據框,結合使用,您可以高效地操縱和分析大型數據集,NumPyNumPy是一個用于科學計算的Python庫,它提供了高效的多維數組操作,線性代數和隨機數生成等功能,導入NumPy```python...。

技術教程 2024-09-24 21:59:37

HTML 表格布局黑科技:使用 COLSPAN 屬性創建自適應表格 (html表格代碼大全)

HTML 表格布局黑科技:使用 COLSPAN 屬性創建自適應表格 (html表格代碼大全)

在HTML表格布局中,COLSPAN屬性可謂是一個強大的黑科技,它可以橫向合并單元格,從而創建出更加靈活和自適應的表格,通過巧妙地使用COLSPAN屬性,你可以輕松實現以下布局效果,創建可自動調整寬度的列,使表格自適應不同屏幕尺寸合并多列,形成具有視覺沖擊力的標題或副標題創建嵌套表格,實現更加復雜的數據展示如何使用COLSPAN屬性C...。

最新資訊 2024-09-24 18:35:03

匯編優化:提升代碼性能的實用技巧 (匯編語言優化)

匯編優化:提升代碼性能的實用技巧 (匯編語言優化)

匯編語言作為計算機編程語言中最底層的語言,直接操作計算機的硬件,具有其他高級編程語言無法比擬的效率和靈活性,但是,要想編寫出高效的匯編代碼,需要掌握一些優化技巧,對代碼進行精細的優化,優化原則在進行匯編優化之前,需要遵循以下原則,性能至上,以提高代碼性能為首要目標,犧牲可讀性或可維護性也是可以接受的,局部優化,一次只優化一小部分代碼,...。

本站公告 2024-09-23 09:49:11

應對氣候變化的緊迫挑戰:科學、政策和公民行動的共同作用 (應對氣候變化,協同推進)

應對氣候變化的緊迫挑戰:科學、政策和公民行動的共同作用 (應對氣候變化,協同推進)

引言氣候變化是當今世界面臨的最嚴峻挑戰之一,要求科學、政策和公民行動共同協作,本文探討了氣候變化的科學基礎、政府應對措施以及公民在應對這一迫切問題中的作用,氣候變化的科學基礎氣候變化是由人類活動造成的,主要是燃燒化石燃料釋放溫室氣體,這些氣體在大氣中積聚,導致地球大氣層溫度升高,這種溫度升高產生了廣泛的影響,包括,海平面上升,極端天...。

本站公告 2024-09-16 07:12:50

掌握JavaScript:打造專業人士級別的焦點圖 (掌握javascript基礎 初入宗門)

掌握JavaScript:打造專業人士級別的焦點圖 (掌握javascript基礎 初入宗門)

歡迎來到JavaScript入門系列教程,本教程將帶你踏上JavaScript開發之旅,從基礎到高級概念,逐步提升你的JavaScript技能,焦點圖是什么,焦點圖,又稱為輪播圖或幻燈片,是一種動態圖像展示組件,通常在網站和應用程序中展示多個圖像或內容塊,它通過自動或手動切換顯示不同的內容,使用JavaScript構建焦點圖構建一個基...。

技術教程 2024-09-15 08:04:42

Java 串口故障排除:識別和解決串口通信中遇到的問題 (Java串口通信)

Java 串口故障排除:識別和解決串口通信中遇到的問題 (Java串口通信)

串口通信是一種在兩臺設備之間傳輸數據的簡單而可靠的方式,在使用Java進行串口通信時,有時可能會遇到問題,本文檔將介紹如何識別和解決串口通信中遇到的一些常見問題,識別問題串口通信問題可能表現為各種癥狀,包括,無法打開串口無法讀取或寫入串口數據損壞通信速度慢異常要確定問題的根源,請考慮以下因素,串口設置,確保串口設置,如波特率、數據位、...。

本站公告 2024-09-12 14:26:47

用C語言實現快速高效的二分法:性能優化技巧 (用C語言實現順序表的創建)

用C語言實現快速高效的二分法:性能優化技巧 (用C語言實現順序表的創建)

二分法是一種快速高效的搜索算法,它在有序數組中查找元素時,平均時間復雜度為O,logn,這使得它在處理大規模數據時非常有效,用C語言實現二分法以下是用C語言實現二分法的代碼,```cintbinary,search,intarr,intn,inttarget,intleft=0,intright=n,1,while,left<...。

技術教程 2024-09-11 08:55:40

溝通不暢(溝通不暢的原因和解決方法)

溝通不暢(溝通不暢的原因和解決方法)

概述溝通不暢是指個人或團體在信息交流和理解方面遇到的困難,它可能會對人際關系、團隊合作和整體組織績效產生重大影響,原因溝通不暢的原因有很多,包括,語言障礙語言差異,說不同語言的人在溝通時可能會遇到困難,技術術語,使用技術或專業術語可能會讓不懂的人感到困惑,口音和方言,不同的口音或方言可能會影響信息的理解,非言語障礙肢體語言和表情,非言...。

互聯網資訊 2024-09-08 06:59:25

一步步指導:使用代碼創建動態且響應式的彈窗 (一步步指導的成語)

一步步指導:使用代碼創建動態且響應式的彈窗 (一步步指導的成語)

1.創建HTML結構彈窗內容```2.編寫CSS樣式```css,彈窗樣式,.popup,position,fixed,top,0,left,0,width,100%,height,100%,background,color,rgba,0,0,0,0.5,display,flex,justify,content,center,ali...。

互聯網資訊 2024-09-07 01:12:56

掌握多線程編程的藝術:高效管理并發任務 (掌握多線程編程和多進程編程實驗心得)

掌握多線程編程的藝術:高效管理并發任務 (掌握多線程編程和多進程編程實驗心得)

前言在現代計算中,多線程編程已成為開發人員必備的一項技能,通過創建和管理多個同時執行的任務,稱為線程,,開發者可以充分利用多核處理器,從而提升應用程序的性能和響應能力,本文將深入探討多線程編程的概念和實踐,幫助您掌握這門藝術,高效管理并發任務,多線程編程簡介多線程編程是一種并發編程技術,它允許在單個進程中同時執行多個任務,通過將一個任...。

技術教程 2024-09-06 09:36:36

閱讀 PHP 文檔:PHP 官方文檔提供了對 PHP 語言的全面參考。(閱讀php源碼)

閱讀 PHP 文檔:PHP 官方文檔提供了對 PHP 語言的全面參考。(閱讀php源碼)

PHP官方文檔是學習和理解PHP語言的寶貴資源,本文將指導您如何高效地使用此文檔來提升您的編程技能,文檔結構PHP官方文檔分為以下幾部分,語言參考,詳細介紹PHP語言的語法、函數和結構,擴展參考,描述PHP可用的擴展模塊及其函數,配置選項,列出PHP配置選項及其說明,常見問題解答,FAQ,回答常見問題并提供解決方案,教程和指南,提供...。

互聯網資訊 2024-09-06 00:53:16

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

国产精品成人免费视频_91丝袜美腿美女视频网站_国产一区二区三区在线看_亚洲欧美另类中文字幕_在线电影av不卡网址_国产视频丨精品|在线观看_日韩一区二区三区国产_国产欧美va欧美va香蕉在线_热re91久久精品国99热蜜臀_亚洲第一精品电影_久久九九亚洲综合_国产成人综合精品_97视频在线观看网址_精品视频久久久久久_日韩av片免费在线观看_久久精品国产99国产精品澳门
欧美成人久久久| 色老头一区二区三区| 中文字幕在线看视频国产欧美在线看完整| 日韩在线观看免费高清| 色偷偷9999www| 欧美超级乱淫片喷水| 亚洲精品一区av在线播放| 在线成人一区二区| 91在线视频免费| 国产一区二区三区在线播放免费观看| 欧美黑人巨大精品一区二区| 国产福利视频一区二区| 亚洲人成电影在线| 亚洲v日韩v综合v精品v| 久久久久久久久网站| 亚洲男人天堂网站| 欧美午夜www高清视频| 97婷婷涩涩精品一区| 日韩综合视频在线观看| 91wwwcom在线观看| 亚洲国产高潮在线观看| 国产成人一区二| 国产精品一区二区三区在线播放| 国产999精品视频| 日韩精品极品毛片系列视频| 中文字幕日本欧美| 久久人人爽人人爽人人片av高请| 亚洲福利视频久久| 亚洲精品xxxx| 亚洲激情电影中文字幕| 色999日韩欧美国产| 精品国产精品自拍| 久久久久久亚洲精品| 精品视频中文字幕| 中文字幕亚洲无线码a| 久久综合伊人77777蜜臀| 久久久免费观看视频| 国产精品三级美女白浆呻吟| 欧洲亚洲女同hd| 91在线视频免费| 欧美日韩中文在线观看| 国产成人精品视频在线| 欧美亚洲激情在线| 狠狠躁18三区二区一区| 日本午夜精品理论片a级appf发布| 一区二区三区四区精品| 亚洲视频欧美视频| 国产精品免费久久久久影院| 亚洲欧洲黄色网| 成人午夜激情网| 国产精品嫩草影院一区二区| 亚洲免费伊人电影在线观看av| 国产精品偷伦视频免费观看国产| 国产精品久久久久福利| 九九热99久久久国产盗摄| 国产丝袜一区二区三区免费视频| 久久久精品视频成人| 在线精品高清中文字幕| 日日骚av一区| 亚洲电影免费观看高清完整版在线观看| 亚洲精品电影网站| 亚洲精品电影网在线观看| 久久精品久久久久久国产 免费| 欧美日韩免费区域视频在线观看| 孩xxxx性bbbb欧美| 清纯唯美亚洲综合| 尤物99国产成人精品视频| 日韩高清a**址| 亚洲国产日韩精品在线| 亚洲欧美综合精品久久成人| 欧美成人黄色小视频| 久久综合色88| 2019日本中文字幕| 一区二区在线视频| 欧美最顶级的aⅴ艳星| 国内精品400部情侣激情| 久久久日本电影| 777午夜精品福利在线观看| 欧美色另类天堂2015| 久久免费高清视频| 菠萝蜜影院一区二区免费| 性欧美激情精品| 久久伊人精品一区二区三区| 亚洲欧洲一区二区三区在线观看| 欧美亚洲午夜视频在线观看| 国产成人综合久久| 中文字幕精品视频| 一本大道久久加勒比香蕉| 精品调教chinesegay| 亚洲美女av在线| 97视频在线观看免费| 久久国产精品影片| 亚洲精品国产精品久久清纯直播| 最近中文字幕mv在线一区二区三区四区| 国产成人亚洲综合青青| 一区二区三区视频在线| 亚洲视频电影图片偷拍一区| 国产欧美日韩精品在线观看| 91在线免费观看网站| 久久久国产影院| 亚洲免费电影在线观看| 亚洲免费高清视频| 日韩精品在线免费| 日韩精品久久久久| 欧洲成人在线观看| 久久久久999| 在线视频日韩精品| 欧美精品电影免费在线观看| 亚洲国产精品久久久久| 日韩欧美中文字幕在线观看| 久久久久久国产| 国产一区二区三区在线播放免费观看| 欧美激情一区二区久久久| 精品国产一区av| 在线看片第一页欧美| 亚洲a中文字幕| 国产精品嫩草影院一区二区| 国产97在线观看| 欧美孕妇性xx| 亚洲精品一区二区三区不| 岛国精品视频在线播放| 性欧美激情精品| 欧美激情a在线| 91精品啪aⅴ在线观看国产| 69久久夜色精品国产7777| 亚洲一区二区久久久| 亚洲精品小视频| 亚洲人成网站在线播| 日韩视频免费在线| 亚洲国产精品嫩草影院久久| 亚洲国产欧美一区二区丝袜黑人| 91热精品视频| 2021久久精品国产99国产精品| 日韩中文在线中文网在线观看| 亚洲精品视频免费在线观看| 日韩高清a**址| 精品久久久在线观看| 奇米影视亚洲狠狠色| 免费99精品国产自在在线| 这里只有精品视频在线| 国产一区二区三区18| 亚洲精品中文字幕有码专区| 久久夜色精品亚洲噜噜国产mv| 日韩激情片免费| 国产91亚洲精品| 久久亚洲国产精品| 欧美激情视频一区二区三区不卡| 欧美日韩中文字幕在线| 韩剧1988免费观看全集| 在线观看中文字幕亚洲| 色综合久久中文字幕综合网小说| 在线播放日韩欧美| 国产成人在线视频| 日本在线观看天堂男亚洲| 国产热re99久久6国产精品| 亚洲福利在线看| 精品国产电影一区| 欧美日韩中文字幕日韩欧美| 国产精品日日做人人爱| 久久成人av网站| 91精品久久久久久久| 国产一区二区欧美日韩| 久久99精品视频一区97| 亚洲人成网站在线播|