ソフトウェア プロビジョニングのトラブルシューティング

このページでは、ソフトウェア プロビジョニングで発生する可能性のある一般的な問題のトラブルシューティング方法について説明します。

コントロール プレーンのブートストラップのトラブルシューティング

ブートストラップ コントロール プレーン プロセスのトラブルシューティングを行うには、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 Namespace のリソースを確認します。kubectl get harborcluster harbor -n harbor-system コマンドを使用して HarborCluster オブジェクトをデプロイした場合、インストールが第 2 段階(Harbor ステージ)に移行したことを示します。

  3. HarborCluster オブジェクトの status フィールドを検査します。

    kubectl -n harbor-system get harborcluster harbor
    

    ステータスが healthy を示している場合は、docker push コマンドを使用して、ウェブポータルから機能を確認します。

  4. 報告された URL でウェブポータルにアクセスします。例: 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 Namespace のリソースを評価します。

    kubectl get all -n harbor-system
    
  2. 組織インフラストラクチャ クラスタの作成プロセスの第 2 段階でサブチャートとしてビルドされる PostgreSQL オペレータや Redis オペレータなど、Harbor オペレータに関連するリソースのステータスを確認します。次のオペレーターが 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 sentinel:deployment/rfs-harbor-redis

    Harbor のコア コンポーネントは、2 つのコンポーネントの準備が整った場合にのみデプロイされます。

    Harbor コア コンポーネント Pod の一部で障害が発生した場合は、障害が発生した Pod のログを確認します。PostgreSQL インスタンスまたは Redis インスタンスとの通信で問題が発生することがあります。

    たとえば、Harbor コア コンポーネントが指定された認証情報で PostgreSQL または Redis に接続できない場合、Harbor コア コンポーネントをデプロイする前に認証情報を設定する Harbor Operator に問題がある可能性があります。

istio のステータスを確認する

Pod のステータスが istioistio-systemservice/istio-ingressgateway など)であることを確認するには、ポート 10443 が公開されているかどうかを確認します。