配置Kubernetes原生Sidecar(原生定义)
应用场景
在CCE突发弹性引擎(对接 CCI)场景下,支持使用Kubernetes的原生SidecarContainers特性。与通过插件动态注入的方式不同,本章节介绍如何在创建工作负载的YAML中直接定义原生Sidecar。通过在Pod的initContainers中将容器的 restartPolicy设置为Always,该容器将作为Sidecar容器启动。这类容器在主业务容器启动前就绪,并会在Pod的整个生命周期内一直运行,不会阻塞主业务容器的启动。
约束与限制
- 需确保调度到CCI 2.0Pod配置了对应的标签(如 bursting.cci.io/burst-to-cci: enforce)。
- 该功能依赖CCE突发弹性引擎(对接 CCI)插件1.5.80及以上版本。
操作步骤
在创建Pod的YAML文件中,直接在spec.template.spec.initContainers字段下添加容器配置,并指定restartPolicy: Always,即可启用原生Sidecar功能。
apiVersion: apps/v1
kind: Deployment
metadata:
name: test-1
namespace: test
labels:
bursting.cci.io/burst-to-cci: enforce # 将pod强制调度到 CCI 2.0
spec:
replicas: 1
selector:
matchLabels:
appName: test-1
template:
metadata:
labels:
appName: test-1
spec:
# 配置Sidecar容器
initContainers:
- name: container2
image: nginx:latest # 请替换为您实际的镜像地址
restartPolicy: Always # 在initContainers中配置restartPolicy为Always则表示开启initSidecarContainer
# 配置主业务容器
containers:
- image: nginx:latest
name: container-1
command:
- /bin/sh
- '-c'
- while true ;do echo hello ;sleep 3; done
resources:
requests:
cpu: 10m
memory: 200Mi
imagePullSecrets:
- name: default-secret
strategy:
type: RollingUpdate
rollingUpdate:
maxUnavailable: 35%
maxSurge: 35%