搜索

15.2. 在单一节点上安装 OpenShift

download PDF

您可以使用基于 Web 的辅助安装程序和使用 Assisted Installer 生成的发现 ISO 安装单节点 OpenShift。您还可以使用 coreos-installer 安装单节点 OpenShift 来生成安装 ISO。

15.2.1. 使用 Assisted Installer 安装单节点 OpenShift

要在单一节点上安装 OpenShift Container Platform,请使用基于 web 的 Assisted Installer 向导来引导您完成安装过程并管理安装。

15.2.1.1. 使用 Assisted Installer 生成发现 ISO

在单一节点上安装 OpenShift Container Platform 需要发现 ISO,辅助安装程序可生成。

流程

  1. 在管理主机上,打开浏览器并进入到 Red Hat OpenShift Cluster Manager
  2. 单击 Create Cluster 以创建新集群。
  3. Cluster name 字段中输入集群名称。
  4. Base domain 字段中,输入基域。例如:

    example.com

    所有 DNS 记录都必须是这个基域的子域并包含集群名称,例如:

    <cluster-name>.example.com
    注意

    您不能在集群安装后更改基域或集群名称。

  5. 选择 Install single node OpenShift (SNO) 并完成向导步骤的其余部分。下载发现 ISO。
  6. 记录用于使用虚拟介质安装的发现 ISO URL。
注意

如果在此过程中启用 OpenShift Virtualization,则必须为虚拟机有第二个至少 50GiB 的本地存储设备。

15.2.1.2. 使用 Assisted Installer 安装单节点 OpenShift

使用辅助安装程序安装单节点集群。

流程

  1. 将 RHCOS 发现 ISO 附加到目标主机。
  2. 在服务器 BIOS 设置中配置启动驱动器顺序,以便从附加的发现 ISO 启动,然后重启服务器。
  3. 在管理主机上,返回到浏览器。等待主机出现在已发现的主机列表中。如有必要,重新载入 Assisted Clusters 页面并选择集群名称。
  4. 完成安装向导步骤。添加网络详情,包括可用子网中的子网。如果需要,添加 SSH 公钥。
  5. 监控安装的进度。观察集群出现的事件。在安装过程完成后,将操作系统镜像写入服务器的硬盘中,服务器会重启。
  6. 删除发现 ISO,并重置服务器以从安装驱动器引导。

    服务器自动重启了多次,部署 control plane。

15.2.2. 手动安装单节点 OpenShift

要在单一节点上安装 OpenShift Container Platform,首先生成安装 ISO,然后从 ISO 引导服务器。您可以使用 openshift-install 安装程序监控安装。

15.2.2.1. 使用 coreos-installer 生成安装 ISO

在单一节点上安装 OpenShift Container Platform 需要安装 ISO,您可以按照以下流程生成该 ISO。

先决条件

  • 安装 podman
注意

如需了解网络要求,请参阅"在单一节点上安装 OpenShift 的要求,包括 DNS 记录。

流程

  1. 设置 OpenShift Container Platform 版本:

    $ OCP_VERSION=<ocp_version> 1
    1
    <ocp_version> 替换为当前版本,如 latest-4.13
  2. 设置主机架构:

    $ ARCH=<architecture> 1
    1
    <architecture> 替换为目标主机架构,如 aarch64x86_64
  3. 输入以下命令下载 OpenShift Container Platform 客户端(oc)并使其可用:

    $ curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$OCP_VERSION/openshift-client-linux.tar.gz -o oc.tar.gz
    $ tar zxf oc.tar.gz
    $ chmod +x oc
  4. 输入以下命令下载 OpenShift Container Platform 安装程序并使其可用:

    $ curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$OCP_VERSION/openshift-install-linux.tar.gz -o openshift-install-linux.tar.gz
    $ tar zxvf openshift-install-linux.tar.gz
    $ chmod +x openshift-install
  5. 运行以下命令来检索 RHCOS ISO URL:

    $ ISO_URL=$(./openshift-install coreos print-stream-json | grep location | grep $ARCH | grep iso | cut -d\" -f4)
  6. 下载 RHCOS ISO:

    $ curl -L $ISO_URL -o rhcos-live.iso
  7. 准备 install-config.yaml 文件:

    apiVersion: v1
    baseDomain: <domain> 1
    compute:
    - name: worker
      replicas: 0 2
    controlPlane:
      name: master
      replicas: 1 3
    metadata:
      name: <name> 4
    networking: 5
      clusterNetwork:
      - cidr: 10.128.0.0/14
        hostPrefix: 23
      machineNetwork:
      - cidr: 10.0.0.0/16 6
      networkType: OVNKubernetes
      serviceNetwork:
      - 172.30.0.0/16
    platform:
      none: {}
    bootstrapInPlace:
      installationDisk: /dev/disk/by-id/<disk_id> 7
    pullSecret: '<pull_secret>' 8
    sshKey: |
      <ssh_key> 9
    1
    添加集群域名。
    2
    计算 副本设置为 0。这使得 control plane 节点可以调度。
    3
    controlPlane 副本设置为 1。与前面的 compute 设置结合使用,此设置可确保集群在单一节点上运行。
    4
    metadata 名称设置为集群名称。
    5
    设置网络详情。OVN-Kubernetes 是单节点集群唯一支持的网络插件类型。
    6
    cidr 值设置为与单节点 OpenShift 集群的子网匹配。
    7
    设置安装磁盘驱动器的路径,例如: /dev/disk/by-id/wwn-0x64cd98f04fde100024684cf3034da5c2
    8
    复制来自 Red Hat OpenShift Cluster Manager 的 pull secret,并将内容添加到此配置设置中。
    9
    从管理主机添加公共 SSH 密钥,以便您可以在安装后登录集群。
  8. 运行以下命令来生成 OpenShift Container Platform 资产:

    $ mkdir ocp
    $ cp install-config.yaml ocp
    $ ./openshift-install --dir=ocp create single-node-ignition-config
  9. 运行以下命令,将 ignition 数据嵌入到 RHCOS ISO 中:

    $ alias coreos-installer='podman run --privileged --pull always --rm \
            -v /dev:/dev -v /run/udev:/run/udev -v $PWD:/data \
            -w /data quay.io/coreos/coreos-installer:release'
    $ coreos-installer iso ignition embed -fi ocp/bootstrap-in-place-for-live-iso.ign rhcos-live.iso

其他资源

15.2.2.2. 使用 openshift-install 监控集群安装

使用 openshift-install 监控单节点集群安装的进度。

流程

  1. 将修改后的 RHCOS 安装 ISO 附加到目标主机。
  2. 在服务器 BIOS 设置中配置启动驱动器顺序,以便从附加的发现 ISO 启动,然后重启服务器。
  3. 在管理主机上,运行以下命令来监控安装:

    $ ./openshift-install --dir=ocp wait-for install-complete

    在部署 control plane 时服务器重启几次。

验证

  • 安装完成后,运行以下命令来检查环境:

    $ export KUBECONFIG=ocp/auth/kubeconfig
    $ oc get nodes

    输出示例

    NAME                         STATUS   ROLES           AGE     VERSION
    control-plane.example.com    Ready    master,worker   10m     v1.26.0

15.2.3. 在 AWS 上安装单节点 OpenShift

15.2.3.1. 在 AWS 上的单一节点上安装的额外要求

安装程序置备的安装的 AWS 文档使用由三个 control plane 节点组成的高可用性集群编写。在引用 AWS 文档时,请考虑单节点 OpenShift 集群的要求与高可用性集群之间的区别。

  • AWS 文档中的集群安装所需的机器表示临时 bootstrap 机器、三台 control plane 机器和至少两台计算机器。您只需要一个临时 bootstrap 机器和一个 AWS 实例用于 control plane 节点,且没有 worker 节点。
  • AWS 文档中的集群安装的最低资源要求表示 control plane 节点有 4 个 vCPU 和 100GB 存储。对于单一节点集群,必须至少有 8 个 vCPU 内核和 120GB 存储。
  • install-config.yaml 文件中的 controlPlane.replicas 设置应设置为 1
  • install-config.yaml 文件中的 compute.replicas 设置应设置为 0。这使得 control plane 节点可以调度。

15.2.3.2. 在 AWS 上安装单节点 OpenShift

在 AWS 上安装单一节点集群需要使用"在带有自定义"流程的 AWS 上安装集群。

15.2.4. 在 USB 驱动器中创建可引导 ISO 镜像

您可以使用包含 ISO 镜像的可引导 USB 驱动器安装软件。使用 USB 驱动器引导服务器为软件安装准备服务器。

流程

  1. 在管理主机上,在 USB 端口中插入 USB 驱动器。
  2. 创建可引导 USB 驱动器,例如:

    # dd if=<path_to_iso> of=<path_to_usb> status=progress

    其中:

    <path_to_iso>
    是下载的 ISO 文件的相对路径,例如 rhcos-live.iso
    <path_to_usb>
    是连接的 USB 驱动器的位置,例如 /dev/sdb

    将 ISO 复制到 USB 驱动器后,您可以使用 USB 驱动器在服务器上安装软件。

15.2.5. 使用 Redfish API 从 HTTP 托管 ISO 镜像引导

您可以使用 Redfish Baseboard Management Controller (BMC) API 安装的 ISO 来置备网络中的主机。

注意

这个示例步骤演示了在 Dell 服务器上进行的步骤。

重要

确保具有与硬件兼容的 iDRAC 的最新固件版本。如果硬件或固件有问题,您必须联系相关供应商。

先决条件

  • 下载安装 Red Hat Enterprise Linux CoreOS (RHCOS) ISO。
  • 使用与 iDRAC9 兼容的 Dell PowerEdge 服务器。

流程

  1. 将 ISO 文件复制到网络中的 HTTP 服务器。
  2. 从托管 ISO 文件引导主机,例如:

    1. 运行以下命令,调用 Redfish API 将托管的 ISO 设置为 VirtualMedia 引导介质:

      $ curl -k -u <bmc_username>:<bmc_password> -d '{"Image":"<hosted_iso_file>", "Inserted": true}' -H "Content-Type: application/json" -X POST <host_bmc_address>/redfish/v1/Managers/iDRAC.Embedded.1/VirtualMedia/CD/Actions/VirtualMedia.InsertMedia

      其中:

      <bmc_username>:<bmc_password>
      是目标主机 BMC 的用户名和密码。
      <hosted_iso_file>
      是托管安装 ISO 的 URL,例如:http://webserver.example.com/rhcos-live-minimal.iso。ISO 必须从目标主机机器中访问。
      <host_bmc_address>
      是目标主机计算机的 BMC IP 地址。
    2. 运行以下命令,将主机设置为从 VirtualMedia 设备引导:

      $ curl -k -u <bmc_username>:<bmc_password> -X PATCH -H 'Content-Type: application/json' -d '{"Boot": {"BootSourceOverrideTarget": "Cd", "BootSourceOverrideMode": "UEFI", "BootSourceOverrideEnabled": "Once"}}' <host_bmc_address>/redfish/v1/Systems/System.Embedded.1
    3. 重启主机:

      $ curl -k -u <bmc_username>:<bmc_password> -d '{"ResetType": "ForceRestart"}' -H 'Content-type: application/json' -X POST <host_bmc_address>/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset
    4. 可选: 如果主机已关闭,您可以使用 {"ResetType": "On"} 开关引导它。运行以下命令:

      $ curl -k -u <bmc_username>:<bmc_password> -d '{"ResetType": "On"}' -H 'Content-type: application/json' -X POST <host_bmc_address>/redfish/v1/Systems/System.Embedded.1/Actions/ComputerSystem.Reset

15.2.6. 为远程服务器访问创建自定义 live RHCOS ISO

在某些情况下,您无法将外部磁盘驱动器附加到服务器,但您需要远程访问服务器来调配节点。建议您启用对服务器的 SSH 访问。您可以创建一个启用了 SSHd 并预定义的凭证的 live RHCOS ISO,以便您可以在服务器引导后访问服务器。

先决条件

  • 已安装 butane 工具。

流程

  1. coreos-installer image mirror 页面下载 coreos-installer 二进制文件。
  2. mirror.openshift.com 下载最新的 live RHCOS ISO。
  3. 创建 butane 实用程序用来创建 Ignition 文件的 embedded.yaml 文件:

    variant: openshift
    version: 4.13.0
    metadata:
      name: sshd
      labels:
        machineconfiguration.openshift.io/role: worker
    passwd:
      users:
        - name: core 1
          ssh_authorized_keys:
            - '<ssh_key>'
    1
    core 用户具有 sudo 权限。
  4. 运行以下命令,运行 butane 工具来创建 Ignition 文件:

    $ butane -pr embedded.yaml -o embedded.ign
  5. 创建 Ignition 文件后,您可以使用 coreos-installer 工具将配置包含在新的 live RHCOS ISO 中,名为 rhcos-sshd-4.13.0-x86_64-live.x86_64.iso

    $ coreos-installer iso ignition embed -i embedded.ign rhcos-4.13.0-x86_64-live.x86_64.iso -o rhcos-sshd-4.13.0-x86_64-live.x86_64.iso

验证

  • 运行以下命令,检查自定义 live ISO 是否可用于引导服务器:

    # coreos-installer iso ignition show rhcos-sshd-4.13.0-x86_64-live.x86_64.iso

    输出示例

    {
      "ignition": {
        "version": "3.2.0"
      },
      "passwd": {
        "users": [
          {
            "name": "core",
            "sshAuthorizedKeys": [
              "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCZnG8AIzlDAhpyENpK2qKiTT8EbRWOrz7NXjRzopbPu215mocaJgjjwJjh1cYhgPhpAp6M/ttTk7I4OI7g4588Apx4bwJep6oWTU35LkY8ZxkGVPAJL8kVlTdKQviDv3XX12l4QfnDom4tm4gVbRH0gNT1wzhnLP+LKYm2Ohr9D7p9NBnAdro6k++XWgkDeijLRUTwdEyWunIdW1f8G0Mg8Y1Xzr13BUo3+8aey7HLKJMDtobkz/C8ESYA/f7HJc5FxF0XbapWWovSSDJrr9OmlL9f4TfE+cQk3s+eoKiz2bgNPRgEEwihVbGsCN4grA+RzLCAOpec+2dTJrQvFqsD alosadag@sonnelicht.local"
            ]
          }
        ]
      }
    }

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.