什么是Helm?
Helm是一個k8s的包管理工具,它簡化了應用程序在k8s集群中的部署,管理和維護。類似于rpm包和yum之間的關系。
K8s傳統方式:類似于rpm安裝包的方式,逐步進行安裝,遇到依賴還得解決依賴問題
helm方式:類似于使用Yum安裝,一鍵封裝進行安裝,自動解決依賴問題。
傳統的k8s和Helm的各方面的對比:
- 部署方式:
使用k8s方式部署pod應用程序:需要手動編寫和管理多個yaml文件。
使用Helm方式部署pod應用程序:通過Helm Charts將應用程序及其所有依賴打包成一個單獨的包,可以快速部署。
? ? ?2.管理和升級:
K8s本身沒有內置的版本管理機制,需要手動管理應用程序的版本。
helm維護應用程序的版本歷史,可以輕松進行版本升級和回滾。
? ? ? 3.重用性和共享:
K8s:需要手動管理資源文件,缺乏直接的共享和復用機制。
Helm:Helm Charts有公用的模板yaml文件,通過傳遞不同的變量,快速拉起一套新的服務,可在不同的環境中復用,并且可以共享和分發到Helm倉庫。
什么是Kubernetes的監控和日志記錄解決方案?
K8s提供了多種監控和日志記錄解決方案,如Prometheus,ELK堆棧等,這些工具可以用于監控集群的性能指標和應用程序日志。
如果您更關注實時度量和警報功能,以及對指標數據進行靈活查詢和分析,那么Prometheus可能是更好的選擇。它適用于監控容器中的各種指標,如CPU利用率、內存使用量、網絡流量等。另一方面,如果您的關注點更多是日志管理和分析,特別是對大規模日志數據的搜索、過濾和可視化,那么ELK Stack是更適合的解決方案。
如何在Prometheus中定義監控指標?
Prometheus概述:
Prometheus 僅用鍵值方式存儲時序式的聚合數據,不支持文本信息
其中的 “鍵” 稱為指標(metric),通常意味著 CPU 速率、內存使用率或分區空閑比例等
同一指標可能適配到多個目標或設備、因而它使用 “標簽” 作為元數據,從而為 metric 添加更多的信息描述維度
- 定義和暴露指標
首先需要在應用程序中暴露這些指標,為了能夠監控到更多信息,如主機的 CPU 使用率等,我們需要使用到 node_exporter。Prometheus 周期性的從 Exporter 暴露的 HTTP 服務地址(通常是 /metrics)拉取監控樣本數據。
? ? ?2.配置Prometheus抓取指標
編輯Prometheus的配置文件prometheus.yml,添加目標(target)。
?????3.查詢和可視化指標
配置完成后,Prometheus將開始抓取并存儲這些指標數據。你可以使用Prometheus的web界面或Grafana來查詢和可視化指標。