限制文件描述符资源

为了避免在容器中打开大量9p共享目录中的文件导致主机上文件描述符资源耗尽,使得安全容器无法正常提供服务,安全容器支持自定义配置安全容器qemu进程最多可以打开的文件描述符数量限制。

安全容器通过复用docker run命令中的—files-limit选项来设置安全容器qemu进程最多可以打开文件描述符,该参数仅可配置在pause容器上,使用方法如下所示:

  1. docker run -tid --runtime kata-runtime --network none --annotation io.kubernetes.docker.type=podsandbox --files-limit <max-open-files> <pause-image> bash

限制文件描述符资源 - 图1 说明:

  • 如果—files-limit选项的取值小于安全容器默认设置的最小值1024且不为0时,安全容器qemu进程最多可以打开的文件描述符数量会被设置为最小值1024。
  • 如果—files-limit选项的取值为0时,安全容器qemu进程最多可以打开的文件描述符数量为系统可以打开文件描述符的最大值/proc/sys/fs/file-max除以400后得到的默认值。
  • 如果启动安全容器时没有显示指定—files-limit可以打开的文件描述符的上限,安全容器qemu进程可以打开的文件描述符数量的上限和系统默认值保持一致。