12.2. 在单一节点上安装 OpenShift
12.2.1. 使用 Assisted Installer 生成发现 ISO
在单一节点上安装 OpenShift Container Platform 需要发现 ISO,辅助安装程序(AI)可以使用集群名称、基域、Secure Shell(SSH)公钥和 pull secret 生成。
流程
- 在管理节点上,使用浏览器访问使用 Assisted Installer 安装 OpenShift。
- 单击 Create Cluster 以创建新集群。
- 在 Cluster name 字段中输入集群名称。
在 Base domain 字段中,输入基域。例如:
example.com
所有 DNS 记录都必须是这个基域的子域,并包含集群名称。您无法在集群安装后更改基域。例如:
<cluster-name>.example.com
- 选择 安装单节点 OpenShift(SNO)。
- 阅读 4.10 发行注记,它概述了在单一节点上安装 OpenShift Container Platform 的一些限制。
- 选择 OpenShift Container Platform 版本。
- 可选:编辑 pull secret。
- 点 Next。
- 点 Generate Discovery ISO。
- 选择 Full image file 来使用 USB 驱动器或 PXE 进行引导。选择 Minimal 镜像文件来使用虚拟介质引导。
- 将管理节点的 SSH 公钥添加到公钥字段。
- 点 Generate Discovery ISO。
- 下载发现 ISO。
- 记录用于使用虚拟介质安装的发现 ISO URL。
如果在此过程中启用 OpenShift Virtualization,则必须为虚拟机有第二个至少 50GiB 的本地存储设备。
12.2.2. 手动生成发现 ISO
在单一节点上安装 OpenShift Container Platform 需要发现 ISO,您可以按照以下流程生成该 ISO。
流程
输入以下命令下载 OpenShift Container Platform 客户端(
oc
)并使其可用:$ curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/latest/openshift-client-linux.tar.gz > oc.tar.gz
$ tar zxf oc.tar.gz
$ chmod +x oc
设置 OpenShift Container Platform 版本:
$ OCP_VERSION=<ocp_version> 1
- 1
- 将
<ocp_version>
替换为当前版本。例如:latest-4.10
输入以下命令下载 OpenShift Container Platform 安装程序并使其可用:
$ curl -k https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$OCP_VERSION/openshift-install-linux.tar.gz > 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 x86_64 | grep iso | cut -d\" -f4)
下载 RHCOS ISO:
$ curl -L $ISO_URL > rhcos-live.x86_64.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: networkType: OVNKubernetes clusterNetwork: - cidr: <IP_address>/<prefix> 5 hostPrefix: <prefix> 6 serviceNetwork: - <IP_address>/<prefix> 7 platform: none: {} bootstrapInPlace: installationDisk: <path_to_install_drive> 8 pullSecret: '<pull_secret>' 9 sshKey: | <ssh_key> 10
- 1
- 添加集群域名。
- 2
- 将
计算
副本设置为0
。这使得 control plane 节点可以调度。 - 3
- 将
controlPlane
副本设置为1
。与前面的compute
设置结合使用,此设置可确保集群在单一节点上运行。 - 4
- 将
metadata
名称设置为集群名称。 - 5
- 设置
clusterNetwork
CIDR。 - 6
- 设置
clusterNetwork
主机前缀。容器集从这个池接收其 IP 地址。 - 7
- 设置
serviceNetwork
CIDR。服务从这个池接收其 IP 地址。 - 8
- 设置安装磁盘驱动器的路径。
- 9
- 从 Red Hat OpenShift Cluster Manager 复制 pull secret。在第 1 步中,单击 Download pull secret,并将内容添加到此配置设置中。
- 10
- 从管理主机添加公共 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'
$ cp ocp/bootstrap-in-place-for-live-iso.ign iso.ign
$ coreos-installer iso ignition embed -fi iso.ign rhcos-live.x86_64.iso
12.2.3. 使用 USB 介质安装
使用 USB 介质安装涉及在管理节点上使用发现 ISO 创建可引导 USB 驱动器。使用 USB 驱动器引导服务器,可为单一节点安装准备节点。
流程
- 在管理节点上,将 USB 驱动器插入到 USB 端口中。
创建可引导 USB 驱动器:
# dd if=<path-to-iso> of=<path/to/usb> status=progress
例如:
# dd if=discovery_image_sno.iso of=/dev/sdb status=progress
将 ISO 复制到 USB 驱动器后,您可以使用 USB 驱动器安装 OpenShift Container Platform。
- 在服务器上,将 USB 驱动器插入到 USB 端口中。
- 重新启动服务器并在重新引导时输入 BIOS 设置。
- 更改引导驱动器顺序,以便首先引导 USB 驱动器。
- 保存并退出 BIOS 设置。服务器将使用发现映像进行引导。
12.2.4. 使用 Assisted Installer 监控安装
如果您使用 Assisted Installer 创建 ISO,请使用以下步骤监控安装。
流程
- 在管理主机上,返回到浏览器并刷新页面。如有必要,重新加载 Install OpenShift with the Assisted Installer 页,并选择主机名。
- 单击 Next,直到您到达第 3 步 Networking。
- 从可用的子网中选择一个子网。
- 确定选择了 Use the same host discovery SSH key。如有必要,您可以更改 SSH 公钥。
- 点 Next 进入 Review and Create 步骤。
- 点 Install cluster。
- 监控安装的进度。观察集群出现的事件。在安装过程完成将发现镜像写入服务器驱动器后,服务器将重新引导。删除 USB 驱动器并重置 BIOS 以引导到服务器的本地介质,而不是 USB 驱动器。
服务器将多次重启,以部署 control plane。
12.2.5. 手动监控安装
如果您手动创建 ISO,请使用这个步骤监控安装。
流程
监控安装:
$ ./openshift-install --dir=ocp wait-for install-complete
服务器将在部署 control plane 时多次重启。
可选:安装完成后,检查环境:
$ export KUBECONFIG=ocp/auth/kubeconfig
$ oc get nodes
$ oc get clusterversion