搜索

第 9 章 托管 control plane 故障排除

download PDF

如果您在托管 control plane 时遇到问题,请参阅以下信息来引导您完成故障排除。

9.1. 收集信息以对托管 control plane 进行故障排除

当您需要对托管的 control plane 集群问题进行故障排除时,您可以通过运行 hypershift dump cluster 命令来收集信息。该命令为管理集群和托管集群生成输出。

管理集群的输出包含以下内容:

  • 集群范围的资源:这些资源是管理集群的节点定义。
  • hypershift-dump 压缩文件: 如果您需要与其他人员共享内容,该文件非常有用。
  • 命名空间资源:这些资源包括来自相关命名空间中的所有对象,如配置映射、服务、事件和日志。
  • 网络日志:这些日志包括 OVN 北向和南向数据库和每个数据库的状态。
  • 托管的集群:此级别的输出涉及托管集群内的所有资源。

托管集群的输出包含以下内容:

  • 集群范围的资源:这些资源包含所有集群范围的对象,如节点和 CRD。
  • 命名空间资源:这些资源包括来自相关命名空间中的所有对象,如配置映射、服务、事件和日志。

虽然输出不包含集群中的任何 secret 对象,但它可以包含对 secret 名称的引用。

先决条件

  • 您必须具有对管理集群的 cluster-admin 访问权限。
  • 您需要 HostedCluster 资源的 name 值以及部署 CR 的命名空间。
  • 已安装 hcp 命令行界面。如需更多信息,请参阅安装托管的 control plane 命令行界面
  • 已安装 OpenShift CLI (oc)。
  • 您必须确保 kubeconfig 文件已被加载,并指向管理集群。

流程

  • 要收集故障排除的输出,请输入以下命令:

    $ hypershift dump cluster \
        --name <hosted_cluster_name> \1
        --namespace <hosted_cluster_namespace> \ 2
        --dump-guest-cluster \
        --artifact-dir clusterDump-<hosted_cluster_namespace>-<hosted_cluster_name>
    1
    指定托管的集群名称。
    2
    指定托管集群的命名空间,例如 clusters

    输出示例

    2023-06-06T12:18:20+02:00   INFO    Archiving dump  {"command": "tar", "args": ["-cvzf", "hypershift-dump.tar.gz", "cluster-scoped-resources", "event-filter.html", "namespaces", "network_logs", "timestamp"]}
    2023-06-06T12:18:21+02:00   INFO    Successfully archived dump  {"duration": "1.519376292s"}

  • 要配置命令行界面,使其通过使用用户名或服务帐户模拟对管理集群的所有查询,请输入带有 --as 标志的 hypershift dump cluster 命令。

    服务帐户必须具有足够的权限来从命名空间中查询所有对象,因此建议 cluster-admin 角色确保有足够的权限。服务帐户必须位于其中,或者具有查询 HostedControlPlane 资源命名空间的权限。

    如果您的用户名或服务帐户没有足够的权限,输出只会包含您有权访问的对象。在此过程中,您可能会看到 forbidden 错误。

    • 要使用服务帐户使用模拟,请输入以下命令:

      $ hypershift dump cluster \
          --name <hosted_cluster_name> \1
          --namespace <hosted_cluster_namespace> \2
          --dump-guest-cluster \
          --as "system:serviceaccount:<service_account_namespace>:<service_account_name>" \ 3
          --artifact-dir clusterDump-<hosted_cluster_namespace>-<hosted_cluster_name>
      1
      指定托管的集群名称。
      2
      指定托管集群的命名空间,例如 clusters
      3
      指定 默认 命名空间和名称,例如 "system:serviceaccount:default:samplesa"
    • 要使用用户名来模拟,请输入以下命令:

      $ hypershift dump cluster \
          --name <hosted_cluster_name> \1
          --namespace <hosted_cluster_namespace> \2
          --dump-guest-cluster \
          --as "<cluster_user_name>" \ 3
          --artifact-dir clusterDump-<hosted_cluster_namespace>-<hosted_cluster_name>
      1
      指定托管的集群名称。
      2
      指定托管集群的命名空间,例如 clusters
      3
      指定集群用户名,如 cloud-admin
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.