1.7. 为裸机创建凭证


您需要一个凭证来使用 Red Hat Advanced Cluster Management for Kubernetes 控制台在裸机环境中部署和管理 Red Hat OpenShift Container Platform 集群。凭证指定到在创建集群时用作 bootstrap 主机虚拟机 (VM) 的置备节点的连接。

需要的访问权限: Edit

1.7.1. 先决条件

创建凭证前需要满足以下先决条件:

  • 已部署 Red Hat Advanced Cluster Management for Kubernetes hub 集群。在管理裸机集群时,必须在 Red Hat OpenShift Container Platform 版本 4.6 或更高版本上安装了 hub 集群。
  • 可通过互联网访问 Red Hat Advanced Cluster Management for Kubernetes hub 集群,以便它在裸机服务器上创建 Kubernetes 集群
  • 对于断开连接的环境,您必须配置了一个镜像 registry,您可以在其中复制发行镜像以进行集群创建。如需更多信息,请参阅 OpenShift Container Platform 文档中的用于断开连接的安装的镜像
  • 支持在裸机基础架构上安装集群的帐户权限。

1.7.2. 准备置备主机

在创建裸机凭证和集群时,您必须有一个置备主机。置备主机是可用于安装的 bootstrap 主机虚拟机。它可以是虚拟机,也可以是运行基于内核的虚拟机 (KVM) 的服务。创建凭证和集群时,您需要此主机的详细信息。完成以下步骤以配置置备(provisioner)主机:

  1. 使用 SSH 登录 provisioner 节点。
  2. 运行以下命令,创建非 root 用户 (user-name) 并为该用户提供 sudo 权限:

    useradd <user-name>
    passwd <password>
    echo "<user-name> ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/<user-name>
    chmod 0440 /etc/sudoers.d/<user-name>
  3. 输入以下命令为新用户创建 SSH 密钥:

    su - <user-name> -c "ssh-keygen -t rsa -f /home/<user-name>/.ssh/id_rsa -N ''"
  4. 使用新创建的用户登陆到 provisioner 节点。

    su - <user-name>
    [user-name@provisioner ~]$
  5. 输入以下命令使用 Red Hat Subscription Manager 来注册 provisioner 节点:

    sudo subscription-manager register --username=<user-name> --password=<password> --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 的更多信息,请参阅 Red Hat OpenShift Container Platform 文档中的使用和配置 Red Hat Subscription Manager

  6. 运行以下命令来安装所需的软件包:

    sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitool
  7. 修改用户以便为新创建的用户中添加 libvirt 组。

    sudo usermod --append --groups libvirt <user-name>
  8. 输入以下命令重启 firewalld 并启用 http 服务:

    sudo systemctl start firewalld
    sudo firewall-cmd --zone=public --add-service=http --permanent
    sudo firewall-cmd --reload
  9. 输入以下命令启动并启用 libvirtd 服务:

    sudo systemctl enable libvirtd --now
  10. 输入以下命令创建默认存储池并启动它:

    sudo virsh pool-define-as --name default --type dir --target /var/lib/libvirt/images
    sudo virsh pool-start default
    sudo virsh pool-autostart default
  11. 配置网络:

    1. 运行以下命令,将 PUB_CONN 的值导出到 baremetal 网络的 NIC 的名称:

      export PUB_CONN=<baremetal-nic-name>
    2. 配置 baremetal 网络:

      sudo nohup bash -c """
          nmcli con down "$PUB_CONN"
          nmcli con delete "$PUB_CONN"
          # RHEL 8.1 appends the word "System" in front of the connection, delete in case it exists
          nmcli con down "System $PUB_CONN"
          nmcli con delete "System $PUB_CONN"
          nmcli connection add ifname baremetal type bridge con-name baremetal
          nmcli con add type bridge-slave ifname \"$PUB_CONN"\ master baremetal
          pkill dhclient;dhclient baremetal

      完成此步骤后,SSH 连接可能会断开。

    3. 如果要使用可选的置备网络部署,请完成以下步骤:

      1. 运行以下命令导出 provisioning 网络 NIC 名称:

        export PROV_CONN=<prov-nic-name>
      2. 配置 provisioning 网络:

        sudo nohup bash -c """
            nmcli con down "$PROV_CONN"
            nmcli con delete "$PROV_CONN"
            nmcli connection add ifname baremetal type bridge con-name provisioning
            nmcli con add type bridge-slave ifname \"$PROV_CONN\" master provisioning
            nmcli connection modify provisioning ipv6.addresses fd00:1101::1/64 ipv6.method manual
            nmcli con down provisioning
            nmcli con up provisioning

        完成此步骤后,SSH 连接可能会断开。

        只要无法使用 baremetal 网络路由,IPv6 地址可以是任何地址。

        在使用 IPv6 地址时,请确保启用了 UEFI,并将 UEFI PXE 设置设置为 IPv6 协议。

      3. 在 provisioning 网络连接上配置 IPv4 地址:

        nmcli connection modify provisioning ipv4.addresses 172.22.0.254/24 ipv4.method manual
  12. 使用 ssh 重新连接到 provisioner 节点(如果需要)。

    # ssh <user-name>@provisioner.<cluster-name>.<domain>
  13. 运行以下命令验证连接网桥是否已正确创建:

    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-eno1

    76a8ed50-c7e5-4999-b4f6-6d9014dd0812

    Ethernet

    eno1

    bridge-slave-eno2

    f31c3353-54b7-48de-893a-02d2b34c4736

    Ethernet

    eno2

  14. 通过以下步骤创建 pull-secret.txt 文件:

    vim pull-secret.txt
    1. 在 Web 浏览器中,导航到 Install OpenShift on Bare Metal with user-provisioned infrastructure,再向下滚动到 Downloads 部分。
    2. Copy pull secret
    3. 将内容粘贴到 pull-secret.txt 文件中,并将内容保存到 user-name 用户的主目录中。

您已准备好创建裸机凭证。

1.7.3. 使用控制台管理凭证

要从 Red Hat Advanced Cluster Management for Kubernetes 控制台创建凭证,请完成控制台中的步骤。

从导航菜单开始。单击 Credentials 以从现有凭证选项中进行选择。提示: 为方便起见,同时为了提高安全性,创建一个命名空间,专门用于托管您的凭证。

  1. 您可以选择为您的凭证添加基本 DNS 域。如果您将基本 DNS 域添加到凭证中,则在使用此凭证创建集群时,会自动填充到正确的字段中。如果没有添加 DNS 域,您可以在创建集群时添加它。
  2. 添加 libvirt URI。libvirt URI 适用于您为 bootstrap 节点创建的置备节点。libvirt URI 应该类似以下示例:

    <qemu+ssh>:://<user-name>@<provision-host.com>/system
    • 使用您连接到调配主机上的 libvirt 守护进程的方法替换 qemu+ssh
    • 使用有权在置备主机上创建 bootstrap 节点的用户名替换 user-name
    • provision-host.com 替换为您的调配主机的链接。这可以是 IP 地址或完全限定域名地址。

      如需更多信息,请参阅连接 URI

  3. 为调配主机添加 SSH 已知主机的列表。这个值可以是 IP 地址或完全限定域名地址,但最好使用您在 libvirt URI 值中使用的相同格式。
  4. 仅用于断开连接的安装:使用所需信息完成 Configuration for disconnected installation 子字段:

    • Image registry mirror:此值包含断开连接的 registry 路径。该路径包含所有用于断开连接的安装镜像的主机名、端口和库路径。示例: repository.com:5000/openshift/ocp-release

      该路径会在 install-config.yaml 中创建一个到 Red Hat OpenShift Container Platform 发行镜像的镜像内容源策略映射。例如,repository.com:5000 生成此 imageContentSource 内容:

      imageContentSources:
      - mirrors:
        - registry.example.com:5000/ocp4
        source: quay.io/openshift-release-dev/ocp-release-nightly
      - mirrors:
        - registry.example.com:5000/ocp4
        source: quay.io/openshift-release-dev/ocp-release
      - mirrors:
        - registry.example.com:5000/ocp4
        source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
    • Bootstrap OS image:此值包含用于 bootstrap 机器的镜像的 URL。
    • Cluster OS image:此值包含用于 Red Hat OpenShift Container Platform 集群机器的镜像的 URL。
    • Additional trust bundle:此值提供访问镜像 registry 所需的证书文件内容。

      注: 如果您要从断开连接的环境中的一个 hub 部署受管集群,并希望在安装后自动导入它们,使用 YAML 编辑器将镜像内容源策略添加到 install-config.yaml 文件中。以下示例中显示了一个示例:

      imageContentSources:
      - mirrors:
        - registry.example.com:5000/rhacm2
        source: registry.redhat.io/rhacm2
  5. 如果要启用代理,请输入代理信息:

    • HTTP 代理 URL:用作 HTTP 流量的代理的 URL。
    • HTTPS 代理 URL:用于 HTTPS 流量的安全代理 URL。如果没有提供值,则使用相同的值 HTTP Proxy URL,用于 HTTPHTTPS
    • 无代理域:应当绕过代理的以逗号分隔的域列表。使用一个句点 (.) 开始的域名,包含该域中的所有子域。添加星号 (*) 以绕过所有目的地的代理。
    • Additional trust bundle:访问镜像 registry 所需的证书文件内容。
  6. 输入您的 Red Hat OpenShift pull secret。您可以从 Pull secret 下载 pull secret。
  7. 添加 SSH 私钥SSH 公钥 以便您可以访问集群。您可以使用现有密钥,或使用密钥生成程序创建新密钥。请参阅生成 SSH 私钥并将其添加到代理中,以了解有关如何生成密钥的更多信息。

要创建使用此凭证的集群,您可以完成在裸机上创建集群中的步骤。

您可以在控制台中编辑凭证。

当您不再管理使用凭证的集群时,请删除凭证来保护凭证中的信息。选择要批量删除的 Actions,或者选择您要删除的凭证旁边的选项菜单。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.