制作编译容器和部署容器

为了避免在真实集群中安装额外的软件,建议使用一台全新的集群外服务器进行制作容器镜像动作,该服务器应使用与集群同样的硬件配置和操作系统,本章节中称该服务器为编译节点。为更高效地管理与执行软件的部署构建流程,需要在编译节点构建制作编译容器和部署容器。

  • Ubuntu系统推荐直接使用官方镜像部署,无需再手动制作Ceph容器镜像,可跳过手动制作ceph容器镜像章节。
  • openEuler系统推荐自制镜像部署,本小节以openEuler系统下使用Podman制作镜像为例进行说明。
  1. 下载openEuler-22.03-LTS-SP4基础镜像。

    1
    wget http://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP4/docker_img/aarch64/openEuler-docker.aarch64.tar.xz
    

  2. 导入下载的基础镜像。

    1
    podman load -i openEuler-docker.aarch64.tar.xz
    

  3. 根据镜像创建容器,启动前需要重置(unset命令)物理机上的代理环境变量。

    1
    2
    3
    unset http_proxy
    unset https_proxy
    podman run -dit --name openeuler2203sp4_base --hostname openeuler2203sp4_base -p 10000:22 --privileged --ipc=host docker.io/library/openeuler-22.03-lts-sp4:latest
    

  4. 进入容器。

    1
    podman exec -it openeuler2203sp4_base /bin/bash
    

  5. 在容器中配置代理等临时环境变量,不能配置到bashrc中。

    1
    2
    3
    export TMOUT=0
    export http_proxy=http://xxx// 按需配置
    export https_proxy=http://xxx // 按需配置
    

  6. 在容器中安装基础软件包。

    1
    yum install openssh-server openssh-clients passwd vim perf sysstat dos2unix htop sshpass jq numactl hostname python3 python3-devel python3-pip tar createrepo ipmitool iproute git systemd psmisc udev wget rpmdevtools gtk-doc pam-devel xmlsec1-devel libtool libtool-ltdl-devel cmake gcc-c++ libstdc++-static java-1.8.0-openjdk java-1.8.0-openjdk-devel fio iputils make -y
    

  7. 退出容器,在物理机上制作镜像。

    1
    2
    exit
    podman commit openeuler2203sp4_base openeuler2203sp4_base:v2203sp4
    

  8. 在物理机上制作编译容器。

    1
    podman run --name openeuler2203sp4_build --hostname openeuler2203sp4_base -p 10001:22 --privileged --ipc=host -dti localhost/openeuler2203sp4_base:v2203sp4 /usr/sbin/init
    

  9. 在物理机上制作部署容器。

    1
    podman run --name openeuler2203sp4_release --hostname openeuler2203sp4_base -p 10003:22 --privileged --ipc=host -dti localhost/openeuler2203sp4_base:v2203sp4 /usr/sbin/init
    

  10. 检查容器环境变量,确保环境变量中不能有代理配置,如果有,可以重置物理机上的代理环境变量,然后从3开始重新执行。

    1
    podman inspect openeuler2203sp4_release | grep Env -A 10