
# 配置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%
```
