配置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列表。 |