This documentation is for a release that is no longer maintained
See documentation for the latest supported version 3 or the latest supported version 4.8.3. 为 OpenShift 安装设置环境
8.3.1. 在置备程序节点上安装 RHEL 复制链接链接已复制到粘贴板!
在网络配置完成后,下一步是在置备程序节点上安装 RHEL 8.x。在安装 OpenShift Container Platform 集群时,安装程序使用 provisioner 节点作为编配器。在本文档中,在置备程序节点上安装 RHEL 超出了范围。但是,选项包括但不局限于使用 RHEL Satellite 服务器、PXE 或安装介质。
执行以下步骤准备环境。
流程
-
通过
ssh
登录到 provisioner 节点。 创建非 root 用户(
kni
)并为该用户提供sudo
权限:useradd kni passwd kni echo "kni ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/kni chmod 0440 /etc/sudoers.d/kni
# useradd kni # passwd kni # echo "kni ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/kni # chmod 0440 /etc/sudoers.d/kni
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为新用户创建
ssh
密钥:su - kni -c "ssh-keygen -t ed25519 -f /home/kni/.ssh/id_rsa -N ''"
# su - kni -c "ssh-keygen -t ed25519 -f /home/kni/.ssh/id_rsa -N ''"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以新用户身份在 provisioner 节点上登录:
su - kni
# su - kni $
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 Red Hat Subscription Manager 注册 provisioner 节点:
sudo subscription-manager register --username=<user> --password=<pass> --auto-attach sudo subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms --enable=rhel-8-for-x86_64-baseos-rpms
$ sudo subscription-manager register --username=<user> --password=<pass> --auto-attach $ sudo subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms --enable=rhel-8-for-x86_64-baseos-rpms
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意有关 Red Hat Subscription Manager 的详情,请查看使用和配置 Red Hat Subscription Manager。
安装以下软件包:
sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitool
$ sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitool
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 修改用户,将
libvirt
组添加到新创建的用户:sudo usermod --append --groups libvirt <user>
$ sudo usermod --append --groups libvirt <user>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重启
firewalld
并启用http
服务:sudo systemctl start firewalld sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --reload
$ sudo systemctl start firewalld $ sudo firewall-cmd --zone=public --add-service=http --permanent $ sudo firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 启动并启用
libvirtd
服务:sudo systemctl enable libvirtd --now
$ sudo systemctl enable libvirtd --now
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建
default
存储池并启动它:sudo virsh pool-define-as --name default --type dir --target /var/lib/libvirt/images sudo virsh pool-start default sudo virsh pool-autostart default
$ sudo virsh pool-define-as --name default --type dir --target /var/lib/libvirt/images $ sudo virsh pool-start default $ sudo virsh pool-autostart default
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置网络。
注意您还可以从 Web 控制台配置网络。
导出
baremetal
网络 NIC 名称:export PUB_CONN=<baremetal_nic_name>
$ export PUB_CONN=<baremetal_nic_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 配置
baremetal
网络:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要使用
provisioning
网络部署,请导出provisioning
网络 NIC 名称:export PROV_CONN=<prov_nic_name>
$ export PROV_CONN=<prov_nic_name>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果要使用
provisioning
网络部署,请配置provisioning
网络:Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意执行这些步骤后
ssh
连接可能会断开。只要无法通过
baremetal
网络路由,IPv6 地址可以是任何地址。在使用 IPv6 地址时,请确保启用了 UEFI,并且将 UEFI PXE 设置设为 IPv6 协议。
在
provisioning
网络连接上配置 IPv4 地址。nmcli connection modify provisioning ipv4.addresses 172.22.0.254/24 ipv4.method manual
$ nmcli connection modify provisioning ipv4.addresses 172.22.0.254/24 ipv4.method manual
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 重新
ssh
到provisioner
节点(如果需要)。ssh kni@provisioner.<cluster-name>.<domain>
# ssh kni@provisioner.<cluster-name>.<domain>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 验证连接桥接是否已正确创建。
sudo nmcli con show
$ sudo nmcli con show
Copy to Clipboard Copied! Toggle word wrap Toggle overflow Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建一个
pull-secret.txt
文件。vim pull-secret.txt
$ vim pull-secret.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在 Web 浏览器中,导航到 Install OpenShift on Bare Metal with Installer-provisioned infrastructure,然后滚动到 Downloads 部分。点 Copy pull secret。将内容粘贴到
pull-secret.txt
文件中,并将内容保存到kni
用户的主目录中。
8.3.3. 检索 OpenShift Container Platform 安装程序 复制链接链接已复制到粘贴板!
使用安装程序的 latest-4.x
版本来部署最新的 OpenShift Container Platform 发行版本:
export VERSION=latest-4.8
$ export VERSION=latest-4.8
export RELEASE_IMAGE=$(curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$VERSION/release.txt | grep 'Pull From: quay.io' | awk -F ' ' '{print $3}')
8.3.4. 提取 OpenShift Container Platform 安装程序 复制链接链接已复制到粘贴板!
在获取安装程序后,下一步就是展开它。
流程
设置环境变量:
export cmd=openshift-baremetal-install export pullsecret_file=~/pull-secret.txt export extract_dir=$(pwd)
$ export cmd=openshift-baremetal-install $ export pullsecret_file=~/pull-secret.txt $ export extract_dir=$(pwd)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取
oc
二进制文件:curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$VERSION/openshift-client-linux.tar.gz | tar zxvf - oc
$ curl -s https://mirror.openshift.com/pub/openshift-v4/clients/ocp/$VERSION/openshift-client-linux.tar.gz | tar zxvf - oc
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 展开安装程序:
sudo cp oc /usr/local/bin oc adm release extract --registry-config "${pullsecret_file}" --command=$cmd --to "${extract_dir}" ${RELEASE_IMAGE} sudo cp openshift-baremetal-install /usr/local/bin
$ sudo cp oc /usr/local/bin $ oc adm release extract --registry-config "${pullsecret_file}" --command=$cmd --to "${extract_dir}" ${RELEASE_IMAGE} $ sudo cp openshift-baremetal-install /usr/local/bin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3.5. 创建 RHCOS 镜像缓存(可选) 复制链接链接已复制到粘贴板!
要使用镜像缓存,您必须下载两个镜像:Bootstrap 虚拟机使用的 Red Hat Enterprise Linux CoreOS(RHCOS)镜像,以及安装程序用来置备不同节点的 RHCOS 镜像。镜像缓存是可选的,但在有限带宽的网络中运行安装程序时特别有用。
如果您在带有有限带宽的网络上运行安装程序,而 RHCOS 镜像下载时间超过 15 到 20 分钟,则安装程序会超时。在这样的情况下,可以将镜像缓存到网页服务器上。
安装包含镜像的容器。
流程
安装
podman
:sudo dnf install -y podman
$ sudo dnf install -y podman
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 打开防火墙端口
8080
以用于 RHCOS 镜像缓存:sudo firewall-cmd --add-port=8080/tcp --zone=public --permanent
$ sudo firewall-cmd --add-port=8080/tcp --zone=public --permanent
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo firewall-cmd --reload
$ sudo firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建用于存储
bootstraposimage
和clusterosimage
的目录:mkdir /home/kni/rhcos_image_cache
$ mkdir /home/kni/rhcos_image_cache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为新创建的目录设置适当的 SELinux 上下文:
sudo semanage fcontext -a -t httpd_sys_content_t "/home/kni/rhcos_image_cache(/.*)?"
$ sudo semanage fcontext -a -t httpd_sys_content_t "/home/kni/rhcos_image_cache(/.*)?"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow sudo restorecon -Rv rhcos_image_cache/
$ sudo restorecon -Rv rhcos_image_cache/
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 从安装程序获取提交 ID:
export COMMIT_ID=$(/usr/local/bin/openshift-baremetal-install version | grep '^built from commit' | awk '{print $4}')
$ export COMMIT_ID=$(/usr/local/bin/openshift-baremetal-install version | grep '^built from commit' | awk '{print $4}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 这个 ID 决定了安装程序需要下载的镜像。
获取安装程序将部署到节点上的 RHCOS 镜像的 URI:
export RHCOS_OPENSTACK_URI=$(curl -s -S https://raw.githubusercontent.com/openshift/installer/$COMMIT_ID/data/data/rhcos.json | jq .images.openstack.path | sed 's/"//g')
$ export RHCOS_OPENSTACK_URI=$(curl -s -S https://raw.githubusercontent.com/openshift/installer/$COMMIT_ID/data/data/rhcos.json | jq .images.openstack.path | sed 's/"//g')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取安装程序要在 bootstrap 虚拟机上部署的 RHCOS 镜像的 URI:
export RHCOS_QEMU_URI=$(curl -s -S https://raw.githubusercontent.com/openshift/installer/$COMMIT_ID/data/data/rhcos.json | jq .images.qemu.path | sed 's/"//g')
$ export RHCOS_QEMU_URI=$(curl -s -S https://raw.githubusercontent.com/openshift/installer/$COMMIT_ID/data/data/rhcos.json | jq .images.qemu.path | sed 's/"//g')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取发布镜像的路径:
export RHCOS_PATH=$(curl -s -S https://raw.githubusercontent.com/openshift/installer/$COMMIT_ID/data/data/rhcos.json | jq .baseURI | sed 's/"//g')
$ export RHCOS_PATH=$(curl -s -S https://raw.githubusercontent.com/openshift/installer/$COMMIT_ID/data/data/rhcos.json | jq .baseURI | sed 's/"//g')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取要在 bootstrap 虚拟机上部署的 RHCOS 镜像的 SHA 哈希:
export RHCOS_QEMU_SHA_UNCOMPRESSED=$(curl -s -S https://raw.githubusercontent.com/openshift/installer/$COMMIT_ID/data/data/rhcos.json | jq -r '.images.qemu["uncompressed-sha256"]')
$ export RHCOS_QEMU_SHA_UNCOMPRESSED=$(curl -s -S https://raw.githubusercontent.com/openshift/installer/$COMMIT_ID/data/data/rhcos.json | jq -r '.images.qemu["uncompressed-sha256"]')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 获取要在节点上部署的 RHCOS 镜像的 SHA 哈希:
export RHCOS_OPENSTACK_SHA_COMPRESSED=$(curl -s -S https://raw.githubusercontent.com/openshift/installer/$COMMIT_ID/data/data/rhcos.json | jq -r '.images.openstack.sha256')
$ export RHCOS_OPENSTACK_SHA_COMPRESSED=$(curl -s -S https://raw.githubusercontent.com/openshift/installer/$COMMIT_ID/data/data/rhcos.json | jq -r '.images.openstack.sha256')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 下载镜像并将其放在
/home/kni/rhcos_image_cache
目录中:curl -L ${RHCOS_PATH}${RHCOS_QEMU_URI} -o /home/kni/rhcos_image_cache/${RHCOS_QEMU_URI}
$ curl -L ${RHCOS_PATH}${RHCOS_QEMU_URI} -o /home/kni/rhcos_image_cache/${RHCOS_QEMU_URI}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow curl -L ${RHCOS_PATH}${RHCOS_OPENSTACK_URI} -o /home/kni/rhcos_image_cache/${RHCOS_OPENSTACK_URI}
$ curl -L ${RHCOS_PATH}${RHCOS_OPENSTACK_URI} -o /home/kni/rhcos_image_cache/${RHCOS_OPENSTACK_URI}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于新创建的文件,确认 SELinux 类型为
httpd_sys_content_t
:ls -Z /home/kni/rhcos_image_cache
$ ls -Z /home/kni/rhcos_image_cache
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建 pod:
podman run -d --name rhcos_image_cache \ -v /home/kni/rhcos_image_cache:/var/www/html \ -p 8080:8080/tcp \ quay.io/centos7/httpd-24-centos7:latest
$ podman run -d --name rhcos_image_cache \ -v /home/kni/rhcos_image_cache:/var/www/html \ -p 8080:8080/tcp \ quay.io/centos7/httpd-24-centos7:latest
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 以上命令会创建一个名为
rhcos_image_cache
的缓存 webserver,它将提供用于部署的镜像。第一个镜像${RHCOS_PATH}${RHCOS_QEMU_URI}?sha256=${RHCOS_QEMU_SHA_UNCOMPRESSED}
是bootstrapOSImage
,第二个镜像${RHCOS_PATH}${RHCOS_OPENSTACK_URI}?sha256= ${RHCOS_OPENSTACK_SHA_COMPRESSED}
是install-config.yaml
文件中的clusterOSImage
。生成
bootstrapOSImage
和clusterOSImage
配置:export BAREMETAL_IP=$(ip addr show dev baremetal | awk '/inet /{print $2}' | cut -d"/" -f1)
$ export BAREMETAL_IP=$(ip addr show dev baremetal | awk '/inet /{print $2}' | cut -d"/" -f1)
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export RHCOS_OPENSTACK_SHA256=$(zcat /home/kni/rhcos_image_cache/${RHCOS_OPENSTACK_URI} | sha256sum | awk '{print $1}')
$ export RHCOS_OPENSTACK_SHA256=$(zcat /home/kni/rhcos_image_cache/${RHCOS_OPENSTACK_URI} | sha256sum | awk '{print $1}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export RHCOS_QEMU_SHA256=$(zcat /home/kni/rhcos_image_cache/${RHCOS_QEMU_URI} | sha256sum | awk '{print $1}')
$ export RHCOS_QEMU_SHA256=$(zcat /home/kni/rhcos_image_cache/${RHCOS_QEMU_URI} | sha256sum | awk '{print $1}')
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export CLUSTER_OS_IMAGE="http://${BAREMETAL_IP}:8080/${RHCOS_OPENSTACK_URI}?sha256=${RHCOS_OPENSTACK_SHA256}"
$ export CLUSTER_OS_IMAGE="http://${BAREMETAL_IP}:8080/${RHCOS_OPENSTACK_URI}?sha256=${RHCOS_OPENSTACK_SHA256}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow export BOOTSTRAP_OS_IMAGE="http://${BAREMETAL_IP}:8080/${RHCOS_QEMU_URI}?sha256=${RHCOS_QEMU_SHA256}"
$ export BOOTSTRAP_OS_IMAGE="http://${BAREMETAL_IP}:8080/${RHCOS_QEMU_URI}?sha256=${RHCOS_QEMU_SHA256}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo "${RHCOS_OPENSTACK_SHA256} ${RHCOS_OPENSTACK_URI}" > /home/kni/rhcos_image_cache/rhcos-ootpa-latest.qcow2.sha256sum
$ echo "${RHCOS_OPENSTACK_SHA256} ${RHCOS_OPENSTACK_URI}" > /home/kni/rhcos_image_cache/rhcos-ootpa-latest.qcow2.sha256sum
Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo " bootstrapOSImage=${BOOTSTRAP_OS_IMAGE}"
$ echo " bootstrapOSImage=${BOOTSTRAP_OS_IMAGE}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow echo " clusterOSImage=${CLUSTER_OS_IMAGE}"
$ echo " clusterOSImage=${CLUSTER_OS_IMAGE}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在
platform.baremetal
下将所需的配置添加到install-config.yaml
文件中:platform: baremetal: bootstrapOSImage: http://<BAREMETAL_IP>:8080/<RHCOS_QEMU_URI>?sha256=<RHCOS_QEMU_SHA256> clusterOSImage: http://<BAREMETAL_IP>:8080/<RHCOS_OPENSTACK_URI>?sha256=<RHCOS_OPENSTACK_SHA256>
platform: baremetal: bootstrapOSImage: http://<BAREMETAL_IP>:8080/<RHCOS_QEMU_URI>?sha256=<RHCOS_QEMU_SHA256> clusterOSImage: http://<BAREMETAL_IP>:8080/<RHCOS_OPENSTACK_URI>?sha256=<RHCOS_OPENSTACK_SHA256>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 详情请查看"配置文件"部分。
8.3.6. 配置文件 复制链接链接已复制到粘贴板!
8.3.6.1. 配置 install-config.yaml 文件 复制链接链接已复制到粘贴板!
install-config.yaml
文件需要一些额外的信息。大多数信息用于指导安装程序,以便安装的集群有可用硬件的足够信息以可以完全管理它们。
配置
install-config.yaml
。更改适当的变量以匹配环境,包括pullSecret
和sshKey
。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建用于存储集群配置的目录。
mkdir ~/clusterconfigs cp install-config.yaml ~/clusterconfigs
$ mkdir ~/clusterconfigs $ cp install-config.yaml ~/clusterconfigs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在安装 OpenShift Container Platform 集群前,请确保关闭所有裸机节点。
ipmitool -I lanplus -U <user> -P <password> -H <management-server-ip> power off
$ ipmitool -I lanplus -U <user> -P <password> -H <management-server-ip> power off
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果以前的部署尝试中保留任何旧的 bootstrap 资源,则删除旧的 bootstrap 资源。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3.6.2. 在 install-config.yaml 文件中设置代理设置(可选) 复制链接链接已复制到粘贴板!
要使用代理部署 OpenShift Container Platform 集群,请对 install-config.yaml
文件进行以下更改。
以下是带有值的 noProxy
示例。
noProxy: .example.com,172.22.0.0/24,10.10.0.0/24
noProxy: .example.com,172.22.0.0/24,10.10.0.0/24
启用代理后,请在对应的键/值对中设置代理的适当值。
主要考虑:
-
如果代理没有 HTTPS 代理,将
httpsProxy
的值从https://
改为http://
。 -
如果使用 provisioning 网络,将其包含在
noProxy
设置中,否则安装程序将失败。 -
将所有代理设置设置为 provisioner 节点中的环境变量。例如:
HTTP_PROXY
、HTTPS_PROXY
和NO_PROXY
。
使用 IPv6 置备时,您无法在 noProxy
设置中定义 CIDR 地址块。您必须单独定义每个地址。
要在没有 provisioning
网络的情况下部署 OpenShift Container Platform 集群,需要对 install-config.yaml
文件进行以下更改。
platform: baremetal: apiVIP: <apiVIP> ingressVIP: <ingress/wildcard VIP> provisioningNetwork: "Disabled"
platform:
baremetal:
apiVIP: <apiVIP>
ingressVIP: <ingress/wildcard VIP>
provisioningNetwork: "Disabled"
- 1
- 如果需要,添加
provisioningNetwork
配置设置并将其设置为Disabled
。
PXE 引导需要 provisioning
网络。如果您在没有 provisioning
网络的情况下部署,则必须使用虚拟介质 BMC 寻址选项,如 redfish-virtualmedia
或 idrac-virtualmedia
。详情请查看 "Redfish 虚拟介质 for HPE iLO" 部分的"适用于 HPE iLO 的 BMC 寻址"部分或"适用于戴尔 iDRAC 的"红帽虚拟媒体"部分中的"红帽虚拟介质"。
8.3.6.4. 修改 dual-stack 网络的 install-config.yaml 文件(可选) 复制链接链接已复制到粘贴板!
要使用双栈网络部署 OpenShift Container Platform 集群,请编辑 install-config.yaml
文件中的 machineNetwork
、clusterNetwork
和 serviceNetwork
配置设置。每个设置必须分别有两个 CIDR 条目。确保第一个 CIDR 条目是 IPv4 设置,第二个 CIDR 条目是 IPv6 设置。
使用双栈网络时,API VIP IP 地址和 Ingress VIP 地址必须是主 IP 地址系列。目前,红帽不支持将 IPv6 作为主要 IP 地址系列的双栈 VIP 或双栈网络。但是,红帽确实支持将 IPv4 作为主要 IP 地址系列的双栈网络。因此,IPv4 条目必须放在 IPv6 条目前面。
8.3.6.5. 在 install-config.yaml 文件中配置管理的安全引导(可选) 复制链接链接已复制到粘贴板!
在使用 Redfish BMC 寻址(如 redfish
、redfish-virtualmedia
或 idrac-virtualmedia
)部署安装程序置备的集群时,您可以启用受管安全引导。要启用管理的安全引导,请在每个节点中添加 bootMode
配置设置:
示例
请参阅"先决条件"中的"配置节点",以确保节点支持管理的安全引导。如果节点不支持管理的安全引导,请参阅"配置节点"部分中的"手动配置安全引导的节点"。手动配置安全引导需要 Redfish 虚拟介质。
红帽不支持使用 IPMI 进行安全引导,因为 IPMI 不提供安全引导管理功能。
8.3.6.6. 额外的 install-config 参数 复制链接链接已复制到粘贴板!
以下表格中包括了 install-config.yaml
文件所需的参数、hosts
参数和 bmc
参数。
参数 | 默认 | 描述 |
---|---|---|
|
集群的域名。例如: | |
|
|
节点的引导模式。选项为 |
|
| |
|
| |
metadata: name:
|
给 OpenShift Container Platform 集群的名称。例如, | |
networking: machineCIDR:
|
外部网络的公共 CIDR(Classless Inter-Domain Routing)。例如: | |
compute: - name: worker
| OpenShift Container Platform 集群需要为 worker(或 compute)节点提供名称,即使没有节点也是如此。 | |
compute: replicas: 2
| Replicas 设置 OpenShift Container Platform 集群中的 worker(或 compute)节点的数量。 | |
controlPlane: name: master
| OpenShift Container Platform 集群需要一个 control plane(master)节点的名称。 | |
controlPlane: replicas: 3
| replicas 设置作为 OpenShift Container Platform 集群一部分的 control plane(master)节点的数量。 | |
|
连接到 | |
| 用于没有平台配置的机器池的默认配置。 | |
| (可选)用于 Kubernetes API 通信的虚拟 IP 地址。
此设置必须在 | |
|
|
|
| (可选)入口流量的虚拟 IP 地址。
此设置必须在 |
参数 | 默认 | 描述 |
---|---|---|
|
|
定义 |
|
|
用于置备的网络的 CIDR。在 |
|
|
运行置备服务的集群中的 IP 地址。默认为 |
|
|
在安装程序部署 control plane(master)节点时运行置备服务的 bootstrap 虚拟机上的 IP 地址。默认为 |
|
|
附加到 |
|
|
附加到 |
| 用于没有平台配置的机器池的默认配置。 | |
|
用于覆盖 bootstrap 节点的默认操作系统镜像的 URL。URL 必须包含镜像的 SHA-256 哈希。例如: | |
|
用于覆盖集群节点默认操作系统的 URL。URL 必须包含镜像的 SHA-256 哈希。例如: | |
|
| |
| 将此参数设置为环境中使用的适当 HTTP 代理。 | |
| 将此参数设置为环境中使用的适当 HTTPS 代理。 | |
| 将这个参数设置为适合环境中代理使用的排除项。 |
Hosts
hosts
参数是用于构建集群的独立裸机资产列表。
Name | 默认 | 描述 |
---|---|---|
|
与详情关联的 | |
|
裸机节点的角色。 | |
| 基板管理控制器的连接详情。如需了解更多详细信息,请参阅 BMC 寻址部分。 | |
|
其主机用于 注意
如果您禁用了 |
8.3.6.7. BMC 地址 复制链接链接已复制到粘贴板!
大多数供应商支持使用智能平台管理接口 (IPMI) 寻址的基板管理控制器 (BMC)。IPMI 以不加密的方式进行通讯。它适用于数据中心内通过安全或专用管理网络使用。请与您的厂商联系以了解是否支持 Redfish 网络引导。Redfish 可以为聚合的、混合的 IT 和软件定义数据中心(SDDC)提供简单和安全的管理。RedFish 是人类可读的,能够使用通用的互联网和 Web 服务标准将信息直接公开给现代工具链。如果您的硬件不支持 Redfish 网络引导,请使用 IPMI。
IPMI
使用 IPMI 的主机使用 ipmi://<out-of-band-ip>:<port>
的地址格式,如果未指定,则默认为端口 623
。以下示例演示了 install-config.yaml
文件中的 IPMI 配置。
当 PXE 引导使用 IPMI 进行 BMC 寻址时,需要 provisioning
网络。没有 provisioning
网络,就无法 PXE 引导主机。如果您在没有 provisioning
网络的情况下部署,则必须使用虚拟介质 BMC 寻址选项,如 redfish-virtualmedia
或 idrac-virtualmedia
。详情请查看 "Redfish 虚拟介质 for HPE iLO" 部分的"适用于 HPE iLO 的 BMC 寻址"部分或"适用于戴尔 iDRAC 的"红帽虚拟媒体"部分中的"红帽虚拟介质"。
Redfish 网络引导
要启用 Redfish,使用 redfish://
或 redfish+http://
禁用 TLS。安装程序需要主机名或者 IP 地址以及到系统 ID 的路径。以下示例演示了 install-config.yaml
文件中的 Redfish 配置。
虽然建议为带外管理地址提供颁发机构证书,但在使用自签名证书时,您必须在 bmc
配置中包括 disableCertificateVerification: True
。以下示例演示了在 install-config.yaml
文件中使用 disableCertificateVerification: True
配置参数的 Redfish 配置。
8.3.6.8. Dell iDRAC 的 BMC 寻址 复制链接链接已复制到粘贴板!
每个 bmc
条目的 address
字段都是连接到 OpenShift Container Platform 集群节点的 URL,包括 URL 方案中的控制器类型以及在网络中的位置。
- 1
address
配置设置指定协议。
对于 Dell 硬件,红帽支持 Dell Remote Access Controller(iDRAC)虚拟介质、Redfish 网络启动和 IPMI。
协议 | 地址格式 |
---|---|
iDRAC 虚拟介质 |
|
Redfish 网络引导 |
|
IPMI |
|
使用 idrac-virtualmedia
作为 Redfish 虚拟介质的协议。redfish-virtualmedia
无法在 Dell 硬件上工作。Dell 的 idrac-virtualmedia
使用带有 Dell 的 OEM 扩展的 Redfish 标准。
详情请查看以下部分。
Dell iDRAC 的 redfish 虚拟介质
对于 Dell 服务器中的 Redfish Virtual Media,在 address
设置中使用 idrac-virtualmedia://
。使用 redfish-virtualmedia://
将无法正常工作。
以下示例演示了在 install-config.yaml
文件中使用 iDRAC 虚拟介质。
虽然建议为带外管理地址提供颁发机构证书,但在使用自签名证书时,您必须在 bmc
配置中包括 disableCertificateVerification: True
。以下示例演示了在 install-config.yaml
文件中使用 disableCertificateVerification: True
配置参数的 Redfish 配置。
目前,只有带有 iDRAC 固件版本 4.20.20.20
到 04.40.00.00
的 Dell 支持 Redfish,用于裸机部署上的安装程序置备的安装。版本 04.40.00.00
中存在一个已知问题。在 iDRAC 9 固件版本 04.40.00.00
中,Virtual Console 插件默认为 eHTML5
,这会导致 InsertVirtualMedia 工作流出现问题。将插件设置为 HTML5
以避免出现这个问题。菜单路径为: Configuration
通过 iDRAC 控制台,确保 OpenShift Container Platform 集群节点带有 AutoAttach Enabled。菜单路径为: Configuration AutoAttach
。
使用 idrac-virtualmedia://
作为 Redfish 虚拟介质的协议。使用 redfish-virtualmedia://
不适用于 Dell 硬件,因为 idrac-virtualmedia://
协议与 Ironic 中的 idrac
硬件类型和 Redfish 协议对应。Dell 的 idrac-virtualmedia://
协议使用带有 Dell 的 OEM 扩展的 Redfish 标准。Ironic 还支持 WSMAN 协议的 idrac
类型。因此,您必须指定 idrac-virtualmedia://
,这样才能避免在 Dell 硬件中选择使用带有虚拟介质的 Redfish 时出现意外行为。
iDRAC 的 redfish 网络引导
要启用 Redfish,请使用 redfish://
或 redfish+http://
禁用 TLS。安装程序需要主机名或者 IP 地址以及到系统 ID 的路径。以下示例演示了 install-config.yaml
文件中的 Redfish 配置。
虽然建议为带外管理地址提供颁发机构证书,但在使用自签名证书时,您必须在 bmc
配置中包括 disableCertificateVerification: True
。以下示例演示了在 install-config.yaml
文件中使用 disableCertificateVerification: True
配置参数的 Redfish 配置。
目前,只有带有 iDRAC 固件版本 4.20.20.20
到 04.40.00.00
的 Dell 硬件支持 Redfish,用于裸机部署上的安装程序置备的安装。版本 04.40.00.00
中存在一个已知问题。在 iDRAC 9 固件版本 04.40.00.00
中,Virtual Console 插件默认为 eHTML5
,这会导致 InsertVirtualMedia 工作流出现问题。将插件设置为 HTML5
以避免出现这个问题。菜单路径为: Configuration
通过 iDRAC 控制台,确保 OpenShift Container Platform 集群节点带有 AutoAttach Enabled。菜单路径是: Configuration
redfish://
URL 协议与 Ironic 中的 redfish
硬件类型对应。
8.3.6.9. HPE iLO 的 BMC 地址 复制链接链接已复制到粘贴板!
每个 bmc
条目的 address
字段都是连接到 OpenShift Container Platform 集群节点的 URL,包括 URL 方案中的控制器类型以及在网络中的位置。
- 1
address
配置设置指定协议。
对于 HPE 集成的 Lights Out(iLO),红帽支持红帽虚拟化虚拟媒体、RedFish 网络启动和 IPMI。
协议 | 地址格式 |
---|---|
redfish 虚拟介质 |
|
Redfish 网络引导 |
|
IPMI |
|
详情请查看以下部分。
HPE iLO 的 redfish 虚拟介质
要为 HPE 服务器启用 Redfish 虚拟介质,在 address
设置中使用 redfish-virtualmedia://
。以下示例演示了在 install-config.yaml
文件中使用 Redfish 虚拟介质。
虽然建议为带外管理地址提供颁发机构证书,但在使用自签名证书时,您必须在 bmc
配置中包括 disableCertificateVerification: True
。以下示例演示了在 install-config.yaml
文件中使用 disableCertificateVerification: True
配置参数的 Redfish 配置。
在运行 iLO4 的 9 代系统中不支持 Redfish 虚拟介质,因为 Ironic 不支持使用虚拟介质的 iLO4。
HPE iLO 的 redfish 网络引导
要启用 Redfish,使用 redfish://
或 redfish+http://
禁用 TLS。安装程序需要主机名或者 IP 地址以及到系统 ID 的路径。以下示例演示了 install-config.yaml
文件中的 Redfish 配置。
虽然建议为带外管理地址提供颁发机构证书,但在使用自签名证书时,您必须在 bmc
配置中包括 disableCertificateVerification: True
。以下示例演示了在 install-config.yaml
文件中使用 disableCertificateVerification: True
配置参数的 Redfish 配置。
8.3.6.10. Fujitsu iRMC 的 BMC 寻址 复制链接链接已复制到粘贴板!
每个 bmc
条目的 address
字段都是连接到 OpenShift Container Platform 集群节点的 URL,包括 URL 方案中的控制器类型以及在网络中的位置。
- 1
address
配置设置指定协议。
对于 Fujitsu 硬件,红帽支持集成远程管理控制器(iRMC)和 IPMI。
协议 | 地址格式 |
---|---|
iRMC |
|
IPMI |
|
iRMC
Fujitsu 节点可以使用 irmc://<out-of-band-ip&
gt;,默认为端口 443。
以下示例演示了 install-config.yaml
文件中的 iRMC 配置。
目前,Fujitsu 支持 iRMC S5 固件版本 3.05P 及更高版本,用于裸机上的安装程序置备安装。
8.3.6.11. Root device hints 复制链接链接已复制到粘贴板!
rootDeviceHints
参数使安装程序能够将 Red Hat Enterprise Linux CoreOS(RHCOS)镜像置备到特定设备。安装程序会按照发现设备的顺序检查设备,并将发现的值与 hint 值进行比较。安装程序会使用第一个与 hint 值匹配的发现设备。该配置可包括多个 hint,但只有与所有 hint 都匹配的设备才会被安装程序选择。
子字段 | 描述 |
---|---|
|
包含类似 |
|
包含类似 |
| 包含特定厂商的设备标识符的字符串。hint 可以是实际值的子字符串。 |
| 包含该设备厂商或制造商名称的字符串。hint 可以是实际值的子字符串。 |
| 包含设备序列号的字符串。hint 必须与实际值完全匹配。 |
| 代表设备最小值的一个整数,以 GB 为单位。 |
| 包含唯一存储标识符的字符串。hint 必须与实际值完全匹配。 |
| 包含唯一存储标识符且附加厂商扩展的字符串。hint 必须与实际值完全匹配。 |
| 包含唯一厂商存储标识符的字符串。hint 必须与实际值完全匹配。 |
| 指明该设备为旋转磁盘(true)还是非旋转磁盘(false)的布尔值。 |
示例用法
8.3.6.12. 创建 OpenShift Container Platform 清单 复制链接链接已复制到粘贴板!
创建 OpenShift Container Platform 清单。
./openshift-baremetal-install --dir ~/clusterconfigs create manifests
$ ./openshift-baremetal-install --dir ~/clusterconfigs create manifests
Copy to Clipboard Copied! Toggle word wrap Toggle overflow INFO Consuming Install Config from target directory WARNING Making control-plane schedulable by setting MastersSchedulable to true for Scheduler cluster settings WARNING Discarding the OpenShift Manifest that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
INFO Consuming Install Config from target directory WARNING Making control-plane schedulable by setting MastersSchedulable to true for Scheduler cluster settings WARNING Discarding the OpenShift Manifest that was provided in the target directory because its dependencies are dirty and it needs to be regenerated
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3.6.13. 为断开连接的集群配置 NTP(可选) 复制链接链接已复制到粘贴板!
OpenShift Container Platform 在集群节点上安装 chrony
网络时间协议(NTP)服务。
OpenShift Container Platform 节点必须同意正确运行的日期和时间。当 worker 节点从 control plane 节点上的 NTP 服务器检索日期和时间时,它会启用没有连接到可路由网络的集群的安装和操作,因而无法访问较高级别的 NTP 服务器。
流程
创建 Butane 配置(
99-master-chrony-conf-override.bu
),包括 control plane 节点的chrony.conf
文件的内容。注意有关 Butane 的信息,请参阅"使用 Butane 创建机器配置"。
Butane 配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 您必须将
<cluster-name>
替换为集群的名称,并将<domain>
替换为完全限定域名。
使用 Butane 生成
MachineConfig
对象文件99-master-chrony-conf-override.yaml
,包含要传送到 control plane 节点的配置:butane 99-master-chrony-conf-override.bu -o 99-master-chrony-conf-override.yaml
$ butane 99-master-chrony-conf-override.bu -o 99-master-chrony-conf-override.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为引用 control plane 节点上的 NTP 服务器的 worker 节点创建 Butane 配置
99-worker-chrony-conf-override.bu
,包括chrony.conf
文件的内容。Butane 配置示例
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 您必须将
<cluster-name>
替换为集群的名称,并将<domain>
替换为完全限定域名。
使用 Butane 生成
MachineConfig
对象文件99-worker-chrony-conf-override.yaml
,包含要传送到 worker 节点的配置:butane 99-worker-chrony-conf-override.bu -o 99-worker-chrony-conf-override.yaml
$ butane 99-worker-chrony-conf-override.bu -o 99-worker-chrony-conf-override.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3.6.14. (可选)配置在 control plane 上运行的网络组件 复制链接链接已复制到粘贴板!
您可以配置网络组件,使其仅在 control plane 节点上运行。默认情况下,OpenShift Container Platform 允许机器配置池中的任何节点托管 ingressVIP
虚拟 IP 地址。但是,某些环境在与 control plane 节点独立的子网中部署 worker 节点。在单独的子网中部署远程 worker 时,您必须将 ingressVIP
虚拟 IP 地址专门用于 control plane 节点。
流程
进入存储
install-config.yaml
文件的目录:cd ~/clusterconfigs
$ cd ~/clusterconfigs
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 切换到
manifests
子目录:cd manifests
$ cd manifests
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建名为
cluster-network-avoid-workers-99-config.yaml
的文件:touch cluster-network-avoid-workers-99-config.yaml
$ touch cluster-network-avoid-workers-99-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在编辑器中打开
cluster-network-avoid-workers-99-config.yaml
文件,并输入描述 Operator 配置的自定义资源(CR):Copy to Clipboard Copied! Toggle word wrap Toggle overflow 此清单将
ingressVIP
虚拟 IP 地址放在 control plane 节点上。另外,此清单仅在 control plane 节点上部署以下进程:-
openshift-ingress-operator
-
keepalived
-
-
保存
cluster-network-avoid-workers-99-config.yaml
文件。 创建
manifests/cluster-ingress-default-ingresscontroller.yaml
文件:Copy to Clipboard Copied! Toggle word wrap Toggle overflow -
考虑备份
manifests
目录。安装程序会在创建集群时删除manifests/
目录。 通过将
mastersSchedulable
字段设置为true
来修改cluster-scheduler-02-config.yml
清单,使 control plane 节点可以调度。control plane 节点默认不可调度。例如:sed -i "s;mastersSchedulable: false;mastersSchedulable: true;g" clusterconfigs/manifests/cluster-scheduler-02-config.yml
$ sed -i "s;mastersSchedulable: false;mastersSchedulable: true;g" clusterconfigs/manifests/cluster-scheduler-02-config.yml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意如果在完成此步骤后 control plane 节点不可调度,则部署集群将失败。
8.3.7. 创建断开连接的 registry(可选) 复制链接链接已复制到粘贴板!
在某些情况下,您可能想要使用安装 registry 的本地副本安装 OpenShift Container Platform 集群。这可能会提高网络效率,因为集群节点位于无法访问互联网的网络中。
一个本地镜像的 registry 副本需要以下内容:
- registry 节点的证书。这可以是自签名证书。
- 系统中的容器将服务的 Web 服务器。
- 一个更新的 pull secret,其中包含证书和本地存储库信息。
在 registry 节点上创建断开连接的 registry 是可选的。在后续的小节中可以看到它们是可选的,只有在 registry 节点上创建断开连接的 registry 时才需要执行相关的步骤。在 registry 节点上创建断开连接的 registry 时,您应该执行标记为"(可选)" 的子章节。
8.3.7.1. 准备 registry 节点以托管已镜像的 registry(可选) 复制链接链接已复制到粘贴板!
对 registry 节点进行以下更改。
流程
打开 registry 节点上的防火墙端口。
sudo firewall-cmd --add-port=5000/tcp --zone=libvirt --permanent sudo firewall-cmd --add-port=5000/tcp --zone=public --permanent sudo firewall-cmd --reload
$ sudo firewall-cmd --add-port=5000/tcp --zone=libvirt --permanent $ sudo firewall-cmd --add-port=5000/tcp --zone=public --permanent $ sudo firewall-cmd --reload
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 为 registry 节点安装所需的软件包。
sudo yum -y install python3 podman httpd httpd-tools jq
$ sudo yum -y install python3 podman httpd httpd-tools jq
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 创建保存存储库信息的目录结构。
sudo mkdir -p /opt/registry/{auth,certs,data}
$ sudo mkdir -p /opt/registry/{auth,certs,data}
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3.7.2. 生成自签名证书(可选) 复制链接链接已复制到粘贴板!
为 registry 节点生成自签名证书,并将其放在 /opt/registry/certs
目录中。
流程
根据情况调整证书信息。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意当替换
<Country Name>
时,请确保它只包含两个字母。例如,US
。使用新证书更新 registry 节点的
ca-trust
。sudo cp /opt/registry/certs/domain.crt /etc/pki/ca-trust/source/anchors/ sudo update-ca-trust extract
$ sudo cp /opt/registry/certs/domain.crt /etc/pki/ca-trust/source/anchors/ $ sudo update-ca-trust extract
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3.7.3. 创建 registry podman 容器(可选) 复制链接链接已复制到粘贴板!
registry 容器使用 /opt/registry
目录来保存证书、认证文件以及存储其数据文件。
registry 容器使用 httpd
,并需要 htpasswd
文件进行身份验证。
流程
在
/opt/registry/auth
中创建一个htpasswd
文件供容器使用。htpasswd -bBc /opt/registry/auth/htpasswd <user> <passwd>
$ htpasswd -bBc /opt/registry/auth/htpasswd <user> <passwd>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<user>
替换为用户名,将<passwd>
替换为密码。创建并启动 registry 容器。
Copy to Clipboard Copied! Toggle word wrap Toggle overflow podman start ocpdiscon-registry
$ podman start ocpdiscon-registry
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3.7.4. 复制和更新 pull-secret(可选) 复制链接链接已复制到粘贴板!
将 pull secret 文件从置备程序节点复制到 registry 节点,并修改该文件,使其包含新 registry 节点的身份验证信息。
流程
复制
pull-secret.txt
文件。scp kni@provisioner:/home/kni/pull-secret.txt pull-secret.txt
$ scp kni@provisioner:/home/kni/pull-secret.txt pull-secret.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 registry 节点的完全限定域名更新
host_fqdn
环境变量。host_fqdn=$( hostname --long )
$ host_fqdn=$( hostname --long )
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用用于创建
htpasswd
文件的http
凭证的 base64 编码来更新b64auth
环境变量。b64auth=$( echo -n '<username>:<passwd>' | openssl base64 )
$ b64auth=$( echo -n '<username>:<passwd>' | openssl base64 )
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将
<username>
替换为用户名,将<passwd>
替换为密码。设置
AUTHSTRING
环境变量使用base64
授权字符串。$USER
变量是包含当前用户名称的环境变量。AUTHSTRING="{\"$host_fqdn:5000\": {\"auth\": \"$b64auth\",\"email\": \"$USER@redhat.com\"}}"
$ AUTHSTRING="{\"$host_fqdn:5000\": {\"auth\": \"$b64auth\",\"email\": \"$USER@redhat.com\"}}"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 更新
pull-secret.txt
文件。jq ".auths += $AUTHSTRING" < pull-secret.txt > pull-secret-update.txt
$ jq ".auths += $AUTHSTRING" < pull-secret.txt > pull-secret-update.txt
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3.7.5. 对存储库进行镜像(可选) 复制链接链接已复制到粘贴板!
流程
将 provisioner 节点中的
oc
二进制文件复制到 registry 节点。sudo scp kni@provisioner:/usr/local/bin/oc /usr/local/bin
$ sudo scp kni@provisioner:/usr/local/bin/oc /usr/local/bin
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 设置所需的环境变量。
设置发行版本:
VERSION=<release_version>
$ VERSION=<release_version>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于
<release_version>
,请指定与 OpenShift Container Platform 版本对应的标签,如4.8
。设置本地 registry 名称和主机端口:
LOCAL_REG='<local_registry_host_name>:<local_registry_host_port>'
$ LOCAL_REG='<local_registry_host_name>:<local_registry_host_port>'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于
<local_registry_host_name>
,请指定镜像存储库的 registry 域名;对于<local_registry_host_port>
,请指定用于提供内容的端口。设置本地存储库名称:
LOCAL_REPO='<local_repository_name>'
$ LOCAL_REPO='<local_repository_name>'
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 对于
<local_repository_name>
,请指定要在 registry 中创建的仓库名称,如ocp4/openshift4
。
将远程安装镜像镜像(mirror)到本地存储库。
/usr/local/bin/oc adm release mirror \ -a pull-secret-update.txt \ --from=$UPSTREAM_REPO \ --to-release-image=$LOCAL_REG/$LOCAL_REPO:${VERSION} \ --to=$LOCAL_REG/$LOCAL_REPO
$ /usr/local/bin/oc adm release mirror \ -a pull-secret-update.txt \ --from=$UPSTREAM_REPO \ --to-release-image=$LOCAL_REG/$LOCAL_REPO:${VERSION} \ --to=$LOCAL_REG/$LOCAL_REPO
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3.7.6. 修改 install-config.yaml 文件,使用断开连接的 registry(可选) 复制链接链接已复制到粘贴板!
在 provisioner 节点上,install-config.yaml
文件应该使用从 pull-secret-update.txt
文件中新创建的 pull-secret。install-config.yaml
文件还必须包含断开连接的 registry 节点的证书和 registry 信息。
流程
将断开连接的 registry 节点的证书添加到
install-config.yaml
文件中。证书应该跟着"additionalTrustBundle: |"
行,并带有正确的缩进(通常是两个空格)。echo "additionalTrustBundle: |" >> install-config.yaml sed -e 's/^/ /' /opt/registry/certs/domain.crt >> install-config.yaml
$ echo "additionalTrustBundle: |" >> install-config.yaml $ sed -e 's/^/ /' /opt/registry/certs/domain.crt >> install-config.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 将 registry 的镜像信息添加到
install-config.yaml
文件中。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意将
registry.example.com
替换为 registry 的完全限定域名。
8.3.8. 在 worker 节点上部署路由器 复制链接链接已复制到粘贴板!
在安装过程中,安装程序会在 worker 节点上部署路由器 Pod。默认情况下,安装程序会安装两个路由器 Pod。如果初始集群只有一个 worker 节点,或者如果部署的集群需要额外的路由器来处理用于 OpenShift Container Platform 集群中服务的外部流量负载,您可以创建一个 yaml
文件来设置适当数量的路由器副本。
默认情况下,安装程序会部署两个路由器。如果集群至少有两个 worker 节点,您可以跳过此部分。
如果集群没有 worker 节点,安装程序默认会在 control plane 节点上部署两个路由器。如果集群没有 worker 节点,可以跳过本节。
流程
创建一个
router-replicas.yaml
文件。Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意将
<num-of-router-pods>
替换为适当的值。如果只使用一个 worker 节点,将replicas:
设置为1
。如果使用 3 个以上 worker 节点,您可以根据情况增加replicas:
的默认值(2
)。将
router-replicas.yaml
文件保存并复制到clusterconfigs/openshift
目录中。cp ~/router-replicas.yaml clusterconfigs/openshift/99_router-replicas.yaml
cp ~/router-replicas.yaml clusterconfigs/openshift/99_router-replicas.yaml
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
8.3.9. 安装的验证清单 复制链接链接已复制到粘贴板!
- ❏ 已检索到 OpenShift Container Platform 安装程序。
- ❏ 已展开 OpenShift Container Platform 安装程序。
-
❏ 已配置了
install-config.yaml
所需的参数。 -
❏ 已为
install-config.yaml
配置了hosts
参数。 -
❏ 已配置
install-config.yaml
的bmc
参数。 -
❏ 在
bmc
的address
字段中配置的值已被应用。 - ❏ 创建断开连接的 registry(可选)。
- ❏ (可选)如果使用,断开连接的 registry 设置。
- ❏ (可选)在 worker 节点上部署了路由。
8.3.10. 通过 OpenShift Container Platform 安装程序部署集群 复制链接链接已复制到粘贴板!
运行 OpenShift Container Platform 安装程序:
./openshift-baremetal-install --dir ~/clusterconfigs --log-level debug create cluster
$ ./openshift-baremetal-install --dir ~/clusterconfigs --log-level debug create cluster
8.3.11. 安装后 复制链接链接已复制到粘贴板!
在部署过程中,您可以通过对安装目录文件夹中的 .openshift_install.log
日志文件发出 tail
命令来检查安装的整体状态。
tail -f /path/to/install-dir/.openshift_install.log
$ tail -f /path/to/install-dir/.openshift_install.log
8.3.12. 验证静态 IP 地址配置 复制链接链接已复制到粘贴板!
如果集群节点的 DHCP 保留指定了无限租期,安装程序成功置备该节点后,分配程序脚本会检查节点的网络配置。如果脚本确定网络配置包含无限 DHCP 租期,它将 DHCP 租期的 IP 地址用作静态 IP 地址来创建新连接。
分配程序脚本可能会在成功置备的节点上运行,同时持续置备集群中的其他节点。
验证网络配置是否正常工作。
流程
- 检查节点上的网络接口配置。
- 关闭 DHCP 服务器并重启 OpenShift Container Platform 节点,并确保网络配置可以正常工作。
8.3.13. 准备在裸机上重新安装集群 复制链接链接已复制到粘贴板!
在在裸机上重新安装集群前,您必须执行清理操作。
流程
- 删除或重新格式化 bootstrap、control plane(也称为 master)节点和 worker 节点的磁盘。如果您在虚拟机监控程序环境中工作,您必须添加您要删除的任何磁盘。
删除之前生成的工件:
cd ; /bin/rm -rf auth/ bootstrap.ign master.ign worker.ign metadata.json \ .openshift_install.log .openshift_install_state.json
$ cd ; /bin/rm -rf auth/ bootstrap.ign master.ign worker.ign metadata.json \ .openshift_install.log .openshift_install_state.json
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 生成新清单和 Ignition 配置文件。如需更多信息,请参阅"创建 Kubernetes 清单和 Ignition 配置文件"。
- 将安装程序创建的新 bootstrap、control plane 和计算节点 Ignition 配置文件上传到 HTTP 服务器。这将覆盖以前的 Ignition 文件。