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 节点的完全限定域名。

流程

  1. 生成从 bootstrap 和 control plane 机器获取安装日志的命令:

    • 如果您使用安装程序置备的基础架构,请切换到包含安装程序的目录,并运行以下命令:

      $ ./openshift-install gather bootstrap --dir <installation_directory> 1
      1
      installation_directory 是您在运行时指定的目录 。/openshift-install create cluster。此目录包含安装程序创建的 OpenShift Container Platform 定义文件。

      对于安装程序置备的基础架构,安装程序会保存有关集群的信息,因此您不用指定主机名或 IP 地址。

    • 如果您使用您置备的基础架构,请切换到包含安装程序的目录,并运行以下命令:

      $ ./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
      1
      对于 installation_directory,请指定您在运行时指定的同一目录 。/openshift-install create cluster。此目录包含安装程序创建的 OpenShift Container Platform 定义文件。
      2
      <bootstrap_address> 是集群 bootstrap 机器的完全限定域名或 IP 地址。
      3 4 5
      对于集群中的每个 control plane 或 master 机器,将 <master_*_address> 替换为其完全限定域名或 IP 地址。
      注意

      默认集群包含三台 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"

    如果您提交有关安装失败的红帽支持问题单,请在问题单中包含压缩日志。

24.2.3. 使用到主机的 SSH 访问手动收集日志

must-gather 或自动收集方法无法正常工作的情况下手动收集日志。

重要

默认情况下,基于 Red Hat OpenStack Platform(RHOSP)的安装禁用对 OpenShift Container Platform 节点的 SSH 访问。

先决条件

  • 您必须有到主机的 SSH 访问权限。

流程

  1. 运行以下命令,使用 journalctl 命令从 bootstrap 主机收集 bootkube.service 服务日志:

    $ journalctl -b -f -u bootkube.service
  2. 使用 podman logs 收集 bootstrap 主机的容器日志。这显示为从主机获取所有容器日志的循环:

    $ for pod in $(sudo podman ps -a -q); do sudo podman logs $pod; done
  3. 或者,运行以下命令来使用 tail 命令收集主机的容器日志:

    # tail -f /var/lib/containers/storage/overlay-containers/*/userdata/ctr.log
  4. 运行以下命令,使用 journalctl 命令从 master 和 worker 主机收集 kubelet.servicecrio.service 服务日志:

    $ journalctl -b -f -u kubelet.service -u crio.service
  5. 运行以下命令,使用 tail 命令收集 master 和 worker 主机容器日志:

    $ sudo tail -f /var/log/containers/*

24.2.4. 在不使用 SSH 访问主机的情况下手动收集日志

must-gather 或自动收集方法无法正常工作的情况下手动收集日志。

如果您无法通过 SSH 访问节点,您可以访问系统日志来调查主机上发生的情况。

先决条件

  • OpenShift Container Platform 安装必须已完成。
  • API 服务仍然可以正常工作。
  • 您有系统管理员特权。

流程

  1. 通过运行以下命令访问 /var/log 中的 Access journald 单元日志:

    $ oc adm node-logs --role=master -u kubelet
  2. 运行以下命令访问 /var/log 中的主机文件路径:

    $ oc adm node-logs --role=master --path=openshift-apiserver

24.2.5. 从安装程序获取调试信息

您可以使用以下任一操作从安装程序获取调试信息。

  • 在 hidden .openshift_install.log 文件中查看 来自过去安装的调试信息。例如,输入:

    $ cat ~/<installation_directory>/.openshift_install.log 1
    1
    对于 installation_directory,请指定您在运行时指定的同一目录 。/openshift-install create cluster
  • 进入包含安装程序的目录,并使用 --log-level=debug 重新运行它:

    $ ./openshift-install create cluster --dir <installation_directory> --log-level debug 1
    1
    对于 installation_directory,请指定您在运行时指定的同一目录 。/openshift-install create cluster

24.2.6. 重新安装 OpenShift Container Platform 集群

如果您无法调试并解决失败的 OpenShift Container Platform 安装中的问题,请考虑安装新的 OpenShift Container Platform 集群。在再次开始安装过程前,您必须完成彻底的清理。对于用户置备的基础架构(UPI)安装,您必须手动销毁集群并删除所有关联的资源。以下流程用于安装程序置备的基础架构(IPI)安装。

流程

  1. 销毁集群并删除与集群关联的所有资源,包括安装目录中的隐藏安装程序状态文件:

    $ ./openshift-install destroy cluster --dir <installation_directory> 1
    1
    installation_directory 是您在运行时指定的目录 。/openshift-install create cluster。此目录包含安装程序创建的 OpenShift Container Platform 定义文件。
  2. 在重新安装集群前,删除安装目录:

    $ rm -rf <installation_directory>
  3. 按照安装新 OpenShift Container Platform 集群的步骤进行操作。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.