阿里云云原生容器工程师ACP认证(九)—容器服务ACK日志管理

 

Kubernetes可观测性体系概述

可观测性指如何从外部输出推断及衡量系统内部状态。Kubernetes可观测性体系包含监控和日志两部分,监控可以帮助开发者查看系统的运行状态,而日志可以协助问题的排查和诊断。

  • 在 Kubernetes 中,监控和日志属于生态的一部分,它并不是核心组件,因此大部分的能力依赖上层的云厂商的适配。
  • Kubernetes 定义了介入的接口标准和规范,任何符合接口标准的组件都可以快速集成。 在这里插入图片描述

Logging - 日志

  • 基于阿里云日志服务 SLS提供了完整的日志方案,可以对应用日志进行收集、处理,并且提供了操作审计,,Kubernetes 事件中心等能力。

Metrics-监控指标

  • 对基础设施服务,比如ECS、存储,网络,云监控提供了全面的监控。

  • 对于业务应用的性能指标,ARMS无需修改业务代码即可对 Java 和 PHP应用提供全方位的性能监控。

Tracing-全链路追踪

  • Tracing Analysis 为开发者提供了完整的分布式应用,调用链路统计、拓扑分析等工具
  • 能够帮助开发者快速发现和诊断分布式应用中的性能瓶颈,提升微服务应用的性能和稳定性。

Kubernetes日志使用场景

Kubernetes日志使用场景主要分为四个大的场景:

  • 主机内核的日志:主机内核日志可以协助开发者进行一些常见的问题与诊断:网络线异常、驱动异常、文件系统异常、影像节点(内核)稳定的异常。

  • Runtime 的日志:比较常见的是 Docker 的一些日志,我们可以通过docker 的日志来排查类似像删除一些Pod Hang 这一系列的问题。

  • 核心组件的日志:APIServer日志可以用来审计,Scheduler日志可以诊断调度,etcd日志可以查看存储状态,Ingress日志可以分析接入层流量。

  • 部署应用的日志:可以通过应用日志分析查看业务层的状态,诊断异常。

Kubernetes日志的采集

从采集位置上划分,主要支持如下三种:

  • 宿主机文件
  • 容器内文件
  • 容器标准/错误输出

阿里云ACK日志服务

阿里云容器服务Kubernetes集群集成了日志服务,可在创建集群时启用日志服务,快速采集Kubernetes集群的容器日志,包括容器的标准输出以及容器内的文本文件。

启用日志服务组件Logtail

  • 可以在创建集群时选中使用日志服务,启用Logtail组件
  • 也可以为已有集群启用Logtail组件。

创建应用时配置日志服务

  • 可以在创建应用的同时配置日志服务,从而对容器的日志进行采集。
  • 目前支持控制台向导和YAML模板两种方式创建应用。

通过日志服务采集Kubernetes容器日志-创建集群启用

创建集群启用日志服务

  • 登录容器服务管理控制台。
  • 在控制台左侧导航栏中,单击集群。
  • 在集群列表页面中,单击页面右上角的创建集群。以下仅介绍开启日志服务的关键步骤。关于创建集群的具体操作,请参见创建Kubernetes托管版集群

  • 在组件配置配置项页中,选中使用日志服务,表示在新建的Kubernetes集群中安装日志插件。当选中使用日志服务后,会出现创建项目(Project)的提示。关于日志服务管理日志的组织结构,请参见项目(Project)。有以下两种创建Project方式。
    • 单击使用已有Project,选择一个现有的Project来管理采集的日志。

      在这里插入图片描述

    • 单击创建新Project,自动创建一个新的Project来管理采集的日志,Project会自动命名为k8s-log-{ClusterID},ClusterID是您新建的Kubernetes集群的唯一标识。

      在这里插入图片描述

  • 配置完成后,单击右下角创建集群,在弹出的窗口中单击确定,完成创建。完成创建后,您可在集群列表页面看到开启了Logtail的ACK集群。

为已有集群启用Logtail

  • 登录容器服务管理控制台。
  • 在控制台左侧导航栏中,单击集群。
  • 在集群列表页面中,单击目标集群名称或者目标集群右侧操作列下的详情。
  • 在集群管理页左侧导航栏中,选择运维管理 > 组件管理,并在日志与监控区域找到logtail-ds。
  • 在logtail-ds组件右侧,单击安装。在安装组件对话框中单击确认。