- 文档首页
容器服务
弹性容器实例 VCI
用户指南
容器配置
设置容器启动和退出顺序
设置容器启动和退出顺序
弹性容器实例(VCI)支持设置同一个 Pod 内多个容器的启动和退出顺序。
背景信息
默认情况下,VCI 实例内的各个容器是并发启动和退出的,没有固定的先后顺序。在某些场景下,一个实例内的多个容器之间可能存在依赖关系,某一容器需要在另一容器启动后再启动,或者某一容器需要在另一容器退出后再退出。比如在采集容器日志时,需要保证在业务容器产生日志前,日志容器已经启动完成,处于 Ready 状态;在业务容器退出后,日志容器才退出。针对此类场景,需要实现 Pod 内各个容器按照指定优先级启动和退出的功能。
本特性针对的是同一个 Pod 内的应用容器(App Container),不包括 Init 容器和临时容器,下文中无特殊说明时,容器均指应用容器。
前提条件
- 通过 kubectl 连接 VCI 业务集群。详细操作,请参见 连接集群。
配置容器启动顺序
当需要同一个实例内各个容器按顺序启动时,设置 Pod 内容器启动优先级,其中优先级高的容器会在优先级低的容器启动之前启动,相同优先级的容器不保证其启动先后顺序(并发启动)。
参数说明
VCI 支持通过环境变量配置容器启动顺序,环境变量说明,如下表所示。
示例
下文以创建一个 VCI Deployment,且 Deployment 下的 Pod 中包含 2 个应用容器为例,分别设置各个容器的启动优先级,查看各个容器的启动(started)时间,预期优先级高的容器最先被 started。创建 VCI 实例相关说明,请参见 创建实例。 - 通过 kubectl 创建 VCI Deployment 的 YAML 文件。示例 YAML 文件vci-nginx-deployment.yaml代码如下:
- 完成 Deployment 的创建后,验证容器启动顺序。
- 执行以下命令获取 VCI Deployment 下 Pod 的名称。
- 从返回信息的NAME字段下获取 Pod 的名称。
- 执行以下命令,获取 Pod 详细信息,观察 Pod 的Events字段中各个容器的启动时间。
配置容器退出顺序
当需要同一个实例内各个容器按顺序退出时,设置 Pod 内容器退出优先级,其中优先级高的容器会在优先级低的容器退出之前退出,相同优先级的容器不保证其退出先后顺序(并发退出)。
说明
若设置了容器退出顺序,在删除 Pod 时可能会导致整个 Pod 的删除时间大于设定的优雅删除时间。
参数说明
VCI 支持通过环境变量配置容器退出顺序,环境变量说明,如下表所示。
示例
下文以创建一个 VCI Deployment,且 Deployment 下的 Pod 中包含 2 个应用容器为例,分别设置各个容器的退出优先级,同时设置 Pod 优雅删除时间为 90 秒, 查看各个容器的退出(killed)时间,预期优先级高的 容器最先被 killed。创建 VCI 实例相关说明,请参见 创建实例。 - 通过 kubectl 创建 VCI Deployment 的 YAML 文件。示例 YAML 文件vci-nginx-deployment.yaml代码如下:
- 完成 Deployment 的创建后,验证容器退出顺序。
- 执行以下命令获取 VCI Deployment 下 Pod 的名称。
- 从返回信息的NAME字段下获取 Pod 的名称。
- 执行以下命令,删除 Pod,然后快速获取 Pod 详细信息,观察 Pod 的Events字段中各个容器 Killing 事件的顺序。
最近更新时间:2026.08.19 11:25:08