长期支持版本

    社区创新版本

      namespace化内核参数可写

      功能描述

      对于运行在容器内的业务,如数据库,大数据,包括普通应用,有对部分内核参数进行设置和调整的需求,以满足最佳的业务运行性能和可靠性。内核参数要么不允许修改,要么全部允许修改(特权容器):

      在不允许用户在容器内修改时,只提供了--sysctl外部接口,而且容器内不能灵活修改参数值。

      在允许用户在容器内修改时,部分内核参数是全局有效的,某个容器修改后,会影响主机上所有的程序,安全性降低。

        

      系统容器提供--ns-change-opt参数,可以指定namespace化的内核参数在容器内动态设置,当前仅支持net、ipc。

      参数说明

      命令

      参数

      参数指定值说明

      isula create/run

      --ns-change-opt

      • 字符串变量。
      • 仅支持配置net、ipc:

        net:支持/proc/sys/net目录下所有namespace化参数。

        ipc:支持的namespace化参数列表如下:

        /proc/sys/kernel/msgmax

        /proc/sys/kernel/msgmnb

        /proc/sys/kernel/msgmni

        /proc/sys/kernel/sem

        /proc/sys/kernel/shmall

        /proc/sys/kernel/shmmax

        /proc/sys/kernel/shmmni

        /proc/sys/kernel/shm_rmid_forced

        /proc/sys/fs/mqueue/msg_default

        /proc/sys/fs/mqueue/msg_max

        /proc/sys/fs/mqueue/msgsize_default

        /proc/sys/fs/mqueue/msgsize_max

        /proc/sys/fs/mqueue/queues_max

      • 支持通知指定多个namespace配置,多个配置间通过逗号隔开,例如:--ns-change-opt=net,ipc。

      约束限制

      • 如果容器启动同时指定了--privileged(特权容器)和--ns-change-opt,则--ns-change-opt不生效。

      使用示例

      启动容器, 指定--ns-change-opt=net:

      [root@localhost ~]# isula run -tid --ns-change-opt net --system-container --external-rootfs /root/myrootfs none init
      4bf44a42b4a14fdaf127616c90defa64b4b532b18efd15b62a71cbf99ebc12d2
      [root@localhost ~]# isula exec -it 4b mount | grep /proc/sys
      proc on /proc/sys type proc (ro,nosuid,nodev,noexec,relatime)
      proc on /proc/sysrq-trigger type proc (ro,nosuid,nodev,noexec,relatime)
      proc on /proc/sys/net type proc (rw,nosuid,nodev,noexec,relatime)
      

      可以看到容器内/proc/sys/net挂载点为rw,说明net相关的namespace化的内核参数具有读写权限。

      再启动一个容器,指定--ns-change-opt=ipc:

      [root@localhost ~]# isula run -tid --ns-change-opt ipc --system-container --external-rootfs /root/myrootfs none init
      c62e5e5686d390500dab2fa76b6c44f5f8da383a4cbbeac12cfada1b07d6c47f
      [root@localhost ~]# isula exec -it c6 mount | grep /proc/sys
      proc on /proc/sys type proc (ro,nosuid,nodev,noexec,relatime)
      proc on /proc/sysrq-trigger type proc (ro,nosuid,nodev,noexec,relatime)
      proc on /proc/sys/kernel/shmmax type proc (rw,nosuid,nodev,noexec,relatime)
      proc on /proc/sys/kernel/shmmni type proc (rw,nosuid,nodev,noexec,relatime)
      proc on /proc/sys/kernel/shmall type proc (rw,nosuid,nodev,noexec,relatime)
      proc on /proc/sys/kernel/shm_rmid_forced type proc (rw,nosuid,nodev,noexec,relatime)
      proc on /proc/sys/kernel/msgmax type proc (rw,nosuid,nodev,noexec,relatime)
      proc on /proc/sys/kernel/msgmni type proc (rw,nosuid,nodev,noexec,relatime)
      proc on /proc/sys/kernel/msgmnb type proc (rw,nosuid,nodev,noexec,relatime)
      proc on /proc/sys/kernel/sem type proc (rw,nosuid,nodev,noexec,relatime)
      proc on /proc/sys/fs/mqueue type proc (rw,nosuid,nodev,noexec,relatime)
      

      可以看到容器内ipc相关的内核参数挂载点为rw,说明ipc相关的namespace化的内核参数具有读写权限。

      文档捉虫

      “有虫”文档片段

      问题描述

      提交类型 issue

      有点复杂...

      找人问问吧。

      PR

      小问题,全程线上修改...

      一键搞定!

      问题类型
      规范和低错类

      ● 错别字或拼写错误;标点符号使用错误;

      ● 链接错误、空单元格、格式错误;

      ● 英文中包含中文字符;

      ● 界面和描述不一致,但不影响操作;

      ● 表述不通顺,但不影响理解;

      ● 版本号不匹配:如软件包名称、界面版本号;

      易用性

      ● 关键步骤错误或缺失,无法指导用户完成任务;

      ● 缺少必要的前提条件、注意事项等;

      ● 图形、表格、文字等晦涩难懂;

      ● 逻辑不清晰,该分类、分项、分步骤的没有给出;

      正确性

      ● 技术原理、功能、规格等描述和软件不一致,存在错误;

      ● 原理图、架构图等存在错误;

      ● 命令、命令参数等错误;

      ● 代码片段错误;

      ● 命令无法完成对应功能;

      ● 界面错误,无法指导操作;

      风险提示

      ● 对重要数据或系统存在风险的操作,缺少安全提示;

      内容合规

      ● 违反法律法规,涉及政治、领土主权等敏感词;

      ● 内容侵权;

      您对文档的总体满意度

      非常不满意
      非常满意
      提交
      根据您的反馈,会自动生成issue模板。您只需点击按钮,创建issue即可。
      文档捉虫
      编组 3备份