为了避免在真实集群中安装额外的软件,建议使用一台全新的集群外服务器进行制作容器镜像动作,该服务器应使用与集群同样的硬件配置和操作系统,本章节中称该服务器为编译节点。为更高效地管理与执行软件的部署构建流程,需要在编译节点构建制作编译容器和部署容器。
- Ubuntu系统推荐直接使用官方镜像部署,无需再手动制作Ceph容器镜像,可跳过手动制作ceph容器镜像章节。
- openEuler系统推荐自制镜像部署,本小节以openEuler系统下使用Podman制作镜像为例进行说明。
- 下载openEuler-22.03-LTS-SP4基础镜像。
| wget http://repo.huaweicloud.com/openeuler/openEuler-22.03-LTS-SP4/docker_img/aarch64/openEuler-docker.aarch64.tar.xz
|
- 导入下载的基础镜像。
| podman load -i openEuler-docker.aarch64.tar.xz
|
- 根据镜像创建容器,启动前需要重置(unset命令)物理机上的代理环境变量。
| 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
|
- 进入容器。
| podman exec -it openeuler2203sp4_base /bin/bash
|
- 在容器中配置代理等临时环境变量,不能配置到bashrc中。
| export TMOUT=0
export http_proxy=http://xxx// 按需配置
export https_proxy=http://xxx // 按需配置
|
- 在容器中安装基础软件包。
| 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
|
- 退出容器,在物理机上制作镜像。
| exit
podman commit openeuler2203sp4_base openeuler2203sp4_base:v2203sp4
|
- 在物理机上制作编译容器。
| podman run --name openeuler2203sp4_build --hostname openeuler2203sp4_base -p 10001:22 --privileged --ipc=host -dti localhost/openeuler2203sp4_base:v2203sp4 /usr/sbin/init
|
- 在物理机上制作部署容器。
| podman run --name openeuler2203sp4_release --hostname openeuler2203sp4_base -p 10003:22 --privileged --ipc=host -dti localhost/openeuler2203sp4_base:v2203sp4 /usr/sbin/init
|
- 检查容器环境变量,确保环境变量中不能有代理配置,如果有,可以重置物理机上的代理环境变量,然后从3开始重新执行。
| podman inspect openeuler2203sp4_release | grep Env -A 10
|
