17.云原生可观测性之kubesphere中的支持

发布时间:2024年01月19日

云原生专栏大纲

可观测性介绍

可观测性是指在软件系统中收集、分析和利用数据以了解系统的行为和性能的能力。它是一种关注系统健康状况、故障排查和性能优化的实践和方法。

云原生可观测性(Cloud-native Observability)是指在云原生架构中,通过采集、分析和利用系统的运行数据和指标,以实现对应用程序和基础设施的全面监控和可视化。它是构建可靠、高效和可扩展的云原生系统的关键组成部分。

云原生可观测性的核心目标是提供对应用程序和基础设施的实时洞察力,以便及时发现、诊断和解决问题,从而提高系统的可用性、性能和可靠性。以下是一些常见的云原生可观测性实践和工具:

  1. 日志管理:通过收集、聚合和分析应用程序和系统的日志,可以追踪请求流程、排查问题和监控系统状态。常见的日志管理工具包括ELK Stack(Elasticsearch、Logstash、Kibana)、Fluentd、Splunk等。
  2. 度量指标:通过收集和展示关键的系统指标(如CPU利用率、内存使用量、请求响应时间等),可以实时监控系统的性能和健康状况。Prometheus和InfluxDB是常用的度量指标工具。
  3. 分布式追踪:在分布式系统中,追踪请求的路径和性能是非常重要的。分布式追踪工具(如Jaeger、Zipkin)可以帮助跟踪请求的流经路径,以便诊断和优化系统性能。
  4. 事件处理:通过捕获和处理系统中的事件(如错误、警报、故障等),可以及时发现和响应潜在的问题。常见的事件处理工具包括Prometheus Alertmanager、Grafana等。
  5. 可视化和仪表板:通过可视化工具(如Grafana、Kibana、Datadog等),可以将收集到的数据转化为易于理解和分析的图表和仪表板,帮助用户实时监控系统状态和性能。
  6. 容器监控:云原生架构通常使用容器来部署和管理应用程序。因此,监控容器的健康状态、资源利用率和性能指标是至关重要的。容器编排工具(如Kubernetes)提供了内置的容器监控功能,可以收集和展示容器级别的指标。此外,工具如cAdvisor、Prometheus Operator和Datadog等也提供了容器监控的解决方案。
  7. 自动化告警和响应:云原生环境中的系统通常是动态变化的,容器的创建和销毁、自动伸缩等操作都会对系统状态产生影响。因此,自动化告警和响应机制是必不可少的。通过配置告警规则和自动化脚本,可以在系统出现异常或达到预设的阈值时及时通知相关团队,并采取相应的响应措施。
  8. 安全监控:云原生可观测性也包括对系统安全的监控。通过收集和分析安全事件、审计日志和网络流量等数据,可以检测潜在的安全威胁和漏洞。安全监控工具如Prometheus、Elastic Security和AWS CloudTrail等提供了安全事件的收集和分析功能。

综上所述,云原生可观测性是通过日志管理、度量指标、分布式追踪、事件处理以及可视化和仪表板等手段来监控和分析云原生系统的运行状况。这些实践和工具可以帮助开发人员和运维团队快速识别和解决问题,提高系统的可靠性和性能。

kubesphere可观测性支持

kubesphere工具箱和项目监控报警提供了对可观测的支持,工具箱中包括日志查询、事件查询、审计查询和计量计费,工具箱官网参考文档
image.pngimage.png

容器日志查询

需开启日志系统,通过日志查询可快速定位容器故障。

收集卷上的日志

  1. 开启卷上日志收集

image.png

  1. 部署工作负载开启卷上日志收集

image.png

日志查询维度

搜索维度包括项目、工作负载、容器组、容器、关键字和时间,可进行模糊/精确搜索。使用日志系统我们将不用再自建ELK日志收集系统。
image.png

项目>工作负载>容器组>容器
工作负载(Workload)是指应用程序或服务的运行实例,而容器组(Pod)是 Kubernetes 中最小的可调度和可管理的单元。一个工作负载通常由一个或多个容器组(Pod)组成。这些容器组可以包含相同的应用程序副本,以提供高可用性和负载均衡,也可以包含不同的应用程序实例,以支持微服务架构中的多个服务组件。

日志搜索案例

  1. 搜索指定工作负载、容器组、容器和关键字日志如下:

image.png

下述步骤验证搜索日志

  1. 工作负载redis-replicas下容器组存在redis-replicas0\1\2

image.png

  1. redis-replicas1下存在容器redis

image.png

  1. 容器reids日志如下:

image.png

资源事件查询

需开启事件系统,查询事件可快速定位部署过程中那些部署存在问题,以便处理。
搜索维度包括企业空间、项目、资源类型、资源名称、原因、分类、时间范围,精确/模糊查询。搜索返回内容如下:
image.png

审计日志查询

需开启审计系统,审计日志查询可定位用户集群操作记录。配合告警系统可预警用户风险操作。
KubeSphere 审计日志系统默认只接收来自 KubeSphere 的审计日志,同时也可以接收来自 Kubernetes 的审计日志和自定义审计日志,参考官网接收和自定义审计日志配置。
搜索维度包括企业空间、项目、资源类型、操作行为、状态码、操作者、源IP地址、时间范围,精确/模糊查询。搜索返回内容如下:
image.png
并可点击具体某条数据查看元数据,进行溯源:
image.png

资源消费统计

启用计费

  1. 执行以下命令编辑 ConfigMap kubesphere-config:
kubectl edit cm kubesphere-config -n kubesphere-system
  1. 在该 ConfigMap 的 metering 下添加保留期限和价格信息。以下为示例配置:
metering:
  # retentionDay 决定用户的资源消费统计页面显示的日期范围
  retentionDay: 7d
  billing:
    priceInfo:
      # 资源消费统计页面显示的货币单位。目前可用的单位有 CNY(人民币)和 USD(美元)。若指定其他货币,控制台将默认以美元为单位显示消费情况。
      currencyUnit: "USD"
      # 每核/小时的 CPU 单价。
      cpuPerCorePerHour: 1.5
      # 每 GB/小时的内存单价。
      memPerGigabytesPerHour: 5
      # 每 MB/小时的入站流量单价。
      ingressNetworkTrafficPerMegabytesPerHour: 1
      # 每 MB/小时的出站流量单价。
      egressNetworkTrafficPerMegabytesPerHour: 1
      # 每 GB/小时的 PVC 单价。请注意,无论实际使用的存储是多少,KubeSphere 都会根据 PVC 请求的存储容量来计算存储卷的总消费情况。
      pvcPerGigabytesPerHour: 2.1
  1. 执行以下命令重启 ks-apiserver。
kubectl rollout restart deploy ks-apiserver -n kubesphere-system
  1. 资源消费统计页面,您可以看到资源的消费信息。

查看计费情况

  1. 选择查看集群/企业空间消费情况

image.png

  1. 选择企业空间

image.png
image.png

  1. 查看项目消费情况

image.png
重新修改价格配置,消费金额会重新计算
image.png

文章来源:https://blog.csdn.net/weixin_45690643/article/details/135697852
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。