8.5.3. Bootstrap 虚拟机问题
OpenShift Container Platform 安装程序生成 bootstrap 节点虚拟机,该虚拟机处理置备 OpenShift Container Platform 集群节点。
流程
触发安装程序后约 10 到 15 分钟,使用
virsh
命令检查 bootstrap 虚拟机是否可正常工作:$ sudo virsh list
Id Name State -------------------------------------------- 12 openshift-xf6fq-bootstrap running
注意bootstrap 虚拟机的名称始终是集群名称再加上一组随机字符,并以"bootstrap"结尾。
如果 bootstrap 虚拟机在 10 到 15 分钟后还没有运行,请检查其没有运行的原因。可能的问题包括:
确定在该系统中运行了
libvirtd
:$ systemctl status libvirtd
● libvirtd.service - Virtualization daemon Loaded: loaded (/usr/lib/systemd/system/libvirtd.service; enabled; vendor preset: enabled) Active: active (running) since Tue 2020-03-03 21:21:07 UTC; 3 weeks 5 days ago Docs: man:libvirtd(8) https://libvirt.org Main PID: 9850 (libvirtd) Tasks: 20 (limit: 32768) Memory: 74.8M CGroup: /system.slice/libvirtd.service ├─ 9850 /usr/sbin/libvirtd
如果 bootstrap 虚拟机可以正常工作,请登录它。
使用
virsh console
命令查找 bootstrap 虚拟机的 IP 地址:$ sudo virsh console example.com
Connected to domain example.com Escape character is ^] Red Hat Enterprise Linux CoreOS 43.81.202001142154.0 (Ootpa) 4.3 SSH host key: SHA256:BRWJktXZgQQRY5zjuAV0IKZ4WM7i4TiUyMVanqu9Pqg (ED25519) SSH host key: SHA256:7+iKGA7VtG5szmk2jB5gl/5EZ+SNcJ3a2g23o0lnIio (ECDSA) SSH host key: SHA256:DH5VWhvhvagOTaLsYiVNse9ca+ZSW/30OOMed8rIGOc (RSA) ens3: fd35:919d:4042:2:c7ed:9a9f:a9ec:7 ens4: 172.22.0.2 fe80::1d05:e52e:be5d:263f localhost login:
重要当在没有
provisioning
网络的情况下部署 OpenShift Container Platform 集群时,您必须使用公共 IP 地址,而不是像172.22.0.2
这样的私有 IP 地址。获取 IP 地址后,使用
ssh
命令登录到 bootstrap 虚拟机:注意在上一步的控制台输出中,您可以使用
ens3
提供的 IPv6 IP 地址或ens4
提供的 IPv4 IP。$ ssh core@172.22.0.2
如果您无法成功登录到 bootstrap 虚拟机,您可能会遇到以下情况之一:
-
无法访问
172.22.0.0/24
网络。验证 provisioner 主机上的网络连接,特别是provisioner
网桥上的连接。如果您不使用provisioning
网络,则不会有这个问题。 -
您无法通过公共网络访问 bootstrap 虚拟机。当尝试通过
baremetal
网络进行 SSH 时,验证provisioner
主机的连接,特别是baremetal
网桥的连接。 -
存在
Permission denied (publickey,password,keyboard-interactive)
问题。当尝试访问 bootstrap 虚拟机时,可能会出现Permission denied
错误。验证试图登录到虚拟机的用户的 SSH 密钥是否在install-config.yaml
文件中设置。
8.5.3.1. Bootstrap 虚拟机无法引导集群节点
在部署期间,bootstrap 虚拟机可能无法引导集群节点,这会阻止虚拟机使用 RHCOS 镜像置备节点。这可能是因为以下原因:
-
install-config.yaml
文件有问题。 - 通过裸机网络进行带外网络访问的问题。
要验证这个问题,有三个与 ironic
相关的容器:
-
ironic-api
-
ironic-conductor
-
ironic-inspector
流程
登录到 bootstrap 虚拟机:
$ ssh core@172.22.0.2
要检查容器日志,请执行以下操作:
[core@localhost ~]$ sudo podman logs -f <container-name>
将
<container-name>
替换为ironic-api
、ironic-conductor
或ironic-inspector
之一。如果您遇到 control plane 节点没有通过 PXE 引导的问题,请检查ironic-conductor
pod。ironic-conductor
pod 包含了有关尝试引导集群节点的最详细信息,因为它尝试通过 IPMI 登录该节点。
潜在原因
集群节点在部署启动时可能处于 ON
状态。
解决方案
在通过 IPMI 开始安装前关闭 OpenShift Container Platform 集群节点:
$ ipmitool -I lanplus -U root -P <password> -H <out-of-band-ip> power off