tencent cloud

文档反馈

日志采集相关

最后更新时间:2023-05-22 15:15:24
    本文将提供在进行 构建深度学习容器镜像在 TKE Serverless 上运行深度学习 实践时可能遇到的常见问题解答。

    日志如何进行持久存储?

    因为 TKE Serverless 即用即消的特性,导致如果想要查看日志,必须当且仅当 Pod 还在 Running 状态时查看。一旦 Pod 状态变为 Completed ,将会出现如下报错:
    Error from server (InternalError): Internal error occurred: can not found connection to pod ***
    以下为您介绍能将日志持久存储的方法:

    重定向

    重定向方法最为简单,只需将 kubectl logs 输出到终端的 stdout 转向输出到文件中即可持久化存储。执行命令如下:
    kubectl logs -f tf-cnn >> info.log
    
    但使用重定向方法时需要注意,输出流不会流向终端,也就是说在终端上将无法看到日志滚到哪一步。如果在将命令输出保存到文件中的同时,还需要将内容也输出到屏幕,有如下两种方法:
    使用管道 + tee 命令,执行命令如下:
    kubectl logs -f tf-cnn |tee info.log
    
    使用 logsave 命令,也可以做到将命令输出保存到文件的同时将内容页输出到屏幕中,执行命令如下:
    logsave [-asv] info.log kubectl logs -f tf-cnn
    
    说明:
    logsave 相较于tee 的好处是,logsave 每次输入会记录下时间,并制造间隔,观感上也更便于查找某一段日志。
    上述三条命令同时存在弊端,因为都是基于 kubectl logs 输出的重定向,使用时必须在 Running 状态时运行,起到的作用只是在 Completed 后依然能查看日志。重定向方法可适用于少量的日志,不存在大量的日志输出和检索需求的场景下。如果您的需求不高,那么推荐您使用重定向方法。

    配置日志采集

    在 TKE Serverless 集群中,可以通过环境变量和自定义资源(CRD)两种方式配置日志采集。
    使用环境变量配置日志采集
    通过 CRD 配置日志采集(推荐)
    1. 按照 使用环境变量配置日志采集 文档配置日志采集
    2. 如果使用密钥授权,可以新建一个 Opaque 类型的 Secret ,创建两个 key(SecretId 和 SecretKey),值分别是在 API 密钥 中获得的 SecretId 和 SecretKey
    3. 即可在开启日志采集中找到创建的 Secret ,并关联 SecretId 和 SecretKey 。
    4. 在控制台得到原始日志,切换表格展示并将 JSON 格式化。
    使用此方法将会出现一个问题,TKE Serverless 开启日志采集功能的原理,是将采集到的日志以 JSON 的形式发送到指定的消费端。而采集提供的 JSON 时间戳是秒级。
    将导致在控制台上查看的日志时间的粒度也是秒级,在检索分析端上看到的日志只能按秒级时间顺序,而更小尺度不能实现顺序输出。而有时候日志会在短时间大量输出,通常需要微秒级的精度。因此我们更推荐使用 CRD 配置方式。
    1. 按照 通过 CRD 配置日志采集 文档配置日志采集。
    2. 开启日志采集后,新建如下图所示日志规则:
    
    在检索分析端可以看到,时间粒度为毫秒级,而更小尺度也按顺序输出。
    说明:
    CRD 配置的日志采集还支持通过正则划分原始日志,更自由,但相较于环境变量配置更麻烦。

    配置日志采集可能遇到的问题

    如果选择 CRD 配置日志采集,请选择 Chrome 内核的浏览器(最新版 Edge、Chrome 浏览器)进行配置,而不是旧版 Edge 等。因为前端已经可能不支持旧版内核,会出现日志样例无法正常显示、正则表达式自动生成无法正常框取等问题。
    在用 CRD 配置日志采集后,在新建 Pod 时无需其他操作,会自动获取输出的 log 。如果未采集到,考虑是否存在机器组已满的问题。使机器组额度有空余后,重启 cls-provisioner 的 Pod 即可。
    
    联系我们

    联系我们,为您的业务提供专属服务。

    技术支持

    如果你想寻求进一步的帮助,通过工单与我们进行联络。我们提供7x24的工单服务。

    7x24 电话支持