弹性容器实例(VCI)支持在创建实例时,忽略特定容器(Container)的资源需求。满足某些特定场景下,用户希望部分不影响业务的容器无需分配独占资源的需求。
通过为 VCI Pod 内的容器设置如下环境变量,实现 VCI 资源规整是忽略该容器的资源请求:
env: - name: "__VCI_RESOURCE_IGNORE__" # 自动匹配规格时,忽略该容器的resources value: "TRUE"
假设一个 VCI Pod 有 n 个容器,VCI 在匹配实例(Pod)规格时,按如下优先级顺序遍历 n 个容器,并仅匹配其中一种情况:
"__VCI_RESOURCE_IGNORE__"="TRUE"
,则跳过该容器资源需求。limit
,则该资源需求累加该容器的limit
值。request
,则该资源需求累加该容器的request
值。说明
VCI 基于 CPU、Memory、GPU 的累加值进行实例规格匹配。更多规格计算匹配说明,请参见 Pod 规格计算方式、创建 GPU 型实例注意事项。
limit
,防止没有配置limit
的容器无限制抢占其他容器资源,提高 Pod 内的资源利用率。已创建 VCI 业务相关的集群。详细操作,请参见 创建集群、创建无 ECS 节点集群。
以创建无状态负载(Deployment)为例,完整的示例代码如下所示:
apiVersion: apps/v1 kind: Deployment metadata: name: nginx-deployment labels: app: nginx spec: replicas: 2 selector: matchLabels: app: nginx template: metadata: annotations: vke.volcengine.com/burst-to-vci: enforce # 强制使用 VCI。 labels: app: nginx spec: containers: - name: nginx1 image: cr-cn-beijing.volces.com/tw/nginx:1.0 # 容器镜像的地址和版本,请配置为您自己的镜像地址。 resources: limits: cpu: "2000m" memory: "4096Mi" - name: nginx2 image: cr-cn-beijing.volces.com/tw/nginx:1.0 # 容器镜像的地址和版本,请配置为您自己的镜像地址。 resources: limits: cpu: "1000m" memory: "2048Mi" env: - name: "__VCI_RESOURCE_IGNORE__" # 自动匹配规格时,忽略该容器的 resources。 value: "TRUE" restartPolicy: Always
在 VCI 业务集群中 创建工作负载 时,配置以下参数: