鲲鹏社区首页
中文
注册
开发者
我要评分
文档获取效率
文档正确性
内容完整性
文档易理解
在线提单
论坛求助

TEE cgroup支持

机密容器cgroup配置支持

为了更好地对TEE侧的资源就行管理和管理,TEE支持通过cgroup配置机密容器在TEE侧的内存和cpu等资源。

  1. itrustee_sdk下载REE侧docker hook工具包,用以在容器启动时,通过hook配置容器在TEE侧的资源。
    1
    2
    git clone https://gitee.com/openeuler/itrustee_sdk.git
    cd itrustee_sdk/build/tools/docker_config_tools 
    
  2. 将hook脚本拷贝到“/var/lib/docker/hooks”目录下,这些脚本分别用于容器在启动和销毁时,自动完成TEE侧资源的配置和释放。
    1
    cp start.sh stop.sh prestart_container.sh poststop_container.sh /var/lib/docker/hooks
    
  3. 使用脚本生成容器TEE侧cgroup资源配置文件,
    1
    python3 gen_config.py <config_dir> --memory=200M --cpus=10000 --cpuset-cpus="0,1" --disk-size=300M
    

    config_dir需为绝对路径,将在config_dir目录下生成符合hook机制的config.json文件,用于指定REE容器生成和销毁时执行的额外操作,

    TEE侧支持的cgroup配置项如下。

    • --memory:TEE侧对应的group中所有TA可以使用的内存上限。
    • --cpus:TEE侧对应group中所有TA可以使用的CPU使用率上限,
    • --cpuset-cpus:TEE侧对应group中所有TA可以使用的CPU编号。

      可通过如下方法查询TEE侧在线的CPU编号:

      1
      tee_teleport --config-resource --nsid=$(lsns -t pid  | grep systemd | awk '{print $1}')
      
    • --disk-size:TEE侧对应group中,所有TA可以使用的文件系统大小上限,因为TEE里的文件系统使用的是tmpfs,往TEE部署和产生的文件会被统计到内存和文件系统配额中。
  4. 启动容器。此时启动的容器在TEE侧就自动完成了cgroup资源的配置。
    1
    docker run --hook-spec=<config_dir>/config.json -it --mount type=bind,source=/var/itrustee/teecd,target=/var/itrustee/teecd,readonly --device /dev/teelog:/dev/teelog:wr --device /dev/tc_ns_cvm:/dev/tc_ns_cvm:wr -d <docker_image>
    
  5. 容器销毁,docker rmstop时可自动完成TEE侧对应资源的释放。

    cgroup特性默认会在CCOS升级成功后自动使能。如果用户不配置机密容器在TEE侧的内存和CPU等资源,则意味着对相应group在TEE侧使用的资源不做限制。资源配置的参数都是可选的。