13.2. 在单一节点上安装 OpenShift
您可以使用基于 Web 的辅助安装程序和使用 Assisted Installer 生成的发现 ISO 安装单节点 OpenShift。您还可以使用 coreos-installer
安装单节点 OpenShift 来生成安装 ISO。
13.2.1. 使用 Assisted Installer 安装单节点 OpenShift
要在单一节点上安装 OpenShift Container Platform,请使用基于 web 的 Assisted Installer 向导来引导您完成安装过程并管理安装。
13.2.1.1. 使用 Assisted Installer 生成发现 ISO
在单一节点上安装 OpenShift Container Platform 需要发现 ISO,辅助安装程序可生成。
流程
- 在管理主机上,打开浏览器并进入到 Red Hat OpenShift Cluster Manager。
- 单击 Create Cluster 以创建新集群。
- 在 Cluster name 字段中输入集群名称。
在 Base domain 字段中,输入基域。例如:
example.com
所有 DNS 记录都必须是这个基域的子域并包含集群名称,例如:
<cluster-name>.example.com
注意您不能在集群安装后更改基域或集群名称。
- 选择 Install single node OpenShift (SNO) 并完成向导步骤的其余部分。下载发现 ISO。
- 记录用于使用虚拟介质安装的发现 ISO URL。
如果在此过程中启用 OpenShift Virtualization,则必须为虚拟机有第二个至少 50GiB 的本地存储设备。
13.2.1.2. 使用 Assisted Installer 安装单节点 OpenShift
使用辅助安装程序安装单节点集群。
流程
- 将 RHCOS 发现 ISO 附加到目标主机。
- 在服务器 BIOS 设置中配置启动驱动器顺序,以便从附加的发现 ISO 启动,然后重启服务器。
- 在管理主机上,返回到浏览器。等待主机出现在已发现的主机列表中。如有必要,重新载入 Assisted Clusters 页面并选择集群名称。
- 完成安装向导步骤。添加网络详情,包括可用子网中的子网。如果需要,添加 SSH 公钥。
- 监控安装的进度。观察集群出现的事件。在安装过程完成后,将操作系统镜像写入服务器的硬盘中,服务器会重启。
删除发现 ISO,并重置服务器以从安装驱动器引导。
服务器自动重启了多次,部署 control plane。
13.2.2. 手动安装单节点 OpenShift
要在单一节点上安装 OpenShift Container Platform,首先生成安装 ISO,然后从 ISO 引导服务器。您可以使用 openshift-install
安装程序监控安装。
13.2.2.1. 使用 coreos-installer 生成安装 ISO
在单一节点上安装 OpenShift Container Platform 需要安装 ISO,您可以按照以下流程生成该 ISO。
先决条件
-
安装
podman
。
流程
设置 OpenShift Container Platform 版本:
$ OCP_VERSION=<ocp_version> 1
- 1
- 将
<ocp_version>
替换为当前版本,如latest-4.11
设置主机架构:
$ ARCH=<architecture> 1
- 1
- 将
<architecture>
替换为目标主机架构,如aarch64
或x86_64
。
输入以下命令下载 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
输入以下命令下载 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
运行以下命令来检索 RHCOS ISO URL:
$ ISO_URL=$(./openshift-install coreos print-stream-json | grep location | grep $ARCH | grep iso | cut -d\" -f4)
下载 RHCOS ISO:
$ curl -L $ISO_URL -o rhcos-live.iso
准备
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 密钥,以便您可以在安装后登录集群。
运行以下命令来生成 OpenShift Container Platform 资产:
$ mkdir ocp
$ cp install-config.yaml ocp
$ ./openshift-install --dir=ocp create single-node-ignition-config
运行以下命令,将 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
13.2.2.2. 使用 openshift-install 监控集群安装
使用 openshift-install
监控单节点集群安装的进度。
流程
- 将修改后的 RHCOS 安装 ISO 附加到目标主机。
- 在服务器 BIOS 设置中配置启动驱动器顺序,以便从附加的发现 ISO 启动,然后重启服务器。
在管理主机上,运行以下命令来监控安装:
$ ./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.24.0+beaaed6
13.2.3. 在 USB 驱动器中创建可引导 ISO 镜像
您可以使用包含 ISO 镜像的可引导 USB 驱动器安装软件。使用 USB 驱动器引导服务器为软件安装准备服务器。
流程
- 在管理主机上,在 USB 端口中插入 USB 驱动器。
创建可引导 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 驱动器在服务器上安装软件。
13.2.4. 使用 Redfish API 从 HTTP 托管 ISO 镜像引导
您可以使用 Redfish Baseboard Management Controller (BMC) API 安装的 ISO 来置备网络中的主机。
先决条件
- 下载安装 Red Hat Enterprise Linux CoreOS (RHCOS) ISO。
流程
- 将 ISO 文件复制到网络中的 HTTP 服务器。
从托管 ISO 文件引导主机,例如:
运行以下命令调用 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 地址。
运行以下命令,将主机设置为从
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
重启主机:
$ 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
可选: 如果主机已关闭,您可以使用
{"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