成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

Kubernetes監(jiān)控之優(yōu)秀實(shí)踐

開發(fā) 前端
Kubernetes 是一個(gè)可移植的、可擴(kuò)展的開源平臺(tái),用于管理容器化的工作負(fù)載和服務(wù),可促進(jìn)聲明式配置和自動(dòng)化。Kubernetes 擁有一個(gè)龐大且快速增長的生態(tài)系統(tǒng)。Kubernetes 的服務(wù)、支持和工具廣泛可用。

 什么是Kubernetes?

Kubernetes 是一個(gè)可移植的、可擴(kuò)展的開源平臺(tái),用于管理容器化的工作負(fù)載和服務(wù),可促進(jìn)聲明式配置和自動(dòng)化。Kubernetes 擁有一個(gè)龐大且快速增長的生態(tài)系統(tǒng)。Kubernetes 的服務(wù)、支持和工具廣泛可用。Kubernetes由Google于2014年開源 ,它是基于Google自身在生產(chǎn)中運(yùn)行容器的經(jīng)驗(yàn)而構(gòu)建的。它現(xiàn)在由Cloud Native Computing Foundation(CNCF)管理,Kubernetes是大型企業(yè)中最流行的容器管理工具,在最近的CNCF調(diào)查中有83%的受訪者使用過。Kubernetes這個(gè)詞 源于希臘語,意為“舵手”或“飛行員”。

[[386975]]

Kubernetes如何成為標(biāo)準(zhǔn)

要了解Kubernetes的價(jià)值,我們首先必須回顧一下多年來企業(yè)如何部署應(yīng)用程序。在傳統(tǒng)部署中,應(yīng)用程序在物理服務(wù)器上運(yùn)行,這種方法容易導(dǎo)致資源分配問題。例如,如果在單個(gè)服務(wù)器上運(yùn)行多個(gè)應(yīng)用程序,則一個(gè)應(yīng)用程序可能會(huì)消耗大部分資源,從而影響其他應(yīng)用程序的性能。一種解決方案是在單獨(dú)的物理服務(wù)器上運(yùn)行每個(gè)應(yīng)用程序,但是這種方式帶來的成本過高,并且會(huì)導(dǎo)致資源利用不足。下一步是虛擬化,它通過在物理服務(wù)器的CPU之上運(yùn)行多個(gè)虛擬機(jī)(VM)(每個(gè)虛擬機(jī)運(yùn)行自己的組件,包括操作系統(tǒng)(OS)和應(yīng)用程序)來解決物理服務(wù)器的局限性。VM提供了很多好處,包括改善服務(wù)器資源的利用率,降低硬件成本,簡(jiǎn)化應(yīng)用程序升級(jí)以及其他增強(qiáng)可擴(kuò)展性。虛擬機(jī)有其缺點(diǎn)。例如,每個(gè)有自己的OS映像的VM都意味著額外的內(nèi)存和存儲(chǔ)要求。這增加了軟件開發(fā)生命周期的復(fù)雜性,并限制了應(yīng)用程序在公有云和私有云以及數(shù)據(jù)中心之間的可移植性。

容器的好處

容器與虛擬機(jī)相似,因?yàn)樗凶约旱能浖?,庫,?nèi)存,配置文件等。但容器有許多優(yōu)點(diǎn),最顯著的是有共享操作系統(tǒng)的能力(每個(gè)VM擁有自己獨(dú)立的OS映像),從而使它們相對(duì)輕量,快速且高效。容器的好處包括:

  • 效率提高:借助容器,可以更快地部署,修補(bǔ)或擴(kuò)展應(yīng)用程序。
  • 更好的可移植性:將容器中運(yùn)行的應(yīng)用程序輕松部署到多個(gè)操作系統(tǒng)和硬件平臺(tái)很容易。
  • 一致的操作:基于容器的應(yīng)用程序無論部署在何處都可以相同地方式運(yùn)行。
  • 更清晰的可觀察性:除了提供操作系統(tǒng)級(jí)別的指標(biāo)之外,它們還顯示應(yīng)用程序的運(yùn)行狀況。
  • 受益于應(yīng)用程序開發(fā):容器支持敏捷和DevOps開發(fā)(以加快開發(fā),測(cè)試和生產(chǎn)周期)。

Kubernetes對(duì)容器的作用

由于容器比傳統(tǒng)的虛擬化更加高效,快速和輕便,因此有大型應(yīng)用程序部署的企業(yè)可以將多個(gè)容器部署為一個(gè)或多個(gè)容器集群也就不足為奇了。但是,由于大型的分布式容器化應(yīng)用程序通常難以協(xié)調(diào),因此該環(huán)境面臨著一系列挑戰(zhàn)。Kubernetes是一個(gè)開源容器編排工具,可跨主機(jī)群集自動(dòng)執(zhí)行應(yīng)用程序容器的部署,擴(kuò)展和操作。最流行的容器調(diào)度工具Kubernetes與領(lǐng)先的容器化平臺(tái)Docker一起使用是最多的場(chǎng)景。但是Kubernetes還支持其他符合容器鏡像格式和運(yùn)行時(shí)標(biāo)準(zhǔn)的容器系統(tǒng),該標(biāo)準(zhǔn)由開放容器倡議(OCI)設(shè)定,該組織是由Linux Foundation監(jiān)督的開源技術(shù)社區(qū)。Kubernetes的替代產(chǎn)品包括Docker Swarm和Apache Mesos。

Kubernetes如何工作

Kubernetes提供了一個(gè)框架來運(yùn)行彈性的分布式系統(tǒng)。部署后,您將獲得一個(gè)Kubernetes集群—一組運(yùn)行Kubernees管理的容器化應(yīng)用程序的機(jī)器或節(jié)點(diǎn)。集群至少具有一個(gè):

  • 承載Pod的輔助節(jié)點(diǎn)。(每個(gè)pod是一組一個(gè)或多個(gè)容器。)
  • 主節(jié)點(diǎn),用于管理集群中的工作節(jié)點(diǎn)和Pod。

要使Kubernetes集群正常工作,您需要多個(gè)主組件,節(jié)點(diǎn)組件和附加組件。我們將在下面有關(guān)Kubernetes監(jiān)控的部分中討論這些組件。

Kubernetes的好處

盡管Kubernetes擁有很多優(yōu)點(diǎn),但它的四個(gè)主要優(yōu)點(diǎn)包括速度,擴(kuò)展,基礎(chǔ)設(shè)施抽象和效率?!禟ubernetes: Up and Running》(https://www.oreilly.com/library/view/kubernetes-up-and/9781491935668/)這本書由 Joe Beda,Brendan Burns和Kelsey Hightower撰寫。

  • 速度:Kubernetes提供了您需要每小時(shí)或每天快速發(fā)布功能同時(shí)保持高可用性服務(wù)的工具。
  • 擴(kuò)展:Kubernetes的配置管理工具使擴(kuò)展組成分布式應(yīng)用程序的容器和支持這些容器的集群的擴(kuò)展變得更加容易。
  • 基礎(chǔ)架構(gòu)抽象:在多個(gè)公共云之間或在混合云環(huán)境中運(yùn)行分布式應(yīng)用程序具有挑戰(zhàn)性。Kubernetes有很多可簡(jiǎn)化這些任務(wù)的插件。
  • 效率:通過在整個(gè)集群中自動(dòng)分配應(yīng)用程序并確保更高的利用率,Kubernetes有助于提高效率和成本管理。

Kubernetes監(jiān)控涉及什么?

什么是Kubernetes監(jiān)控?它涉及什么?讓我們從需要在Kubernetes中監(jiān)控什么以及為什么開始。Kubernetes可以極大地簡(jiǎn)化容器內(nèi)和跨云的應(yīng)用程序部署,但是卻帶來了自己的復(fù)雜性。正如Google在其《站點(diǎn)可靠性工程指南》(https://landing.google.com/sre/sre-book/chapters/practical-alerting/)中所指出的那樣,監(jiān)控大型,復(fù)雜的系統(tǒng)面臨兩個(gè)主要挑戰(zhàn):正在監(jiān)控的組件數(shù)量龐大,以及需要對(duì)運(yùn)維人員保持“合理的低維護(hù)的工作量”。這些要求需要一個(gè)監(jiān)控系統(tǒng),該系統(tǒng)不僅可以發(fā)出有關(guān)高級(jí)服務(wù)目標(biāo)的警報(bào),還可以檢查單個(gè)組件。為了擴(kuò)展應(yīng)用程序并提供可靠的服務(wù),您需要深入了解應(yīng)用程序在部署時(shí)的行為。要監(jiān)控Kubernetes集群中的應(yīng)用程序性能,檢查容器,容器和服務(wù)的性能以及整個(gè)集群的特性至關(guān)重要。通過提供有關(guān)應(yīng)用程序資源使用情況的信息,Kubernetes允許您評(píng)估應(yīng)用程序性能以檢測(cè)和消除瓶頸。

Kubernetes組成部分:要監(jiān)控的內(nèi)容

Kubernetes集群架構(gòu)包括一個(gè)主節(jié)點(diǎn)和單獨(dú)的Kubernetes節(jié)點(diǎn)。主要組件包括:

etcd

存儲(chǔ)配置信息,集群中的每個(gè)節(jié)點(diǎn)均可使用。

API server(kube-apiserver)

驗(yàn)證和配置API對(duì)象(例如Pod,服務(wù),復(fù)制控制器等)的數(shù)據(jù)。

Scheduler(kube-scheduler)

管理工作負(fù)載利用率以及將pod分配到可用節(jié)點(diǎn)。

kube-controller-manager

一個(gè)守護(hù)程序,負(fù)責(zé)收集信息并將其發(fā)送到API服務(wù)器。

cloud-controller-manager

運(yùn)行與云供應(yīng)商進(jìn)行交互的控制器。Kubernotes節(jié)點(diǎn)組件包括:

  • 容器運(yùn)行時(shí)(例如,Docker)
  • kubelet:主要節(jié)點(diǎn)代理,通過API服務(wù)器監(jiān)控pod規(guī)范;它還在Kubernetes集群中注冊(cè)了一個(gè)節(jié)點(diǎn)并報(bào)告事件,pod狀態(tài)和資源利用率。
  • Kubernetes代理(kube-proxy):在每個(gè)節(jié)點(diǎn)上運(yùn)行的代理服務(wù),有助于使服務(wù)對(duì)外部主機(jī)可用。

Kubernetes附加組件

您有很多Kubernetes附加組件可供選擇,但是這里有一些受歡迎的選擇。您可以在此處找到更全面的加載項(xiàng)列表。

  • Kubernetes儀表板:Kubernetes集群的基于Web的UI,可用于監(jiān)控工作負(fù)載(deployments, pods, replica sets 等等)的運(yùn)行狀況,并查看所有節(jié)點(diǎn)上匯總的CPU和內(nèi)存使用情況指標(biāo)。它具有配置,發(fā)現(xiàn),負(fù)載平衡,存儲(chǔ),監(jiān)控以及創(chuàng)建和管理工作負(fù)載的功能。
  • 群集DNS:為Kubernetes服務(wù)提供DNS記錄的DNS服務(wù)器。
  • ACI:通過Cisco Application Centric Infrastructure(ACI)(https://github.com/noironetworks/aci-containers)提供集成的容器網(wǎng)絡(luò)和網(wǎng)絡(luò)安全性。
  • 集群級(jí)日志記錄:使用搜索/瀏覽UI將容器日志保存到中央日志存儲(chǔ)中。

Kubernetes監(jiān)控挑戰(zhàn)

將傳統(tǒng)的單片應(yīng)用程序遷移到Kubernetes既耗時(shí)又容易出錯(cuò)。但是,企業(yè)愿意冒險(xiǎn)以在云中實(shí)現(xiàn)更大的敏捷性,創(chuàng)新,成本優(yōu)勢(shì),可擴(kuò)展性和業(yè)務(wù)增長。但是將單片應(yīng)用程序遷移到微服務(wù)的公司缺乏對(duì)Kubernetes環(huán)境的可見性。這使得無法實(shí)時(shí)查看每個(gè)微服務(wù)的交互。

Kubernetes很復(fù)雜

集成工程師Dave Snyder指出,Kubernetes難以監(jiān)控的另一個(gè)原因是,Kubernetes集群要復(fù)雜得多,它有多個(gè)服務(wù)器以及私有和公有云服務(wù)。問題開始時(shí),將有許多日志以及其他數(shù)據(jù)和組件需要排查。整體環(huán)境可能需要好幾個(gè)日志搜索,但是Kubernetes環(huán)境可能包含一個(gè)或多個(gè)有關(guān)正在排查的問題需要多個(gè)微服務(wù)的日志。

使用APM進(jìn)行Kubernetes監(jiān)控

使用應(yīng)用程序性能監(jiān)控解決方案進(jìn)行的Kubernetes監(jiān)控使組織可以查看應(yīng)用程序和業(yè)務(wù)性能,包括對(duì)容器化應(yīng)用程序,Kubernetes集群,Docker容器和基礎(chǔ)架構(gòu)指標(biāo)的更深入了解。這種可見性使企業(yè)可以增強(qiáng)容器級(jí)別的指標(biāo),并獲得有關(guān)CPU,數(shù)據(jù)包,內(nèi)存和網(wǎng)絡(luò)利用率的可見性。然后,用戶可以將這些指標(biāo)和關(guān)聯(lián)的運(yùn)行狀況規(guī)則以及它們?cè)贏PM監(jiān)控的容器應(yīng)用程序上的資源使用統(tǒng)計(jì)信息作為基準(zhǔn)。通過將APM指標(biāo)與基礎(chǔ)容器和服務(wù)器指標(biāo)進(jìn)行比較,公司可以快速了解其容器化應(yīng)用程序的性能,并了解基礎(chǔ)架構(gòu)中的潛在障礙。例如,特定指標(biāo)可以幫助識(shí)別占用帶寬的應(yīng)用程序和容器級(jí)網(wǎng)絡(luò)錯(cuò)誤。

Kubernetes環(huán)境中的全棧可見性

可見性使組織可以監(jiān)控在Kubernetes Pod中運(yùn)行的容器化應(yīng)用程序,并確定妨礙應(yīng)用程序性能的容器問題。全面的Kubernetes監(jiān)控解決方案可提供對(duì)組織應(yīng)用程序的每個(gè)組件(基礎(chǔ)架構(gòu),Kubernetes平臺(tái),容器以及每個(gè)微服務(wù)和最終用戶設(shè)備)的端到端可見性。

什么是Kubernetes監(jiān)控最佳實(shí)踐?

Kubernetes提供了操作流程和復(fù)雜性,其中許多涉及應(yīng)用程序性能監(jiān)控。隨著您將Kubernetes的使用擴(kuò)展到生產(chǎn)環(huán)境中,這些挑戰(zhàn)變得更加重要。通過創(chuàng)建諸如Pod和Service之類的抽象級(jí)別,Kubernetes使您不必?fù)?dān)心應(yīng)用程序在何處運(yùn)行或它們是否具有足夠的資源來高效運(yùn)行。但是要確保最佳性能,您仍然必須監(jiān)控應(yīng)用程序,運(yùn)行它們的容器,甚至Kubernetes本身。以下是一些重要的Kubernetes監(jiān)控最佳實(shí)踐:

使用Kubernetes DaemonSets

在運(yùn)行Kubernetes時(shí),您可能希望在所有節(jié)點(diǎn)上運(yùn)行單個(gè)pod,例如,在運(yùn)行諸如AppDynamics代理或開源數(shù)據(jù)收集器Fluentd之類的監(jiān)控進(jìn)程時(shí),以收集日志。DaemonSet是一個(gè)Kubernetes工作負(fù)載對(duì)象,可確保特定的Pod在集群中的每個(gè)節(jié)點(diǎn)或節(jié)點(diǎn)的某些子集上運(yùn)行。通過使用DaemonSet,您要告訴Kubernetes確保每個(gè)節(jié)點(diǎn)上都有一個(gè)pod實(shí)例。

Tags和Labels Matter很重要

使用Kubernetes管理容器編排,標(biāo)簽對(duì)于監(jiān)控變得至關(guān)重要,因?yàn)闃?biāo)簽是您與容器和容器進(jìn)行交互的唯一方法。為了使度量標(biāo)準(zhǔn)盡可能有用,必須使用邏輯且一致的方案定義標(biāo)簽。

知道要監(jiān)控的指標(biāo)

根據(jù)Kubernetes.io,應(yīng)該密切跟蹤Kubernetes指標(biāo)的幾種關(guān)鍵類型:

  • 運(yùn)行Pod及其部署
  • 資源指標(biāo),包括CPU,內(nèi)存使用情況和磁盤I/O
  • 容器原生指標(biāo)
  • 應(yīng)用指標(biāo)

使用服務(wù)發(fā)現(xiàn)

由于Kubernetes根據(jù)調(diào)度策略動(dòng)態(tài)調(diào)度應(yīng)用程序,因此您可能不知道應(yīng)用程序在何處運(yùn)行,但是無論如何您都必須對(duì)其進(jìn)行監(jiān)控。您將希望使用具有服務(wù)發(fā)現(xiàn)功能的監(jiān)控系統(tǒng),該系統(tǒng)會(huì)自動(dòng)使指標(biāo)收集適應(yīng)移動(dòng)的容器。這種方法使您可以連續(xù)監(jiān)控應(yīng)用程序而不會(huì)中斷。

Kubernetes監(jiān)控工具

Kubernetes有很多好處,但也增加了復(fù)雜性。例如,其要在多個(gè)數(shù)據(jù)中心甚至不同的云供應(yīng)商之間分布容器化應(yīng)用程序的能力,就需要一種全面的監(jiān)控解決方案來跨多個(gè)不同來源收集和匯總指標(biāo)。持續(xù)監(jiān)控系統(tǒng)和應(yīng)用程序的運(yùn)行狀況至關(guān)重要,許多免費(fèi)的商業(yè)解決方案可提供對(duì)Kubernetes集群及其托管的應(yīng)用程序的實(shí)時(shí)監(jiān)控。這是用于Kubernetes監(jiān)控的幾個(gè)開源工具:

Prometheus

這個(gè)針對(duì)Kubernetes和Docker的流行的監(jiān)控和警報(bào)工具提供了詳細(xì),可行的指標(biāo)和分析。Prometheus由SoundCloud開發(fā)并捐贈(zèng)給CNCF社區(qū),專門設(shè)計(jì)用于監(jiān)控在容器中運(yùn)行的應(yīng)用程序和微服務(wù)。但是,Prometheus并不是儀表板,通常與Grafana結(jié)合使用(見下文)以可視化數(shù)據(jù)。

Grafana

Grafana是用于分析和度量可視化的開源平臺(tái),包括四個(gè)儀表板:集群,節(jié)點(diǎn),Pod/容器和部署。Kubernetes管理員通常會(huì)安裝Grafana并利用Prometheus數(shù)據(jù)源來創(chuàng)建信息豐富的儀表板。

Jaeger

Jaeger是一個(gè)跟蹤系統(tǒng),用于對(duì)復(fù)雜的分布式系統(tǒng)中的事務(wù)進(jìn)行故障排除和監(jiān)控。它解決了分布式上下文傳播,分布式事務(wù)監(jiān)控,等待時(shí)間優(yōu)化等中出現(xiàn)的軟件問題。

Dashboard

Kubernetes儀表板是Kubernetes集群的Web UI插件,可讓您監(jiān)控工作負(fù)載的運(yùn)行狀況。

Kubewatch

該附加組件監(jiān)控Kubernetes pod中發(fā)生的更改,并將通知發(fā)送到Slack Channel。Kubewatch用Golang編寫,它使用Kubernetes客戶端庫與Kubernetes API服務(wù)器進(jìn)行交互,并使用Slack客戶端庫與Slack進(jìn)行交互。

Weave Scope

Weave Scope是Kubernetes和Docker的可視化和監(jiān)控工具,它提供了應(yīng)用程序和整個(gè)基礎(chǔ)架構(gòu)的自頂向下視圖。由Weaveworks開發(fā),Weave Scope生成Kubernetes集群中的進(jìn)程,容器和主機(jī)的映射。它的圖形用戶界面還允許您在容器上管理和運(yùn)行診斷命令。

EFK Stack

EFK Stack實(shí)際上是三個(gè)可以很好地協(xié)同工作的工具的混合物:Elasticsearch,F(xiàn)luentd和Kibana。Fluentd是一個(gè)數(shù)據(jù)收集器,它從Kubernetes集群節(jié)點(diǎn)上運(yùn)行的Pod中刪除日志。它將這些日志路由到Elasticsearch搜索引擎,Elasticsearch搜索引擎提取數(shù)據(jù)并將其存儲(chǔ)在中央存儲(chǔ)庫中。Kibana是Elasticsearch的數(shù)據(jù)可視化插件,是EFK Stack的UI,允許用戶可視化收集的日志和指標(biāo)并創(chuàng)建自定義儀表板。

InfluxDB

InfluxData的InfluxDB是時(shí)間序列數(shù)據(jù)的高性能存儲(chǔ)。它專為監(jiān)控記錄的大量存儲(chǔ)而構(gòu)建,可通過集群提供水平可伸縮性和高可用性。InfluxDB是長期存儲(chǔ)Kubernetes監(jiān)控?cái)?shù)據(jù)以用于歷史記錄或建模的很好的解決方案。

責(zé)任編輯:華軒 來源: 新鈦云服
相關(guān)推薦

2022-09-01 08:50:22

kubernetes容器

2021-06-08 10:26:10

云計(jì)算云計(jì)算產(chǎn)業(yè)云應(yīng)用

2021-03-01 19:24:13

Kubernetes備份容器

2022-12-26 07:52:33

DockerfileFROM命令

2022-03-01 18:27:18

云原生日志監(jiān)控

2019-05-21 10:45:44

Docker架構(gòu)容器

2021-05-18 08:00:00

Kubernetes容器進(jìn)程

2020-04-30 21:30:18

JavaScript前端技術(shù)

2021-06-04 10:52:51

kubernetes場(chǎng)景容器

2021-11-26 13:43:01

服務(wù)器虛擬化數(shù)據(jù)中心

2018-07-18 09:45:09

云服務(wù)Kubernetes實(shí)踐

2019-07-15 10:39:04

云計(jì)算基礎(chǔ)設(shè)施監(jiān)控軟件

2019-05-16 09:00:06

云原生監(jiān)控日志管理

2015-08-10 14:41:39

Kubernetes監(jiān)控開源容器管理

2020-04-28 16:12:50

前端JavaScript代碼

2018-07-13 09:05:13

KubernetesDevOps云計(jì)算

2022-11-30 15:28:55

2022-04-07 09:30:00

自動(dòng)化LinodeKubernetes

2020-03-16 08:48:18

Kubernetes容器云原生

2022-12-19 07:28:53

Kubernetes資源請(qǐng)求限制
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)

主站蜘蛛池模板: www.五月天婷婷.com | 中文字幕国产精品 | 51ⅴ精品国产91久久久久久 | 在线亚洲精品 | 中文字幕第十页 | 高清免费在线 | 日日夜夜精品视频 | 国产福利在线播放 | 久久国产精品网 | 狠狠草视频 | 亚洲欧美激情精品一区二区 | h视频免费在线观看 | 欧美一区二区在线播放 | 日韩欧美二区 | 成人精品国产免费网站 | 国产精品视频一二三区 | 成人福利在线 | 日韩在线免费视频 | 久久精品亚洲 | 日韩aⅴ视频 | 最新国产精品视频 | 精品久久国产 | 欧美精品一区二区三区在线 | 亚洲九色| 欧美视频中文字幕 | a久久 | 久优草| 国产日韩欧美在线 | 国产精品一区二区精品 | 午夜久久久久久久久久一区二区 | 久久精品国产免费 | 色精品 | 国产一区二区自拍 | 一区二区三区视频播放 | 欧美日韩国产精品一区 | 国产福利小视频 | a毛片| 欧美mv日韩mv国产网站91进入 | 亚洲男人的天堂网站 | 欧美一级电影免费观看 | 艹逼网|