第 2 章 为 OpenShift Container Platform 安装设置环境


2.1. 在 IBM Cloud (R) Bare Metal (Classic)基础架构上准备 provisioner 节点

执行以下步骤准备 provisioner 节点。

流程

  1. 通过 ssh 登录到 provisioner 节点。
  2. 创建非 root 用户(kni)并为该用户提供 sudo 权限:

    # useradd kni
    # passwd kni
    # echo "kni ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/kni
    # chmod 0440 /etc/sudoers.d/kni
  3. 为新用户创建 ssh 密钥:

    # su - kni -c "ssh-keygen -f /home/kni/.ssh/id_rsa -N ''"
  4. 以新用户身份登录到 provisioner 节点:

    # su - kni
  5. 使用 Red Hat Subscription Manager 注册 provisioner 节点:

    $ sudo subscription-manager register --username=<user> --password=<pass> --auto-attach
    $ sudo subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms \
                                      --enable=rhel-8-for-x86_64-baseos-rpms
    注意

    有关 Red Hat Subscription Manager 的更多信息,请参阅使用命令行工具注册 RHEL 系统

  6. 安装以下软件包:

    $ sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitool
  7. 修改用户,将 libvirt 组添加到新创建的用户:

    $ sudo usermod --append --groups libvirt kni
  8. 启动 firewalld

    $ sudo systemctl start firewalld
  9. 启用 firewalld

    $ sudo systemctl enable firewalld
  10. 启动 http 服务:

    $ sudo firewall-cmd --zone=public --add-service=http --permanent
    $ sudo firewall-cmd --reload
  11. 启动并启用 libvirtd 服务:

    $ sudo systemctl enable libvirtd --now
  12. 设置 provisioner 节点的 ID:

    $ PRVN_HOST_ID=<ID>

    您可以使用以下 ibmcloud 命令查看 ID:

    $ ibmcloud sl hardware list
  13. 设置公共子网的 ID:

    $ PUBLICSUBNETID=<ID>

    您可以使用以下 ibmcloud 命令查看 ID:

    $ ibmcloud sl subnet list
  14. 设置专用子网的 ID:

    $ PRIVSUBNETID=<ID>

    您可以使用以下 ibmcloud 命令查看 ID:

    $ ibmcloud sl subnet list
  15. 设置 provisioner 节点公共 IP 地址:

    $ PRVN_PUB_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | jq .primaryIpAddress -r)
  16. 为公共网络设置 CIDR:

    $ PUBLICCIDR=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .cidr)
  17. 为公共网络设置 IP 地址和 CIDR:

    $ PUB_IP_CIDR=$PRVN_PUB_IP/$PUBLICCIDR
  18. 为公共网络设置网关:

    $ PUB_GATEWAY=$(ibmcloud sl subnet detail $PUBLICSUBNETID --output JSON | jq .gateway -r)
  19. 设置 provisioner 节点的专用 IP 地址:

    $ PRVN_PRIV_IP=$(ibmcloud sl hardware detail $PRVN_HOST_ID --output JSON | \
                     jq .primaryBackendIpAddress -r)
  20. 为专用网络设置 CIDR:

    $ PRIVCIDR=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .cidr)
  21. 设置专用网络的 IP 地址和 CIDR:

    $ PRIV_IP_CIDR=$PRVN_PRIV_IP/$PRIVCIDR
  22. 为专用网络设置网关:

    $ PRIV_GATEWAY=$(ibmcloud sl subnet detail $PRIVSUBNETID --output JSON | jq .gateway -r)
  23. baremetal 设置网桥并 置备 网络:

    $ sudo nohup bash -c "
        nmcli --get-values UUID con show | xargs -n 1 nmcli con delete
        nmcli connection add ifname provisioning type bridge con-name provisioning
        nmcli con add type bridge-slave ifname eth1 master provisioning
        nmcli connection add ifname baremetal type bridge con-name baremetal
        nmcli con add type bridge-slave ifname eth2 master baremetal
        nmcli connection modify baremetal ipv4.addresses $PUB_IP_CIDR ipv4.method manual ipv4.gateway $PUB_GATEWAY
        nmcli connection modify provisioning ipv4.addresses 172.22.0.1/24,$PRIV_IP_CIDR ipv4.method manual
        nmcli connection modify provisioning +ipv4.routes \"10.0.0.0/8 $PRIV_GATEWAY\"
        nmcli con down baremetal
        nmcli con up baremetal
        nmcli con down provisioning
        nmcli con up provisioning
        init 6
    "
    注意

    对于 eth1eth2,根据需要替换相应的接口名称。

  24. 如果需要,通过 SSH 重新连接到 provisioner 节点:

    # ssh kni@provisioner.<cluster-name>.<domain>
  25. 验证连接网桥是否已正确创建:

    $ sudo nmcli con show

    输出示例

    NAME               UUID                                  TYPE      DEVICE
    baremetal          4d5133a5-8351-4bb9-bfd4-3af264801530  bridge    baremetal
    provisioning       43942805-017f-4d7d-a2c2-7cb3324482ed  bridge    provisioning
    virbr0             d9bca40f-eee1-410b-8879-a2d4bb0465e7  bridge    virbr0
    bridge-slave-eth1  76a8ed50-c7e5-4999-b4f6-6d9014dd0812  ethernet  eth1
    bridge-slave-eth2  f31c3353-54b7-48de-893a-02d2b34c4736  ethernet  eth2

  26. 创建 pull-secret.txt 文件:

    $ vim pull-secret.txt

    在 Web 浏览器中,导航到 Install on Bare Metal with user-provisioned infrastructure。在第 1 步中,点击 Download pull secret。将内容粘贴到 pull-secret.txt 文件中,并将内容保存到 kni 用户的主目录中。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat, Inc.