example.com
您可以使用基于 Web 的 Assisted Installer 或coreos-installer
工具生成 discovery ISO 镜像来安装单节点 OpenShift。discovery ISO 镜像会将 Red Hat Enterprise Linux CoreOS (RHCOS) 系统配置写入目标安装磁盘,以便您可以运行单集群节点以满足您的需求。
当您想要在低资源或隔离环境中运行集群以进行测试、故障排除、培训或小型项目时,请考虑使用单节点 OpenShift。
要在一个节点上安装 OpenShift Container Platform,请使用基于 Web 的 Assisted Installer 向导来指导您完成流程并管理安装。
有关详细信息和配置选项,请参阅OpenShift Container Platform 的 Assisted Installer文档。
在单节点上安装 OpenShift Container Platform 需要一个 discovery ISO,Assisted Installer 可以生成它。
在管理主机上,打开浏览器并导航到Red Hat OpenShift 集群管理器。
点击创建新集群以创建新集群。
在集群名称字段中,输入集群名称。
在基本域名字段中,输入基本域名。例如
example.com
所有 DNS 记录必须为此基本域名的子域名,并包含集群名称,例如
<cluster_name>.example.com
集群安装后,您无法更改基本域名或集群名称。 |
选择安装单节点 OpenShift (SNO) 并完成向导的其余步骤。下载 discovery ISO。
完成其余 Assisted Installer 向导步骤。
确保记下用于虚拟介质安装的 discovery ISO URL。 如果在此过程中启用 OpenShift Virtualization,则必须拥有至少 50 GiB 的第二个本地存储设备用于虚拟机。 |
使用 Assisted Installer 安装单节点集群。
确保服务器 BIOS 设置中的引导驱动器顺序默认为从目标安装磁盘引导服务器。
将 discovery ISO 镜像附加到目标主机。
从 discovery ISO 镜像引导服务器。discovery ISO 镜像会将系统配置写入目标安装磁盘并自动触发服务器重启。
在管理主机上,返回浏览器。等待主机出现在已发现主机列表中。如有必要,重新加载Assisted Clusters页面并选择集群名称。
完成安装向导步骤。添加网络详细信息,包括来自可用子网的子网。如有必要,添加 SSH 公钥。
监控安装进度。观察集群事件。安装过程完成后将操作系统镜像写入服务器硬盘后,服务器将重新启动。
可选:移除 discovery ISO 镜像。
服务器将自动重新启动几次,部署控制平面。
要在一个节点上安装 OpenShift Container Platform,首先生成安装 ISO,然后从 ISO 引导服务器。您可以使用openshift-install
安装程序监控安装。
在单节点上安装 OpenShift Container Platform 需要一个安装 ISO,您可以使用以下步骤生成它。
安装podman
。
有关网络要求(包括 DNS 记录),请参阅“在单节点上安装 OpenShift 的要求”。 |
设置 OpenShift Container Platform 版本
$ export OCP_VERSION=<ocp_version> (1)
1 | 将<ocp_version> 替换为当前版本,例如latest-4.17 |
设置主机架构
$ export 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
$ export 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 | 将compute 副本设置为0 。这使得控制平面节点可调度。 |
3 | 将controlPlane 副本设置为1 。结合之前的compute 设置,此设置确保集群在一个节点上运行。 |
4 | 将metadata 名称设置为集群名称。 |
5 | 设置networking 详细信息。OVN-Kubernetes 是单节点集群唯一允许的网络插件类型。 |
6 | 将cidr 值设置为与单节点 OpenShift 集群的子网匹配。 |
7 | 设置安装磁盘驱动器的路径,例如,/dev/disk/by-id/wwn-0x64cd98f04fde100024684cf3034da5c2 。 |
8 | 从 Red Hat OpenShift 集群管理器复制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
有关在单节点上安装 OpenShift Container Platform 的更多信息,请参见单节点安装 OpenShift 的要求。
有关启用安装前禁用的集群功能的更多信息,请参见集群功能。
有关每个功能提供的功能的更多信息,请参见OpenShift Container Platform 4.17 中可选的集群功能。
使用openshift-install
监控单节点集群安装的进度。
确保服务器 BIOS 设置中的引导驱动器顺序默认为从目标安装磁盘引导服务器。
将 discovery ISO 镜像附加到目标主机。
从 discovery ISO 镜像引导服务器。discovery ISO 镜像会将系统配置写入目标安装磁盘并自动触发服务器重启。
在管理主机上,运行以下命令监控安装
$ ./openshift-install --dir=ocp wait-for install-complete
可选:移除 discovery ISO 镜像。
在部署控制平面期间,服务器会重启多次。
安装完成后,运行以下命令检查环境
$ export KUBECONFIG=ocp/auth/kubeconfig
$ oc get nodes
NAME STATUS ROLES AGE VERSION
control-plane.example.com Ready master,worker 10m v1.30.3
云提供商上安装程序配置安装的文档基于由三个控制平面节点组成的HA集群。参考文档时,请考虑单节点 OpenShift 集群和高可用性集群的要求之间的差异。
高可用性集群需要一台临时引导机器、三台控制平面机器和至少两台计算机器。对于单节点 OpenShift 集群,您只需要一台临时引导机器和一台用于控制平面节点的云实例,而不需要计算节点。
高可用性集群安装的最低资源要求包括一台具有 4 个 vCPU 和 100GB 存储的控制平面节点。对于单节点 OpenShift 集群,您必须至少拥有 8 个 vCPU 和 120GB 的存储空间。
install-config.yaml
文件中的controlPlane.replicas
设置应设置为1
。
install-config.yaml
文件中的compute.replicas
设置应设置为0
。这使得控制平面节点可调度。
下表列出了受支持的云提供商和 CPU 架构。
云提供商 | CPU 架构 |
---|---|
Amazon Web Service (AWS) |
x86_64 和 AArch64 |
Microsoft Azure |
x86_64 |
Google Cloud Platform (GCP) |
x86_64 和 AArch64 |
您可以使用包含 ISO 映像的可引导 USB 驱动器安装软件。使用 USB 驱动器启动服务器可以为软件安装准备服务器。
在管理主机上,将 USB 驱动器插入 USB 端口。
创建一个可引导的 USB 驱动器,例如
# dd if=<path_to_iso> of=<path_to_usb> status=progress
其中
是下载的 ISO 文件的相对路径,例如,rhcos-live.iso
。
是连接的 USB 驱动器的路径,例如,/dev/sdb
。
将 ISO 复制到 USB 驱动器后,您可以使用 USB 驱动器在服务器上安装软件。
您可以使用通过 Redfish 基板管理控制器 (BMC) API 安装的 ISO 来配置网络中的主机。
此示例过程演示了在 Dell 服务器上的步骤。 |
确保您拥有与您的硬件兼容的最新 iDRAC 固件版本。如果您遇到任何硬件或固件问题,则必须联系供应商。 |
下载安装 Red Hat Enterprise Linux CoreOS (RHCOS) ISO。
使用与 iDRAC9 兼容的 Dell PowerEdge 服务器。
将 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 的用户名和密码。
是托管安装 ISO 的 URL,例如:http://webserver.example.com/rhcos-live-minimal.iso。ISO 必须可以从目标主机访问。
是目标主机的 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
在某些情况下,您无法将外部磁盘驱动器连接到服务器,但是,您需要远程访问服务器来配置节点。建议启用对服务器的 SSH 访问。您可以创建一个启用了 SSHd 并具有预定义凭据的实时 RHCOS ISO,以便您可以在它启动后访问服务器。
您已安装butane
实用程序。
从coreos-installer
镜像镜像页面下载coreos-installer
二进制文件。
从mirror.openshift.com下载最新的 RHCOS 实时 ISO 镜像。
创建butane
工具用于创建 Ignition 文件的embedded.yaml
文件。
variant: openshift
version: 4.17.0
metadata:
name: sshd
labels:
machineconfiguration.openshift.io/role: worker
passwd:
users:
- name: core (1)
ssh_authorized_keys:
- '<ssh_key>'
1 | core 用户拥有sudo权限。 |
运行butane
工具使用以下命令创建Ignition文件:
$ butane -pr embedded.yaml -o embedded.ign
创建Ignition文件后,您可以使用coreos-installer
工具将配置包含到名为rhcos-sshd-4.17.0-x86_64-live.x86_64.iso
的新实时RHCOS ISO镜像中。
$ coreos-installer iso ignition embed -i embedded.ign rhcos-4.17.0-x86_64-live.x86_64.iso -o rhcos-sshd-4.17.0-x86_64-live.x86_64.iso
运行以下命令检查自定义实时ISO镜像是否可以用来启动服务器:
# coreos-installer iso ignition show rhcos-sshd-4.17.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 [email protected]"
]
}
]
}
}
在 IBM Z® 和 IBM® LinuxONE 上安装单节点集群需要使用以下过程之一进行用户预配安装:
在 IBM Z® 上安装单节点集群简化了开发和测试环境的安装,并且入门级资源需求更低。 |
每个集群相当于两个启用 SMT2 的集成 Linux 设施 (IFL)。
至少一个网络连接,用于连接到LoadBalancer
服务以及为集群外部流量提供数据。
您可以使用专用或共享 IFL 来分配足够的计算资源。资源共享是 IBM Z® 的关键优势之一。但是,您必须正确调整每个虚拟机管理程序层的容量,并确保每个 OpenShift Container Platform 集群拥有足够的资源。 |
您已安装podman
。
运行以下命令设置 OpenShift Container Platform 版本:
$ OCP_VERSION=<ocp_version> (1)
1 | 将<ocp_version> 替换为当前版本。例如,latest-4.17 。 |
运行以下命令设置主机架构:
$ ARCH=<architecture> (1)
1 | 将<architecture> 替换为目标主机架构s390x 。 |
下载 OpenShift Container Platform 客户端 (oc
) 并使其可用,方法是输入以下命令
$ curl -k https://mirror.openshift.com/pub/openshift-v4/${ARCH}/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/${ARCH}/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
准备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 | 将compute 副本设置为0 。这使得控制平面节点可调度。 |
3 | 将controlPlane 副本设置为1 。结合之前的compute 设置,此设置确保集群在一个节点上运行。 |
4 | 将metadata 名称设置为集群名称。 |
5 | 设置networking 详细信息。OVN-Kubernetes 是单节点集群唯一允许的网络插件类型。 |
6 | 将cidr 值设置为与单节点 OpenShift 集群的子网匹配。 |
7 | 设置安装磁盘驱动器的路径,例如,/dev/disk/by-id/wwn-0x64cd98f04fde100024684cf3034da5c2 。 |
8 | 从 Red Hat OpenShift 集群管理器复制pull secret并将内容添加到此配置设置中。 |
9 | 添加管理主机上的公钥SSH密钥,以便您可以在安装后登录到集群。 |
运行以下命令生成 OpenShift Container Platform 资源
$ mkdir ocp
$ cp install-config.yaml ocp
$ ./openshift-install --dir=ocp create single-node-ignition-config
从 Red Hat 客户门户网站上的产品下载页面或RHCOS镜像镜像页面获取 RHEL kernel
、initramfs
和rootfs
构件。
RHCOS 镜像可能不会随着每次 OpenShift Container Platform 版本的发布而更改。您必须下载版本号小于或等于您安装的 OpenShift Container Platform 版本的镜像。仅使用以下过程中描述的适当 |
文件名包含 OpenShift Container Platform 版本号。它们类似于以下示例:
内核
rhcos-<version>-live-kernel-<architecture>
initramfs
rhcos-<version>-live-initramfs.<architecture>.img
rootfs
rhcos-<version>-live-rootfs.<architecture>.img
|
将以下构件和文件移动到 HTTP 或 HTTPS 服务器:
下载的 RHEL 实时kernel
、initramfs
和rootfs
构件
Ignition 文件
为特定的虚拟机创建参数文件
cio_ignore=all,!condev rd.neednet=1 \
console=ttysclp0 \
ignition.firstboot ignition.platform.id=metal \
ignition.config.url=http://<http_server>:8080/ignition/bootstrap-in-place-for-live-iso.ign \(1)
coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \(2)
ip=<ip>::<gateway>:<mask>:<hostname>::none nameserver=<dns> \(3)
rd.znet=qeth,0.0.bdd0,0.0.bdd1,0.0.bdd2,layer2=1 \
rd.dasd=0.0.4411 \(4)
rd.zfcp=0.0.8001,0x50050763040051e3,0x4000406300000000 \(5)
zfcp.allow_lun_scan=0
1 | 对于ignition.config.url= 参数,请指定机器角色的 Ignition 文件。仅支持 HTTP 和 HTTPS 协议。 |
2 | 对于coreos.live.rootfs_url= 构件,请指定与您正在引导的kernel 和initramfs 匹配的rootfs 构件。仅支持 HTTP 和 HTTPS 协议。 |
3 | 对于ip= 参数,请使用 DHCP 自动分配 IP 地址,或者按照“在 IBM Z® 和 IBM® LinuxONE 上使用 z/VM 安装集群”中的说明手动分配。 |
4 | 对于 DASD 类型磁盘上的安装,请使用rd.dasd= 指定要安装 RHCOS 的 DASD。对于 FCP 类型磁盘,请省略此条目。 |
5 | 对于 FCP 类型磁盘上的安装,请使用rd.zfcp=<adapter>,<wwpn>,<lun> 指定要安装 RHCOS 的 FCP 磁盘。对于 DASD 类型磁盘,请省略此条目。 |
保持所有其他参数不变。
将以下构件、文件和镜像传输到 z/VM。例如,可以使用 FTP。
kernel
和initramfs
构件
参数文件
RHCOS 镜像
有关如何使用 FTP 传输文件并从虚拟阅读器引导的详细信息,请参阅在 Z/VM 下安装。
将文件打孔到将成为引导节点的 z/VM 客户机虚拟机的虚拟阅读器。
登录到引导机器上的 CMS。
运行以下命令从阅读器 IPL 引导机器:
$ cp ipl c
虚拟机第一次重新引导后,直接连续运行以下命令:
第一次重新引导后要引导 DASD 设备,请运行以下命令:
$ cp i <devno> clear loadparm prompt
其中
<devno>
指定客户机看到的引导设备的设备号。
$ cp vi vmsg 0 <kernel_parameters>
其中
<kernel_parameters>
指定一组要存储为系统控制程序数据 (SCPDATA) 的内核参数。引导 Linux 时,这些内核参数将连接到引导配置使用的现有内核参数的末尾。组合的参数字符串不得超过 896 个字符。
第一次重新引导后要引导 FCP 设备,请运行以下命令:
$ cp set loaddev portname <wwpn> lun <lun>
其中
<wwpn>
指定目标端口和<lun>
(以十六进制格式表示的逻辑单元)。
$ cp set loaddev bootprog <n>
其中
<n>
指定要引导的内核。
$ cp set loaddev scpdata {APPEND|NEW} '<kernel_parameters>'
其中
<kernel_parameters>
指定一组要存储为系统控制程序数据 (SCPDATA) 的内核参数。引导 Linux 时,这些内核参数将连接到引导配置使用的现有内核参数的末尾。组合的参数字符串不得超过 896 个字符。
<APPEND|NEW>
可选:指定APPEND
将内核参数追加到现有的 SCPDATA。这是默认值。指定NEW
替换现有的 SCPDATA。
$ cp set loaddev scpdata 'rd.zfcp=0.0.8001,0x500507630a0350a4,0x4000409D00000000
ip=encbdd0:dhcp::02:00:00:02:34:02 rd.neednet=1'
要启动 IPL 和引导过程,请运行以下命令:
$ cp i <devno>
其中
<devno>
指定客户机看到的引导设备的设备号。
您已安装podman
。
运行以下命令设置 OpenShift Container Platform 版本:
$ OCP_VERSION=<ocp_version> (1)
1 | 将<ocp_version> 替换为当前版本。例如,latest-4.17 。 |
运行以下命令设置主机架构:
$ ARCH=<architecture> (1)
1 | 将<architecture> 替换为目标主机架构s390x 。 |
下载 OpenShift Container Platform 客户端 (oc
) 并使其可用,方法是输入以下命令
$ curl -k https://mirror.openshift.com/pub/openshift-v4/${ARCH}/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/${ARCH}/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
准备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 | 将compute 副本设置为0 。这使得控制平面节点可调度。 |
3 | 将controlPlane 副本设置为1 。结合之前的compute 设置,此设置确保集群在一个节点上运行。 |
4 | 将metadata 名称设置为集群名称。 |
5 | 设置networking 详细信息。OVN-Kubernetes 是单节点集群唯一允许的网络插件类型。 |
6 | 将cidr 值设置为与单节点 OpenShift 集群的子网匹配。 |
7 | 设置安装磁盘驱动器的路径,例如,/dev/disk/by-id/wwn-0x64cd98f04fde100024684cf3034da5c2 。 |
8 | 从 Red Hat OpenShift 集群管理器复制pull secret并将内容添加到此配置设置中。 |
9 | 添加管理主机上的公钥SSH密钥,以便您可以在安装后登录到集群。 |
运行以下命令生成 OpenShift Container Platform 资源
$ mkdir ocp
$ cp install-config.yaml ocp
$ ./openshift-install --dir=ocp create single-node-ignition-config
从 Red Hat 客户门户网站上的产品下载页面或RHCOS镜像镜像页面获取 RHEL kernel
、initramfs
和rootfs
构件。
RHCOS 镜像可能不会随着每次 OpenShift Container Platform 版本的发布而更改。您必须下载版本号小于或等于您安装的 OpenShift Container Platform 版本的镜像。仅使用以下过程中描述的适当 |
文件名包含 OpenShift Container Platform 版本号。它们类似于以下示例:
内核
rhcos-<version>-live-kernel-<architecture>
initramfs
rhcos-<version>-live-initramfs.<architecture>.img
rootfs
rhcos-<version>-live-rootfs.<architecture>.img
启动virt-install
之前,请将以下文件和构件移动到 HTTP 或 HTTPS 服务器:
下载的 RHEL 实时kernel
、initramfs
和rootfs
构件
Ignition 文件
使用以下组件创建 KVM 客户机节点:
RHEL kernel
和initramfs
构件
Ignition 文件
新的磁盘镜像
调整后的 parm 行参数
$ virt-install \
--name <vm_name> \
--autostart \
--memory=<memory_mb> \
--cpu host \
--vcpus <vcpus> \
--location <media_location>,kernel=<rhcos_kernel>,initrd=<rhcos_initrd> \(1)
--disk size=100 \
--network network=<virt_network_parm> \
--graphics none \
--noautoconsole \
--extra-args "rd.neednet=1 ignition.platform.id=metal ignition.firstboot" \
--extra-args "ignition.config.url=http://<http_server>/bootstrap.ign" \(2)
--extra-args "coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img" \(3)
--extra-args "ip=<ip>::<gateway>:<mask>:<hostname>::none" \ (4)
--extra-args "nameserver=<dns>" \
--extra-args "console=ttysclp0" \
--wait
1 | 对于--location 参数,请指定 HTTP 或 HTTPS 服务器上内核/initrd 的位置。 |
2 | 指定bootstrap.ign 配置文件的位置。仅支持 HTTP 和 HTTPS 协议。 |
3 | 对于coreos.live.rootfs_url= 构件,请指定与您正在引导的kernel 和initramfs 匹配的rootfs 构件。仅支持 HTTP 和 HTTPS 协议。 |
4 | 对于ip= 参数,请按照“在 IBM Z® 和 IBM® LinuxONE 上使用 RHEL KVM 安装集群”中的说明手动分配 IP 地址。 |
如果您部署的是单节点集群,则没有计算节点,Ingress Controller Pod 运行在控制平面节点上。在单节点集群部署中,您必须配置应用程序入口负载均衡器以将 HTTP 和 HTTPS 流量路由到控制平面节点。有关更多信息,请参见“用户预配基础设施的负载均衡要求”部分。
运行以下命令设置 OpenShift Container Platform 版本:
$ OCP_VERSION=<ocp_version> (1)
1 | 将<ocp_version> 替换为当前版本。例如,latest-4.17 。 |
运行以下命令设置主机架构:
$ ARCH=<architecture> (1)
1 | 将<architecture> 替换为目标主机架构s390x 。 |
下载 OpenShift Container Platform 客户端 (oc
) 并使其可用,方法是输入以下命令
$ curl -k https://mirror.openshift.com/pub/openshift-v4/${ARCH}/clients/ocp/${OCP_VERSION}/openshift-client-linux.tar.gz -o oc.tar.gz
$ tar zxvf oc.tar.gz
$ chmod +x oc
下载 OpenShift Container Platform 安装程序并使其可用,方法是输入以下命令
$ curl -k https://mirror.openshift.com/pub/openshift-v4/${ARCH}/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
准备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: {}
pullSecret: '<pull_secret>' (7)
sshKey: |
<ssh_key> (8)
1 | 添加集群域名。 |
2 | 将compute 副本设置为0 。这使得控制平面节点可调度。 |
3 | 将controlPlane 副本设置为1 。结合之前的compute 设置,此设置确保集群在一个节点上运行。 |
4 | 将metadata 名称设置为集群名称。 |
5 | 设置networking 详细信息。OVN-Kubernetes 是单节点集群唯一允许的网络插件类型。 |
6 | 将cidr 值设置为与单节点 OpenShift 集群的子网匹配。 |
7 | 从 Red Hat OpenShift 集群管理器复制pull secret并将内容添加到此配置设置中。 |
8 | 添加管理主机上的公钥SSH密钥,以便您可以在安装后登录到集群。 |
运行以下命令生成 OpenShift Container Platform 资源
$ mkdir ocp
$ cp install-config.yaml ocp
更改到包含 OpenShift Container Platform 安装程序的目录,并为集群生成 Kubernetes 清单:
$ ./openshift-install create manifests --dir <installation_directory> (1)
1 | 对于<安装目录> ,请指定包含您创建的install-config.yaml 文件的安装目录。 |
检查<安装目录>/manifests/cluster-scheduler-02-config.yml
Kubernetes 清单文件中mastersSchedulable
参数是否设置为true
。
打开<安装目录>/manifests/cluster-scheduler-02-config.yml
文件。
找到mastersSchedulable
参数,并确保其设置为true
,如下所示的spec
段落。
spec:
mastersSchedulable: true
status: {}
保存并退出文件。
从包含安装程序的目录运行以下命令来创建 Ignition 配置文件
$ ./openshift-install create ignition-configs --dir <installation_directory> (1)
1 | 对于<安装目录> ,请指定相同的安装目录。 |
从 Red Hat 客户门户网站上的产品下载页面或RHCOS镜像镜像页面获取 RHEL kernel
、initramfs
和rootfs
构件。
RHCOS 镜像可能不会随着每次 OpenShift Container Platform 版本的发布而更改。您必须下载版本号小于或等于您安装的 OpenShift Container Platform 版本的镜像。仅使用以下过程中描述的适当 |
文件名包含 OpenShift Container Platform 版本号。它们类似于以下示例:
内核
rhcos-<version>-live-kernel-<architecture>
initramfs
rhcos-<version>-live-initramfs.<architecture>.img
rootfs
rhcos-<version>-live-rootfs.<architecture>.img
|
将以下构件和文件移动到 HTTP 或 HTTPS 服务器:
下载的 RHEL 实时kernel
、initramfs
和rootfs
构件
Ignition 文件
为 LPAR 中的引导程序创建一个参数文件
cio_ignore=all,!condev rd.neednet=1 \
console=ttysclp0 \
coreos.inst.install_dev=/dev/<block_device> \(1)
coreos.inst.ignition_url=http://<http_server>/bootstrap.ign \(2)
coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \(3)
ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \(4)
rd.znet=qeth,0.0.1140,0.0.1141,0.0.1142,layer2=1,portno=0 \
rd.dasd=0.0.4411 \(5)
rd.zfcp=0.0.8001,0x50050763040051e3,0x4000406300000000 \(6)
zfcp.allow_lun_scan=0
1 | 指定要安装到的系统上的块设备。对于 DASD 类型磁盘上的安装,使用dasda ;对于 FCP 类型磁盘上的安装,使用sda 。 |
2 | 指定bootstrap.ign 配置文件的位置。仅支持 HTTP 和 HTTPS 协议。 |
3 | 对于coreos.live.rootfs_url= 构件,请指定与您正在引导的kernel 和initramfs 匹配的rootfs 构件。仅支持 HTTP 和 HTTPS 协议。 |
4 | 对于ip= 参数,请根据“在 IBM Z® 和 IBM® LinuxONE 上在 LPAR 中安装集群”中的说明手动分配 IP 地址。 |
5 | 对于 DASD 类型磁盘上的安装,请使用rd.dasd= 指定要安装 RHCOS 的 DASD。对于 FCP 类型磁盘,请省略此条目。 |
6 | 对于 FCP 类型磁盘上的安装,请使用rd.zfcp=<adapter>,<wwpn>,<lun> 指定要安装 RHCOS 的 FCP 磁盘。对于 DASD 类型磁盘,请省略此条目。 |
如有需要,您可以调整其他参数。
为 LPAR 中的控制平面创建一个参数文件
cio_ignore=all,!condev rd.neednet=1 \
console=ttysclp0 \
coreos.inst.install_dev=/dev/<block_device> \
coreos.inst.ignition_url=http://<http_server>/master.ign \(1)
coreos.live.rootfs_url=http://<http_server>/rhcos-<version>-live-rootfs.<architecture>.img \
ip=<ip>::<gateway>:<netmask>:<hostname>::none nameserver=<dns> \
rd.znet=qeth,0.0.1140,0.0.1141,0.0.1142,layer2=1,portno=0 \
rd.dasd=0.0.4411 \
rd.zfcp=0.0.8001,0x50050763040051e3,0x4000406300000000 \
zfcp.allow_lun_scan=0
1 | 指定master.ign 配置文件的位置。仅支持 HTTP 和 HTTPS 协议。 |
将以下工件、文件和镜像传输到 LPAR。例如,使用 FTP
kernel
和initramfs
构件
参数文件
RHCOS 镜像
有关如何使用 FTP 传输文件和引导的详细信息,请参阅在 LPAR 中安装。
启动引导机器。
启动控制平面机器。
在 IBM Power® 上安装单节点集群需要使用“使用 IBM Power® 安装集群”过程进行用户配置的安装。
在 IBM Power® 上安装单节点集群简化了开发和测试环境的安装,并且入门级资源需求更少。 |
每个集群相当于两个启用 SMT2 的集成 Linux 设施 (IFL)。
至少需要一个网络连接才能连接到LoadBalancer
服务并为集群外部的流量提供数据。
您可以使用专用或共享 IFL 来分配足够的计算资源。资源共享是 IBM Power® 的主要优势之一。但是,您必须正确调整每个虚拟机管理程序层上的容量,并确保每个 OpenShift Container Platform 集群有足够的资源。 |
在 IBM Power® 上安装单节点 OpenShift 之前,必须设置堡垒机。为 IBM Power® 上的单节点 OpenShift 设置堡垒机服务器需要配置以下服务
PXE 用于单节点 OpenShift 集群安装。PXE 需要配置并运行以下服务
DNS 用于定义 api、api-int 和 *.apps
DHCP 服务用于启用 PXE 并为单节点 OpenShift 节点分配 IP 地址
HTTP 用于提供 ignition 和 RHCOS rootfs 镜像
TFTP 用于启用 PXE
您必须安装dnsmasq
以支持 DNS、DHCP 和 PXE,安装httpd
用于 HTTP。
使用以下过程配置满足这些要求的堡垒机服务器。
使用以下命令安装grub2
,这是启用 PowerVM 的 PXE 所必需的
grub2-mknetdir --net-directory=/var/lib/tftpboot
/var/lib/tftpboot/boot/grub2/grub.cfg
文件示例default=0
fallback=1
timeout=1
if [ ${net_default_mac} == fa:b0:45:27:43:20 ]; then
menuentry "CoreOS (BIOS)" {
echo "Loading kernel"
linux "/rhcos/kernel" ip=dhcp rd.neednet=1 ignition.platform.id=metal ignition.firstboot coreos.live.rootfs_url=http://192.168.10.5:8000/install/rootfs.img ignition.config.url=http://192.168.10.5:8000/ignition/sno.ign
echo "Loading initrd"
initrd "/rhcos/initramfs.img"
}
fi
使用以下命令从镜像仓库下载 RHCOS 镜像文件用于 PXE。
输入以下命令将RHCOS_URL
变量赋值为以下 4.12 URL
$ export RHCOS_URL=https://mirror.openshift.com/pub/openshift-v4/ppc64le/dependencies/rhcos/4.12/latest/
输入以下命令导航到/var/lib/tftpboot/rhcos
目录
$ cd /var/lib/tftpboot/rhcos
输入以下命令从存储在RHCOS_URL
变量中的 URL 下载指定的 RHCOS 内核文件
$ wget ${RHCOS_URL}/rhcos-live-kernel-ppc64le -o kernel
输入以下命令从存储在RHCOS_URL
变量中的 URL 下载 RHCOSinitramfs
文件
$ wget ${RHCOS_URL}/rhcos-live-initramfs.ppc64le.img -o initramfs.img
输入以下命令导航到/var//var/www/html/install/
目录
$ cd /var//var/www/html/install/
输入以下命令下载并保存存储在RHCOS_URL
变量中的 URL 中的 RHCOSroot filesystem
镜像文件
$ wget ${RHCOS_URL}/rhcos-live-rootfs.ppc64le.img -o rootfs.img
要为单节点 OpenShift 集群创建 ignition 文件,必须创建install-config.yaml
文件。
输入以下命令创建保存该文件的的工作目录
$ mkdir -p ~/sno-work
输入以下命令导航到~/sno-work
目录
$ cd ~/sno-work
可以使用以下示例文件在~/sno-work
目录中创建所需的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 | 将compute 副本设置为0 。这使得控制平面节点可调度。 |
3 | 将controlPlane 副本设置为1 。结合之前的compute 设置,此设置确保集群在一个节点上运行。 |
4 | 将metadata 名称设置为集群名称。 |
5 | 设置networking 详细信息。OVN-Kubernetes 是单节点集群唯一允许的网络插件类型。 |
6 | 将cidr 值设置为与单节点 OpenShift 集群的子网匹配。 |
7 | 设置安装磁盘驱动器的路径,例如,/dev/disk/by-id/wwn-0x64cd98f04fde100024684cf3034da5c2 。 |
8 | 从 Red Hat OpenShift 集群管理器复制pull secret并将内容添加到此配置设置中。 |
9 | 添加管理主机上的公钥SSH密钥,以便您可以在安装后登录到集群。 |
下载openshift-install
镜像以创建 ignition 文件并将其复制到http
目录。
输入以下命令下载openshift-install-linux-4.12.0
.tar 文件
$ wget https://mirror.openshift.com/pub/openshift-v4/ppc64le/clients/ocp/4.12.0/openshift-install-linux-4.12.0.tar.gz
输入以下命令解压openshift-install-linux-4.12.0.tar.gz
存档
$ tar xzvf openshift-install-linux-4.12.0.tar.gz
输入以下命令:
$ ./openshift-install --dir=~/sno-work create create single-node-ignition-config
输入以下命令创建 ignition 文件
$ cp ~/sno-work/single-node-ignition-config.ign /var/www/html/ignition/sno.ign
输入以下命令恢复/var/www/html
目录的 SELinux 文件
$ restorecon -vR /var/www/html || true
堡垒机现在拥有所有必需的文件,并且已正确配置以安装单节点 OpenShift。
您已设置了堡垒机。
单节点 OpenShift 集群安装分为两个步骤。首先,单节点 OpenShift 逻辑分区 (LPAR) 需要使用 PXE 启动,然后您需要监控安装进度。
使用以下命令使用 netboot 启动 PowerVM
$ lpar_netboot -i -D -f -t ent -m <sno_mac> -s auto -d auto -S <server_ip> -C <sno_ip> -G <gateway> <lpar_name> default_profile <cec_name>
其中
指定单节点 OpenShift 集群的 MAC 地址。
指定单节点 OpenShift 集群的 IP 地址。
指定堡垒机(PXE 服务器)的 IP 地址。
指定网络的网关 IP。
指定 HMC 中的单节点 OpenShift lpar 名称。
指定 sno_lpar 所在的系统名称
单节点 OpenShift LPAR 使用 PXE 启动后,使用openshift-install
命令监控安装进度
引导程序完成后运行以下命令
./openshift-install wait-for bootstrap-complete
成功返回后运行以下命令
./openshift-install wait-for install-complete