24.2. 安装问题的故障排除
为了帮助对 OpenShift Container Platform 安装进行故障排除,您可以从 bootstrap 和 control plane 机器收集日志。您还可以从安装程序获取调试信息。如果您无法使用日志和调试信息解决问题,请参阅确定组件特定故障排除的安装问题。
如果您的 OpenShift Container Platform 安装失败,且 debug 输出或日志包含网络超时或其他连接错误,请查看配置防火墙。从防火墙和负载均衡器收集日志可帮助您诊断与网络相关的错误。
24.2.1. 先决条件 复制链接链接已复制到粘贴板!
- 已尝试安装 OpenShift Container Platform 集群,且安装失败。
24.2.2. 从失败安装中收集日志 复制链接链接已复制到粘贴板!
如果您为安装程序提供了 SSH 密钥,则可以收集有关失败安装的数据。
与从正在运行的集群收集日志相比,您可以使用其他命令收集失败安装的日志。如果必须从正在运行的集群中收集日志,请使用 oc adm must-gather
命令。
先决条件
- 在 bootstrap 过程完成前,OpenShift Container Platform 安装会失败。bootstrap 节点正在运行,并可通过 SSH 访问。
-
ssh-agent
进程在您的计算机上处于活跃状态,并且为ssh-agent
进程和安装程序提供了相同的 SSH 密钥。 - 如果尝试在您置备的基础架构上安装集群,则必须具有 bootstrap 和 control plane 节点的完全限定域名。
流程
生成从 bootstrap 和 control plane 机器获取安装日志的命令:
如果您使用安装程序置备的基础架构,请切换到包含安装程序的目录,并运行以下命令:
./openshift-install gather bootstrap --dir <installation_directory>
$ ./openshift-install gather bootstrap --dir <installation_directory>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
installation_directory
是您在运行时指定的目录。/openshift-install create cluster
。此目录包含安装程序创建的 OpenShift Container Platform 定义文件。
对于安装程序置备的基础架构,安装程序会保存有关集群的信息,因此您不用指定主机名或 IP 地址。
如果您使用您置备的基础架构,请切换到包含安装程序的目录,并运行以下命令:
./openshift-install gather bootstrap --dir <installation_directory> \ --bootstrap <bootstrap_address> \ --master <master_1_address> \ --master <master_2_address> \ --master <master_3_address>"
$ ./openshift-install gather bootstrap --dir <installation_directory> \
1 --bootstrap <bootstrap_address> \
2 --master <master_1_address> \
3 --master <master_2_address> \
4 --master <master_3_address>"
5 Copy to Clipboard Copied! Toggle word wrap Toggle overflow 注意默认集群包含三台 control plane 机器。如所示,列出所有 control plane 机器,无论您的集群使用了多少个。
输出示例
INFO Pulling debug logs from the bootstrap machine INFO Bootstrap gather logs captured here "<installation_directory>/log-bundle-<timestamp>.tar.gz"
INFO Pulling debug logs from the bootstrap machine INFO Bootstrap gather logs captured here "<installation_directory>/log-bundle-<timestamp>.tar.gz"
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 如果您提交有关安装失败的红帽支持问题单,请在问题单中包含压缩日志。
24.2.3. 使用到主机的 SSH 访问手动收集日志 复制链接链接已复制到粘贴板!
在 must-gather
或自动收集方法无法正常工作的情况下手动收集日志。
默认情况下,基于 Red Hat OpenStack Platform(RHOSP)的安装禁用对 OpenShift Container Platform 节点的 SSH 访问。
先决条件
- 您必须有到主机的 SSH 访问权限。
流程
运行以下命令,使用
journalctl
命令从 bootstrap 主机收集bootkube.service
服务日志:journalctl -b -f -u bootkube.service
$ journalctl -b -f -u bootkube.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 使用 podman logs 收集 bootstrap 主机的容器日志。这显示为从主机获取所有容器日志的循环:
for pod in $(sudo podman ps -a -q); do sudo podman logs $pod; done
$ for pod in $(sudo podman ps -a -q); do sudo podman logs $pod; done
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 或者,运行以下命令来使用
tail
命令收集主机的容器日志:tail -f /var/lib/containers/storage/overlay-containers/*/userdata/ctr.log
# tail -f /var/lib/containers/storage/overlay-containers/*/userdata/ctr.log
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使用
journalctl
命令从 master 和 worker 主机收集kubelet.service
和crio.service
服务日志:journalctl -b -f -u kubelet.service -u crio.service
$ journalctl -b -f -u kubelet.service -u crio.service
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令,使用
tail
命令收集 master 和 worker 主机容器日志:sudo tail -f /var/log/containers/*
$ sudo tail -f /var/log/containers/*
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
24.2.4. 在不使用 SSH 访问主机的情况下手动收集日志 复制链接链接已复制到粘贴板!
在 must-gather
或自动收集方法无法正常工作的情况下手动收集日志。
如果您无法通过 SSH 访问节点,您可以访问系统日志来调查主机上发生的情况。
先决条件
- OpenShift Container Platform 安装必须已完成。
- API 服务仍然可以正常工作。
- 您有系统管理员特权。
流程
通过运行以下命令访问
/var/log
中的 Accessjournald
单元日志:oc adm node-logs --role=master -u kubelet
$ oc adm node-logs --role=master -u kubelet
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 运行以下命令访问
/var/log
中的主机文件路径:oc adm node-logs --role=master --path=openshift-apiserver
$ oc adm node-logs --role=master --path=openshift-apiserver
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
24.2.5. 从安装程序获取调试信息 复制链接链接已复制到粘贴板!
您可以使用以下任一操作从安装程序获取调试信息。
在 hidden
.openshift_install.log 文件中查看
来自过去安装的调试信息。例如,输入:cat ~/<installation_directory>/.openshift_install.log
$ cat ~/<installation_directory>/.openshift_install.log
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 对于
installation_directory
,请指定您在运行时指定的同一目录。/openshift-install create cluster
。
进入包含安装程序的目录,并使用
--log-level=debug
重新运行它:./openshift-install create cluster --dir <installation_directory> --log-level debug
$ ./openshift-install create cluster --dir <installation_directory> --log-level debug
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
- 对于
installation_directory
,请指定您在运行时指定的同一目录。/openshift-install create cluster
。
24.2.6. 重新安装 OpenShift Container Platform 集群 复制链接链接已复制到粘贴板!
如果您无法调试并解决失败的 OpenShift Container Platform 安装中的问题,请考虑安装新的 OpenShift Container Platform 集群。在再次开始安装过程前,您必须完成彻底的清理。对于用户置备的基础架构(UPI)安装,您必须手动销毁集群并删除所有关联的资源。以下流程用于安装程序置备的基础架构(IPI)安装。
流程
销毁集群并删除与集群关联的所有资源,包括安装目录中的隐藏安装程序状态文件:
./openshift-install destroy cluster --dir <installation_directory>
$ ./openshift-install destroy cluster --dir <installation_directory>
1 Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 1
installation_directory
是您在运行时指定的目录。/openshift-install create cluster
。此目录包含安装程序创建的 OpenShift Container Platform 定义文件。
在重新安装集群前,删除安装目录:
rm -rf <installation_directory>
$ rm -rf <installation_directory>
Copy to Clipboard Copied! Toggle word wrap Toggle overflow - 按照安装新 OpenShift Container Platform 集群的步骤进行操作。