本文将介绍如何在Serverless Kubernetes集群中将业务容器的标准输出和日志文件收集到阿里云日志服务。

前提条件

您已经创建好一个Serverless Kubernetes集群。请参见创建 Serverless Kubernetes 集群

使用YAML模版来部署示例

  1. 容器服务管理控制台
  2. 在 Kubernetes 菜单下,单击左侧导航栏中的应用 > 无状态,然后单击页面右上角的使用模板创建
  3. YAML 模板的语法同 Kubernetes 语法,采集配置通过ENV来暴露,为了收集文件的日志,也需要创建对应的 volumeMounts 和 volumes。以下是一个简单的 Deployment 示例:
    apiVersion: apps/v1
    kind: Deployment
    metadata:
      labels:
        app: alpine
      name: alpine
    spec:
      replicas: 2
      selector:
        matchLabels:
          app: alpine
      template:
        metadata:
          labels:
            app: alpine
        spec:
          containers:
          - image: alpine
            imagePullPolicy: Always
            args:
            - ping
            - 127.0.0.1
            name: alpine
            env:
            ######### 配置 环境变量 ###########
            - name: aliyun_logs_test-stdout
              value: stdout
            - name: aliyun_logs_test-file
              value: /log/*.log
            #################################
            ######### 配置vulume mount #######
            volumeMounts:
            - name: volume-sls
              mountPath: /log
          volumes:
          - name: volume-sls
          ###############################

    其中以下内容需要根据您的需求进行配置,一般按照顺序进行配置。

    • 通过环境变量来创建您的采集配置,所有与配置相关的环境变量都采用aliyun_logs_作为前缀。 创建采集配置的规则如下:
      - name: aliyun_logs_{Logstore 名称}
        value: {日志采集路径}

      示例中创建了两个采集配置,其中 aliyun_logs_log-stdout 这个 env 表示创建一个 Logstore 名字为 log-stdout,日志采集路径为 stdout 的配置,从而将容器的标准输出采集到 log-stdout 这个 Logstore 中。

      说明 Logstore 名称中不能包含下划线(_),可以使用 - 来代替。
    • 如果您的采集配置中指定了非 stdout 的采集路径,需要在此部分创建相应的 volumnMounts。

      示例中采集配置添加了对/log/*.log 的采集,因此相应地添加了/log的 volumeMounts。

  4. 当 YAML 编写完成后,单击创建,即可将相应的配置交由 Serverless Kubernetes 集群执行。
    部署完成后,您可以通过执行以下命令,查看pod部署情况。
    NAME                      READY     STATUS    RESTARTS   AGE       IP             NODE
    alpine-76d978dbdd-gznk6   1/1       Running   0          21m       10.1.XX.XX   viking-c619c41329e624975a7bb50527180****
    alpine-76d978dbdd-vb9fv   1/1       Running   0          21m       10.1.XX.XX   viking-c619c41329e624975a7bb50527180****

查看日志

  1. 安装成功后,进入日志服务控制台
  2. 在进入控制台后,选择 Kubernetes 集群对应的 Project(默认为 k8s-log-{Kubernetes 集群 ID}),进入 Logstore 列表页面。
  3. 在列表中找到相应的 Logstore(采集配置中指定),单击花,在下拉框中选择查询分析
    本例中,找到test-stdout这个logstore,单击花,在下拉框中选择查询分析,可以看到收集到的ECI弹性容器实例的stdout日志。
    日志分析