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

- Ubuntu系统推荐直接使用官方镜像部署,无需再手动制作Ceph容器镜像,可跳过手动制作ceph容器镜像章节。
- openEuler系统推荐自制镜像部署,本小节以openEuler系统下使用Podman制作镜像为例进行说明。
- 下载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
- 导入下载的基础镜像。
1
podman load -i openEuler-docker.aarch64.tar.xz
- 根据镜像创建容器,启动前需要重置(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
- 进入容器。
1
podman exec -it openeuler2203sp4_base /bin/bash
- 在容器中配置代理等临时环境变量,不能配置到bashrc中。
1 2 3
export TMOUT=0 export http_proxy=http://xxx// 按需配置 export https_proxy=http://xxx // 按需配置
- 在容器中安装基础软件包。
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
如果遇到证书异常错误无法安装基础软件包时,可尝试调整yum配置文件“/etc/yum.conf”,在文件末尾添加如下配置。sslverify=false deltarpm=0
- 退出容器,在物理机上制作镜像。
1 2
exit podman commit openeuler2203sp4_base openeuler2203sp4_base:v2203sp4
- 在物理机上制作编译容器。
1
podman run --name openeuler2203sp4_build --hostname openeuler2203sp4_base -p 10001:22 --privileged --ipc=host -dti localhost/openeuler2203sp4_base:v2203sp4 /usr/sbin/init
- 在物理机上制作部署容器。
1
podman run --name openeuler2203sp4_release --hostname openeuler2203sp4_base -p 10003:22 --privileged --ipc=host -dti localhost/openeuler2203sp4_base:v2203sp4 /usr/sbin/init
- 检查容器环境变量,确保环境变量中不能有代理配置,如果有,可以重置物理机上的代理环境变量,然后从3开始重新执行。
1
podman inspect openeuler2203sp4_release | grep Env -A 10
父主题: 手动制作ceph容器镜像