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中的 Access- journald单元日志:- 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 集群的步骤进行操作。