什么是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来查询和可视化指标。