开发者
我要评分
获取效率
正确性
完整性
易理解
在线提单
论坛求助

LXD容器配置

注意配置事项

  • 使其他用户有perf采集权限。
    1
    echo "-1">/proc/sys/kernel/perf_event_paranoid
    

    仅运行HPC应用分析任务不需要执行此操作,但是echo后的参数不能为“3”,且需要在宿主机上进行更改。

  • 开启特权容器配置。
    1
    lxc config set template security.privileged=true
    

    宿主机同目录的文件从nobody变为有权限;仅运行HPC应用分析任务不需要执行此操作。

    开启特权容器时,会将所有内核功能赋予容器,容器可执行主机层面的大部分事件,可能会给系统带来安全风险,建议用户针对容器做好安全加固,且使用完容器后恢复配置。

    图1 查看权限
  • 修改容器配置,使“/sys/kernel/debug”下文件有访问权限,并使“/proc/kcore”文件可读。
    1. 修改容器配置。
      1
      lxc config edit template
      
      图2 修改配置
    2. 修改完成后按“ESC”,输入:wq!后,按“Enter”保存并退出。
    3. 查看文件夹下内容。
      1
      ls
      

      返回内容如下:

      1
      console.log forkexec.log forkstart.log lxc.conf lxc.log lxc.log.old
      
    4. 修改配置后,查看“/sys/kernel/debug”下文件的访问权限。
      图3 权限示意
    5. 仅运行HPC应用分析任务不需要执行此操作,需要停止容器后再重新启动容器。

      停止容器。

      lxc stop

      重新启动容器,容器会从上次停止的地方继续运行。

      lxc start
  • 安装libunwind工具。

    由于libunwind是工具安装的必需包,目前CentOS源有问题,可临时通过手动的方式安装,复制libunwind到容器环境中,编译安装即可,此处使用1.5.0版本。

    1
    2
    3
    4
    tar -zxvf libunwind-1.5.0.tar.gz
    cd libunwind-1.5.0/
    ./configure --prefix=/usr/lib64/
    make && make install
    

网络环境配置-路由方式

该方式需宿主机和Agent服务器在同一网段。

  1. 查看地址。
    lxc list

  2. 在需要访问的LXD容器的服务器上执行如下命令,命令中的IP地址请根据实际情况进行替换。
    1
    route add -net 10.*.*.*/24 gw 90.*.*.*
    

  3. 检验连通性。
    ping 10.x.x.x

网络环境配置-桥接方式

以下宿主机为Ubuntu 20.04,LXD容器使用CentOS 8。

  1. 宿主机网络配置。
    1. 修改宿主机网络配置文件。
      1
      vim /etc/netplan/00-installer-config.yaml
      
      图4 修改前
      图5 修改后
    2. 使配置生效。
      1
      sudo netplan apply
      
    3. 查看网络配置。
      ifconfig
      图6 查看网络配置
  2. LXD容器添加网卡。
    1. 绑定网卡
      1
      sudo lxc network attach 宿主机网卡名称 容器名称
      
    2. 查看容器网卡
      lxc config show 网卡名称
      图7 查看容器网卡
    3. 重启容器。
      1
      lxc restart 容器名
      
  3. LXD容器网络配置。
    1. 进入容器。
      1
      lxc exec 容器名 /bin/bash
      
    2. 容器中修改对应网卡配置。
      1
      vi /etc/sysconfig/network-scripts/ifcfg-eth1
      

      注意该地址为宿主机局域网上一个未使用的地址,且容器掩码和宿主机掩码需保持一致。

      图8 修改后文件
    3. 容器内重启网络。
      1
      systemctl restart network.service
      
    4. 在宿主机查看地址。
      1
      lxc list
      
      图9 查看网络地址