所有节点上安装Podman

为确保应用程序的统一管理和部署,提高部署的一致性和可靠性,需要在所有ceph1~ceph3和client1~client3节点上安装Podman。

  • Podman为Ceph容器化部署依赖工具,不同Podman版本与Ceph版本之间存在兼容问题。具体配套关系参见表1 Ceph版本与Podman版本对应表
  • Ceph 17.2.7需要使用Podman 2.0及以上版本,openEuler-20.03-LTS-SP4社区源里Podman版本为0.10.1,需要手动更新Podman为高版本,本文以Podman 3.4.4为例进行说明。
  • 手动打造最小依赖的容器镜像时,需要额外的编译节点,该节点也需要安装Podman。
表1 Ceph版本与Podman版本对应表

Ceph

Podman

1.9

2.0

2.1

2.2

3.0

>3.0

<= 15.2.5

True

False

False

False

False

False

>= 15.2.6

True

True

True

False

False

False

>= 16.2.1

False

True

True

False

True

True

>= 17.2.0

False

True

True

False

True

True

注:True代表兼容,False代表不兼容。

  1. 下载依赖工具。

    1
    yum install rpmdevtools python3-pyyaml git
    

  2. 构建Podman 3.4.4的RPM包。

    1
    2
    3
    4
    5
    6
    cd /home
    wget https://repo.openeuler.org/openEuler-22.03-LTS-SP2/source/Packages/podman-3.4.4-1.oe2203sp2.src.rpm --no-check-certificate
    rpmdev-setuptree
    rpm -ivUh podman-3.4.4-1.oe2203sp2.src.rpm
    yum-builddep -y /root/rpmbuild/SPECS/podman.spec
    rpmbuild -bb /root/rpmbuild/SPECS/podman.spec
    

  3. 构建crun 1.4.5的RPM包。

    1
    2
    3
    4
    5
    cd /home
    wget https://repo.openeuler.org/openEuler-22.03-LTS-SP2/source/Packages/crun-1.4.5-1.oe2203sp2.src.rpm --no-check-certificate
    rpm -ivUh crun-1.4.5-1.oe2203sp2.src.rpm
    yum-builddep -y /root/rpmbuild/SPECS/crun.spec
    rpmbuild -bb /root/rpmbuild/SPECS/crun.spec
    

  4. 构建conmon 2.1.0的RPM包。

    1
    2
    3
    4
    5
    cd /home
    wget https://repo.openeuler.org/openEuler-22.03-LTS-SP2/source/Packages/conmon-2.1.0-1.oe2203sp2.src.rpm --no-check-certificate
    rpm -ivUh conmon-2.1.0-1.oe2203sp2.src.rpm
    yum-builddep -y /root/rpmbuild/SPECS/conmon.spec 
    rpmbuild -bb /root/rpmbuild/SPECS/conmon.spec
    

  5. 安装所有的RPM包。

    1
    2
    cd /root/
    yum install -y rpmbuild/RPMS/noarch/podman-docker-3.4.4-1.noarch.rpm rpmbuild/RPMS/aarch64/podman-remote-3.4.4-1.aarch64.rpm rpmbuild/RPMS/aarch64/podman-3.4.4-1.aarch64.rpm rpmbuild/RPMS/aarch64/crun-help-1.4.5-1.aarch64.rpm rpmbuild/RPMS/aarch64/crun-1.4.5-1.aarch64.rpm rpmbuild/RPMS/aarch64/conmon-2.1.0-1.aarch64.rpm rpmbuild/RPMS/aarch64/podman-help-3.4.4-1.aarch64.rpm rpmbuild/RPMS/aarch64/podman-gvproxy-3.4.4-1.aarch64.rpm rpmbuild/RPMS/aarch64/podman-plugins-3.4.4-1.aarch64.rpm
    

  6. 安装catatonit。

    1
    2
    3
    4
    5
    6
    7
    git clone https://github.com/openSUSE/catatonit.git
    cd catatonit
    ./autogen.sh
    ./configure
    make
    make install
    cp catatonit /usr/libexec/podman/catatonit
    

  7. 启动Podman。

    1
    2
    3
    4
    systemctl daemon-reload
    systemctl enable podman
    systemctl start podman
    systemctl status podman