1.7. 为裸机创建凭证
您需要一个凭证来使用 Red Hat Advanced Cluster Management for Kubernetes 控制台在裸机环境中部署和管理 Red Hat OpenShift Container Platform 集群。凭证指定到在创建集群时用作 bootstrap 主机虚拟机 (VM) 的置备节点的连接。
需要的访问权限: Edit
1.7.1. 先决条件
创建凭证前需要满足以下先决条件:
- 已部署 Red Hat Advanced Cluster Management for Kubernetes hub 集群。在管理裸机集群时,必须在 Red Hat OpenShift Container Platform 版本 4.6 或更高版本上安装了 hub 集群。
- 可通过互联网访问 Red Hat Advanced Cluster Management for Kubernetes hub 集群,以便它在裸机服务器上创建 Kubernetes 集群
- 对于断开连接的环境,您必须配置了一个镜像 registry,您可以在其中复制发行镜像以进行集群创建。如需更多信息,请参阅 OpenShift Container Platform 文档中的用于断开连接的安装的镜像。
- 支持在裸机基础架构上安装集群的帐户权限。
1.7.2. 准备置备主机
在创建裸机凭证和集群时,您必须有一个置备主机。置备主机是可用于安装的 bootstrap 主机虚拟机。它可以是虚拟机,也可以是运行基于内核的虚拟机 (KVM) 的服务。创建凭证和集群时,您需要此主机的详细信息。完成以下步骤以配置置备(provisioner)主机:
-
使用
SSH
登录 provisioner 节点。 运行以下命令,创建非 root 用户 (user-name) 并为该用户提供 sudo 权限:
useradd <user-name> passwd <password> echo "<user-name> ALL=(root) NOPASSWD:ALL" | tee -a /etc/sudoers.d/<user-name> chmod 0440 /etc/sudoers.d/<user-name>
输入以下命令为新用户创建 SSH 密钥:
su - <user-name> -c "ssh-keygen -t rsa -f /home/<user-name>/.ssh/id_rsa -N ''"
使用新创建的用户登陆到 provisioner 节点。
su - <user-name> [user-name@provisioner ~]$
输入以下命令使用 Red Hat Subscription Manager 来注册 provisioner 节点:
sudo subscription-manager register --username=<user-name> --password=<password> --auto-attach sudo subscription-manager repos --enable=rhel-8-for-x86_64-appstream-rpms --enable=rhel-8-for-x86_64-baseos-rpms
如需有关 Red Hat Subscription Manager 的更多信息,请参阅 Red Hat OpenShift Container Platform 文档中的使用和配置 Red Hat Subscription Manager。
运行以下命令来安装所需的软件包:
sudo dnf install -y libvirt qemu-kvm mkisofs python3-devel jq ipmitool
修改用户以便为新创建的用户中添加
libvirt
组。sudo usermod --append --groups libvirt <user-name>
输入以下命令重启
firewalld
并启用http
服务:sudo systemctl start firewalld sudo firewall-cmd --zone=public --add-service=http --permanent sudo firewall-cmd --reload
输入以下命令启动并启用
libvirtd
服务:sudo systemctl enable libvirtd --now
输入以下命令创建默认存储池并启动它:
sudo virsh pool-define-as --name default --type dir --target /var/lib/libvirt/images sudo virsh pool-start default sudo virsh pool-autostart default
配置网络:
运行以下命令,将
PUB_CONN
的值导出到baremetal
网络的 NIC 的名称:export PUB_CONN=<baremetal-nic-name>
配置
baremetal
网络:sudo nohup bash -c """ nmcli con down "$PUB_CONN" nmcli con delete "$PUB_CONN" # RHEL 8.1 appends the word "System" in front of the connection, delete in case it exists nmcli con down "System $PUB_CONN" nmcli con delete "System $PUB_CONN" nmcli connection add ifname baremetal type bridge con-name baremetal nmcli con add type bridge-slave ifname \"$PUB_CONN"\ master baremetal pkill dhclient;dhclient baremetal
完成此步骤后,SSH 连接可能会断开。
如果要使用可选的置备网络部署,请完成以下步骤:
运行以下命令导出
provisioning
网络 NIC 名称:export PROV_CONN=<prov-nic-name>
配置 provisioning 网络:
sudo nohup bash -c """ nmcli con down "$PROV_CONN" nmcli con delete "$PROV_CONN" nmcli connection add ifname baremetal type bridge con-name provisioning nmcli con add type bridge-slave ifname \"$PROV_CONN\" master provisioning nmcli connection modify provisioning ipv6.addresses fd00:1101::1/64 ipv6.method manual nmcli con down provisioning nmcli con up provisioning
完成此步骤后,SSH 连接可能会断开。
只要无法使用
baremetal
网络路由,IPv6 地址可以是任何地址。在使用 IPv6 地址时,请确保启用了 UEFI,并将 UEFI PXE 设置设置为 IPv6 协议。
在 provisioning 网络连接上配置 IPv4 地址:
nmcli connection modify provisioning ipv4.addresses 172.22.0.254/24 ipv4.method manual
使用
ssh
重新连接到 provisioner 节点(如果需要)。# ssh <user-name>@provisioner.<cluster-name>.<domain>
运行以下命令验证连接网桥是否已正确创建:
sudo nmcli con show
您返回的结果类似以下内容:
NAME
UUID
TYPE
DEVICE
baremetal
4d5133a5-8351-4bb9-bfd4-3af264801530
bridge
baremetal
provisioning
43942805-017f-4d7d-a2c2-7cb3324482ed
bridge
provisioning
virbr0
d9bca40f-eee1-410b-8879-a2d4bb0465e7
bridge
virbr0
bridge-slave-eno1
76a8ed50-c7e5-4999-b4f6-6d9014dd0812
Ethernet
eno1
bridge-slave-eno2
f31c3353-54b7-48de-893a-02d2b34c4736
Ethernet
eno2
通过以下步骤创建
pull-secret.txt
文件:vim pull-secret.txt
- 在 Web 浏览器中,导航到 Install OpenShift on Bare Metal with user-provisioned infrastructure,再向下滚动到 Downloads 部分。
- 点 Copy pull secret。
-
将内容粘贴到
pull-secret.txt
文件中,并将内容保存到user-name
用户的主目录中。
您已准备好创建裸机凭证。
1.7.3. 使用控制台管理凭证
要从 Red Hat Advanced Cluster Management for Kubernetes 控制台创建凭证,请完成控制台中的步骤。
从导航菜单开始。单击 Credentials 以从现有凭证选项中进行选择。提示: 为方便起见,同时为了提高安全性,创建一个命名空间,专门用于托管您的凭证。
- 您可以选择为您的凭证添加基本 DNS 域。如果您将基本 DNS 域添加到凭证中,则在使用此凭证创建集群时,会自动填充到正确的字段中。如果没有添加 DNS 域,您可以在创建集群时添加它。
添加 libvirt URI。libvirt URI 适用于您为 bootstrap 节点创建的置备节点。libvirt URI 应该类似以下示例:
<qemu+ssh>:://<user-name>@<provision-host.com>/system
-
使用您连接到调配主机上的 libvirt 守护进程的方法替换
qemu+ssh
。 -
使用有权在置备主机上创建 bootstrap 节点的用户名替换
user-name
。 将
provision-host.com
替换为您的调配主机的链接。这可以是 IP 地址或完全限定域名地址。如需更多信息,请参阅连接 URI。
-
使用您连接到调配主机上的 libvirt 守护进程的方法替换
- 为调配主机添加 SSH 已知主机的列表。这个值可以是 IP 地址或完全限定域名地址,但最好使用您在 libvirt URI 值中使用的相同格式。
仅用于断开连接的安装:使用所需信息完成 Configuration for disconnected installation 子字段:
Image registry mirror:此值包含断开连接的 registry 路径。该路径包含所有用于断开连接的安装镜像的主机名、端口和库路径。示例:
repository.com:5000/openshift/ocp-release
。该路径会在
install-config.yaml
中创建一个到 Red Hat OpenShift Container Platform 发行镜像的镜像内容源策略映射。例如,repository.com:5000
生成此imageContentSource
内容:imageContentSources: - mirrors: - registry.example.com:5000/ocp4 source: quay.io/openshift-release-dev/ocp-release-nightly - mirrors: - registry.example.com:5000/ocp4 source: quay.io/openshift-release-dev/ocp-release - mirrors: - registry.example.com:5000/ocp4 source: quay.io/openshift-release-dev/ocp-v4.0-art-dev
- Bootstrap OS image:此值包含用于 bootstrap 机器的镜像的 URL。
- Cluster OS image:此值包含用于 Red Hat OpenShift Container Platform 集群机器的镜像的 URL。
Additional trust bundle:此值提供访问镜像 registry 所需的证书文件内容。
注: 如果您要从断开连接的环境中的一个 hub 部署受管集群,并希望在安装后自动导入它们,使用
YAML
编辑器将镜像内容源策略添加到install-config.yaml
文件中。以下示例中显示了一个示例:imageContentSources: - mirrors: - registry.example.com:5000/rhacm2 source: registry.redhat.io/rhacm2
如果要启用代理,请输入代理信息:
-
HTTP 代理 URL:用作
HTTP
流量的代理的 URL。 -
HTTPS 代理 URL:用于
HTTPS
流量的安全代理 URL。如果没有提供值,则使用相同的值HTTP Proxy URL
,用于HTTP
和HTTPS
。 -
无代理域:应当绕过代理的以逗号分隔的域列表。使用一个句点 (
.
) 开始的域名,包含该域中的所有子域。添加星号 (*
) 以绕过所有目的地的代理。 - Additional trust bundle:访问镜像 registry 所需的证书文件内容。
-
HTTP 代理 URL:用作
- 输入您的 Red Hat OpenShift pull secret。您可以从 Pull secret 下载 pull secret。
- 添加 SSH 私钥 和 SSH 公钥 以便您可以访问集群。您可以使用现有密钥,或使用密钥生成程序创建新密钥。请参阅生成 SSH 私钥并将其添加到代理中,以了解有关如何生成密钥的更多信息。
要创建使用此凭证的集群,您可以完成在裸机上创建集群中的步骤。
您可以在控制台中编辑凭证。
当您不再管理使用凭证的集群时,请删除凭证来保护凭证中的信息。选择要批量删除的 Actions,或者选择您要删除的凭证旁边的选项菜单。