MicRun 配置参考手册

概述

MicRun 当前的运行时配置解析分成两步:

  1. 先决定读取哪份运行时配置

  2. 再把 annotations 作为最终 overlay 叠加到解析结果上

internal/adapters/config/runtimeconfig/resolver.go 为准,当前实际顺序如下:

  1. 调用方已传入 current *RuntimeConfig 时,直接复用

  2. 注解里指定的 sandbox config path

  3. CRI runtime options 中的 ConfigPath

  4. 环境变量 MICRUN_CONF_FILE

  5. 自动发现配置文件集合

    • MICRUN_CONF_DIR

    • /etc/mica/micrun/conf.d/*.conf|*.toml

    • /etc/mica/micrun/micrun.conf

  6. 最后统一叠加 annotations

这里要特别注意:环境变量主要用于选择配置文件来源,不是直接承载 workload 参数值。

配置文件

配置文件位置

优先级

配置来源

1

注解指定的 config path

2

CRI runtime options 中的 ConfigPath

3

MICRUN_CONF_FILE 环境变量指定的文件

4

MICRUN_CONF_DIR 环境变量指定的目录(读取所有 .conf/.toml 文件)

5

/etc/mica/micrun/conf.d/*.conf.toml (drop-in 目录)

6

/etc/mica/micrun/micrun.conf (默认配置文件)

补充说明:

  • MICRUN_CONF_FILE 指向的文件解析失败时,当前实现会记录告警并回退默认配置栈。

  • 当注解或 CRI options 指定的配置文件解析失败时,当前创建链路会直接报错返回。

  • 无论配置文件从哪里来,annotations 都会在最后一步覆盖最终值。

配置文件格式

支持两种格式:

格式

扩展名

说明

INI

.ini, .conf

传统 INI 格式

TOML

.toml

TOML 格式

INI 配置示例

[Mica]
# 调试模式
debug = false

# 最大客户端数量
max_client_number = 8

# 默认固件路径
firmware_path = /usr/local/share/mica/firmware.elf

[Resource]
# 容器最大 vCPU 数
max_container_vcpu = 4

# 容器最大内存 (MiB)
container_maxmem = 512

# 容器最小内存 (MiB)
container_minmem = 32

# 静态资源管理
static_resource = false

# 共享 CPU 池(Xen平台)
shared_cpu_pool = false

# HugePage 支持
hugepage_enable = false

[Xen]
# Sandbox 最小 vCPU 数
sandbox_minimum_vcpu = 1

# Dom0 CPU 独占
exclusive_dom0_cpu = false

# Xen 镜像路径
image_path = /usr/local/share/mica/xen-image.bin

# 辅助文件路径
aux_file_path = /usr/local/share/mica/xen-aux.bin

# 启用主机容器
enable_host_container = false

TOML 配置示例

[mica]
debug = false
max_client_number = 8
firmware_path = "/usr/local/share/mica/firmware.elf"

[resource]
max_container_vcpu = 4
container_maxmem = 512
container_minmem = 32
static_resource = false
shared_cpu_pool = false
hugepage_enable = false

[xen]
sandbox_minimum_vcpu = 1
exclusive_dom0_cpu = false
image_path = "/usr/local/share/mica/xen-image.bin"
aux_file_path = "/usr/local/share/mica/xen-aux.bin"

环境变量

环境变量

说明

默认值

MICRUN_CONF_FILE

指定单个运行时配置文件路径

MICRUN_CONF_DIR

指定运行时配置目录路径

MICRUN_LOG_CONFIG

指定日志配置文件路径(覆盖 /etc/mica/micrun/config.json

/etc/mica/micrun/config.json

MICRUN_LOG_FILE

指定日志文件路径(仅 debug 版本)

/var/log/mica/mica-runtime.log

MICRUN_CONTAINERD_LOG_PATH

指定 containerd 日志输出路径(默认 shim 工作目录下 log

./log

CONTAINERD_NAMESPACE

容器命名空间

default

说明:

  • MICRUN_CONF_FILEMICRUN_CONF_DIR 影响的是”加载哪份运行时配置”。

  • workload 级细项(如固件、pedestal、资源限制覆盖)仍以 annotations 和 OCI spec 为主。

配置项详解

Mica 节配置

配置项

类型

默认值

说明

debug

布尔

false

启用调试模式

max_client_number

整数

0 (无限制)

最大客户端数量(0表示无限制)

firmware_path

字符串

默认固件路径

enable_host_container

布尔

false

启用主机容器

Resource 节配置

配置项

类型

默认值

说明

max_container_vcpu

整数

8

容器最大 vCPU 数(配置为0时使用默认值8)

container_maxmem

整数

系统相关

容器最大内存 (MiB),默认使用系统内存高阈值

container_minmem

整数

32

容器最小内存预留 (MiB)

static_resource

布尔

平台相关

静态资源管理(禁止动态更新),Baremetal平台默认为true,其他平台为false

shared_cpu_pool

布尔

false

共享 CPU 池模式(Xen cpupool管理)

hugepage_enable

布尔

false

启用 HugePage 支持(仅 Xen)

Static Resource Management

启用后:

  • UpdateContainer API 将被忽略

  • 资源在容器创建时固定

  • 适用于资源固定的生产环境

Shared CPU Pool

模式

说明

true

所有容器共享 CPU 池,cpuset 合并

false

每个容器使用独立的 cpuset

Xen 节配置

配置项

类型

默认值

说明

sandbox_minimum_vcpu

整数

1

Sandbox 最小 vCPU 数量

exclusive_dom0_cpu

布尔

false

Dom0 CPU 独占

image_path

字符串

Xen 镜像路径

aux_file_path

字符串

Xen 辅助文件路径

配置优先级示例

示例 1:注解覆盖最终配置值

# Pod 注解
metadata:
  annotations:
    org.openeuler.micrun.container.min_memory_mb: "64"  # 覆盖配置文件

优先级:注解最终 overlay > 已解析出的 RuntimeConfig > 默认值

示例 2:环境变量选择配置文件

# 使用自定义配置文件
export MICRUN_CONF_FILE=/etc/mica/micrun/custom.conf

优先级:注解 config path > runtime options ConfigPath > $MICRUN_CONF_FILE > $MICRUN_CONF_DIR > /etc/mica/micrun/conf.d/ > /etc/mica/micrun/micrun.conf

示例 3:当前解析顺序

current RuntimeConfig
  -> annotation config path
  -> CRI options ConfigPath
  -> MICRUN_CONF_FILE
  -> MICRUN_CONF_DIR / conf.d / default file
  -> annotations overlay

Drop-in 目录

Drop-in 目录允许将配置拆分为多个文件:

/etc/mica/micrun/conf.d/
|-- 00-base.conf      # base config
|-- 10-resource.conf  # resource config
`-- 99-local.conf     # local overrides

加载顺序:按文件名字母序加载,后加载的配置覆盖先加载的配置。

配置验证

检查当前配置

# 查看使用的配置文件
journalctl -u containerd | grep "micrun config"

# 查看 shim 进程的环境变量
cat /proc/$(pgrep containerd-shim-mica-v2)/environ | tr '\0' '\n' | grep MICRUN

常见配置错误

错误

原因

解决方案

config file not found

配置文件路径错误

检查 MICRUN_CONF_FILE 环境变量

invalid config format

配置文件格式错误

检查 INI/TOML 语法

value out of range

配置值超出有效范围

检查数值是否合理

生产环境配置示例

高性能配置

[Mica]
debug = false
max_client_number = 16
firmware_path = /usr/local/share/mica/firmware.elf

[Resource]
max_container_vcpu = 8
container_maxmem = 2048
container_minmem = 64
static_resource = true
shared_cpu_pool = false
hugepage_enable = true

[Xen]
sandbox_minimum_vcpu = 2
exclusive_dom0_cpu = true
image_path = /usr/local/share/mica/xen-image.bin

低资源配置

[Mica]
debug = false
max_client_number = 4
firmware_path = /usr/local/share/mica/firmware.elf

[Resource]
max_container_vcpu = 2
container_maxmem = 256
container_minmem = 16
static_resource = false
shared_cpu_pool = true
hugepage_enable = false

[Xen]
sandbox_minimum_vcpu = 1
exclusive_dom0_cpu = false
image_path = /usr/local/share/mica/xen-image.bin

开发调试配置

[Mica]
debug = true
max_client_number = 4
firmware_path = /usr/local/share/mica/firmware.elf

[Resource]
max_container_vcpu = 2
container_maxmem = 256
container_minmem = 16
static_resource = false
shared_cpu_pool = false
hugepage_enable = false

[Xen]
sandbox_minimum_vcpu = 1
exclusive_dom0_cpu = false
image_path = /usr/local/share/mica/xen-image.bin

日志配置

日志配置位于 /etc/mica/micrun/config.json,由 logger 包读取。

配置结构:

{
  "Log": {
    "level": "info",
    "file": "/var/log/mica/mica-runtime.log",
    "color": false,
    "caller": true
  }
}

配置项

类型

默认值

说明

level

字符串

info

日志级别 (debug, info, warn, error)

file

字符串

/var/log/mica/mica-runtime.log

日志文件路径

color

布尔

false

是否启用颜色输出

caller

布尔

true

是否显示调用位置

相关文档