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