安装Podman

如果集群中节点的OS使用openEuler系统,为确保应用程序的统一管理和部署,提高部署的一致性和可靠性,需要在ceph1~ceph3和client1节点上安装Podman。推荐在openEuler系统下安装Podman服务,本小节以在openEuler上安装高版本Podman为例进行说明。

  • Podman为Ceph容器化部署依赖工具,不同Podman版本与Ceph版本之间存在兼容问题。
  • Ceph 17.2.x需要使用Podman 2.0及以上版本,openEuler-22.03-LTS-SP4社区源里Podman版本为3.4.+,本文以Podman 3.4.4为例进行说明。
  • 安装过程需要联网,检查服务器联网情况。如需使用代理,推荐使用临时环境变量HTTP_PROXY和HTTPS_PROXY配置代理。
    1
    2
    export HTTP_PROXY=http://USERNAME:PASSWORD@192.168.0.1:3128 
    export HTTPS_PROXY=http://USERNAME:PASSWORD@192.168.0.1:3128
    
  • 局域网组网时,Podman拉取镜像时需要配置信任镜像仓库。详见配置Podman信任镜像仓库

方式一:yum源直接安装

  1. 直接通过yum源安装。

    1
    yum install podman
    

  2. 安装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
    

  3. 检查Podman安装情况。

    1
    podman -v
    

方式二:手动编译Podman

本小节以Podman 3.4.4版本为例进行说明如何手动编译Podman。

  1. 下载依赖工具。

    1
    yum install rpmdevtools python3-pyyaml -y
    

  2. 构建Podman 3.4.4的RPM包。

    1
    2
    3
    4
    5
    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
    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
    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
    

    Active为active(running)则表示成功启动Podman服务。

配置Podman信任镜像仓库

局域网组网时,Podman从本地网络其他机器的镜像仓库上拉取镜像时,需要信任镜像仓库,避免https的安全校验造成程序异常。

需要调整配置如下,推荐只搭建一个镜像仓库,搭建步骤详见物理机中本地仓库搭建和镜像配置

  1. 打开/etc/containers/registries.conf文件。

    1
    vi /etc/containers/registries.conf
    

  2. “i”进入编辑模式,按照如下内容调整配置。

    1
    2
    3
    4
    5
    6
    7
    8
    unqualified-search-registries = ["[IP1]:5000", "[IP2]:5000", "quay.io"]
    short-name-mode="enforcing"
    [[registry]]
    location = "[IP1]:5000"
    insecure = true
    [[registry]]
    location = "[IP2]:5000"
    insecure = true
    

    其中[IP1]、[IP2] 分别为局域网内镜像仓库IP地址,根据实际情况设置信任多个仓库或只信任1个。

  3. “Esc”键退出编辑模式,输入:wq!,按“Enter”键保存退出文件。

配置安全证书(可选)

  • 若下载Podman镜像时没有出现安全证书的问题,则无需配置,可跳过此步骤。安全证书异常时,会有类似如下报错:
    1
    /usr/bin/podman: stderr Error: parsing image configuration: Get "https://xxxxx.xxx": x509: certificate signed by unknown authority
    
  • 如果出现安全证书问题,请联系当前IT网格管理部获取正确的安全证书,以便正常访问网络。
  1. 获取安全证书放到“root”目录下。

  2. 拷贝证书到“/usr/local/share/ca-certificates/”目录下。

    1
    2
    mkdir -p /usr/local/share/ca-certificates/
    cp HuaweiWebSecureInternetGatewayCA.crt /usr/local/share/ca-certificates/
    

    “HuaweiWebSecureInternetGatewayCA.crt”需要替换为网络管理员提供的正确的安全证书。

  3. 更新系统证书信息。

    1
    update-ca-certificates
    

  4. 重启Podman服务。

    1
    2
    systemctl daemon-reload
    systemctl restart podman