配置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
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
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
   参数说明
| 
         参数  | 
       
         参数说明  | 
      
|---|---|
| 
         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列表。  |