软件配置问题排查

本页详细介绍了如何排查您可能会遇到的常见软件配置问题。

排查控制平面引导问题

如需排查引导控制平面进程方面的问题,请检查 KIND 集群中的以下资源:

  1. 检查 anthos-cluster-operator Pod:

    kubectl logs deployment/anthos-cluster-operator -c operator -n kube-system
    
  2. 检查 AddOn 资源:

    kubectl get AddOn -A
    

    您还可以使用 gpc-addons 命令查看资源,了解更多信息。

  3. 检查 AddOnSet 资源:

    kubectl get AddOnSet -A
    

    如果在创建组织基础架构集群后(例如在资源转换期间),控制平面引导未完成处理,请手动导出 kubeconfig 文件:

    kubectl get secret root-admin-kubeconfig -n root -o jsonpath="{.data.value}" | base64 -d > /root/path/to/root-admin-kubeconfig.yaml
    

排查集群创建问题

如需排查集群创建过程中的问题,请按以下步骤操作:

  1. 检查集群的当前阶段,并检查对象 Harbor-operator 或 Harbor 是否存在,以及通过在 AddOnSet 资源中运行以下命令来检查其在 KIND 集群中的状态:

    kubectl get addonset -n fleet-root root-admin -o yaml
    

    运行此命令后,在 status.currentStage 中找到当前阶段。

  2. 在组织基础架构集群中,检查 harbor-system 命名空间中的资源。如果您通过 kubectl get harborcluster harbor -n harbor-system 命令部署了 HarborCluster 对象,则表示安装已进入第二阶段(即 Harbor 阶段)。

  3. 检查 HarborCluster 对象中的 status 字段:

    kubectl -n harbor-system get harborcluster harbor
    

    如果状态指示 healthy,请使用 docker push 命令通过 Web 门户验证其功能。

  4. 访问举报的网址中的门户网站。例如:https://10.200.0.36:10443

  5. 在引导加载程序中,运行命令 docker push

    如果状态为 unhealthy,请执行以下条目,查看状态条件中的详细信息:

    kubectl -n harbor-system get harborcluster harbor -o yaml
    

    如果状态显示 healthy,请前往检查 Istio 状态部分。如果状态未显示 healthy,请继续下一部分评估 Harbor 命名空间资源

评估 Harbor 命名空间资源

只有当 harbor-system 资源的状态不是 healthy 时,才需要执行这些步骤。如需检查 harbor-system 资源的状态,请参阅排查集群创建问题

  1. 评估 harbor-system 命名空间资源:

    kubectl get all -n harbor-system
    
  2. 检查与 Harbor 运算符相关的资源的状态,包括在组织基础架构集群创建过程的第二阶段构建为子图表的 PostgreSQL 和 Redis 运算符。验证以下运算符是否处于 Running 状态:

    deployment/harbor-operator-harbor-operator
    deployment/harbor-operator-postgres-operator
    deployment/harbor-operator-redisoperator
    
  3. 验证 PostgreSQL、Redis 和 Harbor 组件的资源是否都处于 healthy 状态。如果某些 Pod 未处于 healthy 状态,请使用以下命令查看失败的 Pod 的详细信息:

    kubectl get pod -o wide
    kubectl describe pod
    

    您还可以使用以下命令查看管理运算符的日志:

    kubectl logs -f deploy/harbor-operator-postgres-operator
    
  4. 如需检查 PostgreSQL 资源,请查看 statefulset/postgresql-harbor-system-harbor

  5. 如需检查 Redis 资源,请查看:

    1. Redis 实例:statefulset/rfr-harbor-redis
    2. Redis 监控程序:deployment/rfs-harbor-redis

    只有当这两个组件都准备就绪时,才会部署 Harbor 核心组件。

    如果某些 Harbor 核心组件 Pod 发生故障,请查看发生故障的 Pod 的日志。在某些情况下,PostgreSQL 或 Redis 实例存在通信问题。

    例如,如果 Harbor 核心组件无法使用提供的凭据连接到 PostgreSQL 或 Redis,则 Harbor Operator 可能存在问题,因为该 Operator 负责在部署 Harbor 核心组件之前设置凭据。

检查 Istio 状态

如需验证 Pod 状态是否为 istio(例如 istio-systemservice/istio-ingressgateway),请检查端口 10443 是否已公开。