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

配置Sidecar工具容器

应用场景

使用CCE突发弹性引擎(对接CCI)插件弹性到CCI 2.0支持在Pod中自动注入客户的Sidecar工具容器的能力。

示例:如果客户需要使用CCE突发弹性引擎(对接CCI)插件弹性到CCI 2.0时将采集的日志上报至客户的日志中心,可以设置自动注入客户的日志采集工具容器策略。

您可参考以下几种方式配置Sidecar工具容器:

前提条件

如果ClusterExtensionProfile或ExtensionProfile方式配置Sidecar工具容器,您需要先配置ClusterExtensionProfile或ExtensionProfile,操作步骤请参考配置ClusterExtensionProfile或ExtensionProfile

约束与限制

  • 支持注入多个InitContainer、Container,注入的Container不能与原有Pod中其他Container重名。
  • 支持注入多个Volume,Volume仅能配置CCI支持的类型,注入的Volume不能与原有pod.spec.volumes中的重名。
  • 通过ClusterExtensionProfile或者ExtensionProfile方式配置时:
    • 不支持同时在actions.podSidecars和actions.annotations配置键名为bursting.cci.io/pod-sidecars的注解。
    • profile匹配到的Pod,若已存在键为bursting.cci.io/pod-sidecars的注解,则根据profile的policy决定覆盖或忽略。

方式一 通过注解配置Sidecar

通过在Pod.Annotations中加入注解可以使弹至CCI的Pods添加Sidecar Container。

bursting.cci.io/pod-sidecars: '{
"containers":[{"name":"container-sidecar1","image":"busybox:latest","command":["sh","-c","sleep 3600"],"position":"head"}],
"initContainers":[{"command":["sh","-c","sleep 10"],"image":"busybox:latest","name":"initbusybox","position":"tail","resources":{},"volumeMounts":[{"mountPath":"/tmp/auth","name":"mysecret"}]}],
"volumes":[{"name":"mysecret","secret":{"secretName":"testsecret"}}]}'

方式二 通过ClusterExtensionProfile配置Sidecar

ClusterExtensionProfile的YAML模板如下:
apiVersion: bursting.cci.io/v1
kind: ClusterExtensionProfile
metadata:  
  name: podsidecar-cluster-profile
spec:  
  actions:    
    podSidecars:
      initContainers:
      - command:
        - sh
        - -c
        - sleep 10
        image: busybox:latest
        name: initbusybox
        position: tail
        resources: {}
        volumeMounts:
        - mountPath: /tmp/auth
          name: mysecret
      volumes:
      - name: mysecret
        secret:
          secretName: testsecret
  namespaceLabels:    
    matchLabels:      
        key: value

方式三 通过ExtensionProfile配置Sidecar

ExtensionProfile的YAML模板如下:
apiVersion: bursting.cci.io/v1
kind: ExtensionProfile
metadata:  
  name: podsidecar-profile
  namespace: default
spec:  
  actions:    
    podSidecars:
      containers:
      - command:
        - sh
        - -c
        - sleep 3600
        image: busybox:latest
        name: busybox
        volumeMounts:
        - mountPath: /tmp/auth
          name: mysecret
      volumes:
      - name: mysecret
        secret:
          secretName: testsecret
  objectLabels:
    matchLabels:
      key1: value1

参数说明

表1 关键参数说明

参数

参数说明

InitContainers

注入到CCI侧pod.spec.initContainers的initContainer列表。InitContainer对象的结构与Pod中initContainer的结构类似,不支持配置restartPolicy,并增加了position、envFromContainer、volumeMountFromContainer参数,详情请参见表2

Containers

注入到CCI侧pod.spec.containers的Container列表。详情请参见表2

Volumes

注入到CCI侧pod.spec.volumes的volume列表。

表2 Container参数描述

参数

是否必选

参数类型

描述

position

String

可通过为container配置position字段指定注入位置,配置为head注入在头部,配置为tail注入在尾部,默认注入在尾部,相同position的container注入的先后顺序与actions.podSidecars配置的顺序一致。