更新时间:2025-08-12 GMT+08:00

挂载容器标准输出日志

本节介绍如何将容器标准输出日志挂载到容器中,以支持从容器内部获取当前Pod各容器的标准输出日志。

约束与限制

“volume.cci.io/mount-stdlog-containers”和“volume.cci.io/mount-stdlog-containers-path”不支持同时配置。

通过YAML创建

已创建工作负载为例,配置示例如下,其中关键配置通过红色字体标出:

kind: Deployment
apiVersion: cci/v2
metadata:
  name: deploy-example
  namespace: namespace-example
spec:
  replicas: 1
  selector:
    matchLabels:
      app: deploy-example
  template:
    metadata:
      labels:
        app: deploy-example
      annotations:
        volume.cci.io/mount-stdlog-containers: sidecar  #指定需要挂载容器标准输出日志的容器名
    spec:
      containers:
        - name: nginx
          image: nginx:latest
          resources:
            limits:
              cpu: '1'
              memory: 2Gi
            requests:
              cpu: '1'
              memory: 2Gi
        - name: sidecar
          image: sidecar:latest
          resources:
            limits:
              cpu: '0'
              memory: '0'
            requests:
              cpu: '0'
              memory: '0'
      dnsPolicy: Default
      imagePullSecrets:
        - name: imagepull-secret
  strategy:
    type: RollingUpdate
    rollingUpdate:
      maxUnavailable: 0
      maxSurge: 100%
表1 关键参数Pod的注解说明

Pod的注解

参数类型

描述

示例值

volume.cci.io/mount-stdlog-containers

String

  1. 指定需要挂载容器标准输出日志的容器名,若有多个容器需要挂载则以逗号分隔。也可以配置"*"表示所有容器都进行挂载。如果配置了"*"则不可再配置其它容器名。
  2. 匹配了该注解的容器,在启动后会将包含该Pod所有容器标准输出日志的目录挂载到容器内的/var/log/pods路径。

示例一:

"container-0,container-1"

示例二:

"*"

volume.cci.io/mount-stdlog-containers-path

String

  1. 以json格式指定需要挂载容器标准输出日志的容器名和容器内挂载路径。容器名配置"*"表示所有容器都进行挂载。如果配置了"*"则不可再配置其它容器名。
  2. 匹配了该注解的容器,在启动后会将包含该Pod所有容器标准输出日志的目录挂载到配置指定的路径。

示例一:

"{\"container-0\":\"/var/log/pods\",\"container-1\":\"/tmp/log/pods\"}"

示例二:

"{\"*\":\"/tmp/log/pods\"}"