当前位置:主页 > 查看内容

Job类型任务如何采集日志 - 弹性容器实例

发布时间:2021-09-17 00:00| 位朋友查看

简介:本文将为您介绍针对Job类型任务场景如何采集日志到日志系统。 前提条件 已创建一个Kubernetes托管版集群。具体操作,请参见 创建Kubernetes托管版集群 。 已在该集群上部署了虚拟节点。具体操作,请参见 部署虚拟节点 。 已创建NAS文件系统,并且添加了挂载……

本文将为您介绍针对Job类型任务场景如何采集日志到日志系统。

前提条件

说明

如果您使用了阿里云日志服务,Job任务挂载volume收集日志通过配置环境变量,可以直接同步阿里云日志服务。更多信息,请参见ECI中日志采集的自定义配置

Pod采集日志

注意

在ECS模式下Job任务可以通过DeamonSet方式采集标准输出,但是在ECI模式下不支持DeamonSet。当Job任务结束后,Pod会立即退出,此时日志可能还未被收集完成,针对这种情况我们可以采用如下方式解决:

Job类任务挂载NAS盘,把输出的日志存储在NAS盘,再通过另一个同样挂载NAS盘的Pod来采集Job任务标准输出到日志系统中。

1、通过kubectl客户端创建job.yaml文件,并拷贝以下内容到该文件。

一个计算π值job任务:

apiVersion: batch/v1
kind: Job
metadata:
  name: pi
spec:
  template:
    spec:
      containers:
      - name: pi
        image: resouer/ubuntu-bc 
        command: ["sh", "-c", "echo 'scale=1000; 4*a(1)' | bc -l > /eci/a.log 2>&1"] #运行输出结果重定向到指定文件
        volumeMounts:
        - name: log-volume
          mountPath: /eci
          readOnly: false
      restartPolicy: Never
      volumes:
      - name: log-volume
        nfs:
            path: /eci
            server: 04edd48c7c-****.cn-hangzhou.nas.aliyuncs.com
            readOnly: false
  backoffLimit: 4

2、执行以下命令部署一个Job任务到虚拟节点

kubectl apply -f job.yaml -n fvt-eci
说明

部署虚拟节点详情请参见部署虚拟节点Chart。

3、执行一下命令查看pod状态

kubectl get pod -n fvt-eci

4、通过kubectl客户端创建log-collection.yaml文件,并拷贝以下内容到该文件。然后执行指令创建一个Pod,挂载nas盘用来采集Job任务输出日志。

apiVersion: v1
kind: Pod
metadata:
  name: log-collection
spec:
  containers:
  - image: nginx:latest
    name: log-collection
    command: ['/bin/sh', '-c', 'echo &(cat /eci/a.log)'] #查看Job日志文件
    volumeMounts:
    - mountPath: /eci
      name: log-volume
  restartPolicy: Never
  volumes:
  - name: log-volume
    nfs:
      server: 04edd48c7c-****.cn-hangzhou.nas.aliyuncs.com
      path: /eci
      readOnly: false
kubectl apply -f log-collection.yaml -n fvt-eci


本站部分内容转载于网络,版权归原作者所有,转载之目的在于传播更多优秀技术内容,如有侵权请联系QQ/微信:153890879删除,谢谢!
上一篇:ASK中采集日志到日志服务 - 弹性容器实例 下一篇:没有了

推荐图文

  • 周排行
  • 月排行
  • 总排行

随机推荐