19.17. GitOps ZTP のトラブルシューティング


前述のように、ArgoCD パイプラインは、Git リポジトリーからハブクラスターに SiteConfig および PolicyGenTemplate カスタムリソース (CR) を同期します。このプロセスで、同期後フックはハブクラスターにも適用されるインストールおよびポリシー CR を作成します。このプロセスで発生する可能性のある問題のトラブルシューティングを行うには、以下の手順に従います。

19.17.1. インストール CR の生成の検証

SiteConfig は、サイト名と一致する名前を持つ namespace のハブクラスターに Installation カスタムリソース (CR) を適用します。ステータスを確認するには、以下のコマンドを入力します。

$ oc get AgentClusterInstall -n <cluster_name>

オブジェクトが返されない場合は、以下の手順を使用して ArgoCD パイプラインフローを SiteConfig からインストール CR にトラブルシューティングします。

手順

  1. 以下のコマンドのいずれかを使用して、SiteConfig からハブクラスターへの同期を確認します。

    $ oc get siteconfig -A

    または

    $ oc get siteconfig -n clusters-sub

    SiteConfig がない場合、以下のいずれかの状況が発生しました。

    • クラスター アプリケーションは、Git リポジトリーからハブへの CR の同期に失敗しました。以下のコマンドを使用してこれを確認します。

      $ oc describe -n openshift-gitops application clusters

      Status: Synced および Revision: は、サブスクライブしたリポジトリーにプッシュしたコミットの SHA です。

    • 同期前のフックが失敗しました。コンテナーイメージのプルに失敗した可能性があります。ArgoCD ダッシュボードで、クラスター アプリケーションで同期前のジョブのステータスを確認します。
  2. post フックのジョブ実行を確認します。

    $ oc describe job -n clusters-sub siteconfig-post
    • 成功すると、返される出力は succeeded: 1 となります。
    • ジョブが失敗すると、ArgoCD はこれを再試行します。場合によっては、最初のパスが失敗し、2 番目のパスにジョブが渡されることを示すことがあります。
  3. post フックのジョブでエラーの有無を確認します。

    $ oc get pod -n clusters-sub

    siteconfig-post-xxxxx Pod の名前をメモします。

    $ oc logs -n clusters-sub siteconfig-post-xxxxx

    ログでエラーを示す場合は、条件を修正し、修正された SiteConfig または PolicyGenTemplate を Git リポジトリーにプッシュします。

19.17.2. ポリシー CR の生成の検証

ArgoCD は、ポリシーカスタムリソース (CR) を作成した PolicyGenTemplate と同じ namespace に生成します。同じトラブルシューティングフローは、共通、グループ、またはサイト ベースであるかに関係なく、PolicyGenTemplate から生成されたすべてのポリシー CR に適用されます。

ポリシー CR のステータスを確認するには、以下のコマンドを入力します。

$ export NS=<namespace>
$ oc get policy -n $NS

返される出力には、ポリシーラップされた CR の予想されるセットが表示されます。オブジェクトが返されない場合は、以下の手順を使用して ArgoCD パイプラインフローを SiteConfig からポリシー CR にトラブルシューティングします。

手順

  1. PolicyGenTemplate のハブクラスターへの同期を確認します。

    $ oc get policygentemplate -A

    または

    $ oc get policygentemplate -n $NS

    PolicyGenTemplate が同期されていない場合、以下のいずれかの状況が発生しました。

    • クラスターアプリケーションは、Git リポジトリーからハブへの CR の同期に失敗しました。以下のコマンドを使用してこれを確認します。

      $ oc describe -n openshift-gitops application clusters

      Status: Synced および Revision: は、サブスクライブしたリポジトリーにプッシュしたコミットの SHA です。

    • 同期前のフックが失敗しました。コンテナーイメージのプルに失敗した可能性があります。ArgoCD ダッシュボードで、クラスター アプリケーションで同期前のジョブのステータスを確認します。
  2. ポリシーがクラスターの namespace にコピーされていることを確認します。ACM がそのポリシーを ManagedCluster に適用すると、ACM はポリシー CR オブジェクトをクラスターの namespace に適用します。

    $ oc get policy -n <cluster_name>

    ACM は、該当する共通、グループ、およびサイトポリシーをすべてここにコピーします。ポリシー名は <policyNamespace> および <policyName> です

  3. クラスター namespace にコピーされないポリシーの配置ルールを確認します。これらのポリシーの PlacementRulematchSelector は、ManagedCluster のラベルと一致する必要があります 。

    $ oc get placementrule -n $NS
  4. 見つからない common、group、または site ポリシーの PlacementRule 名をメモします。

     oc get placementrule -n $NS <placmentRuleName> -o yaml
    • status decisions 値にはクラスター名が含まれる必要があります。
    • 仕様の matchSelectorkey value は、マネージドクラスターのラベルと一致する必要があります。ManagedCluster のラベルを確認します。

       oc get ManagedCluster $CLUSTER -o jsonpath='{.metadata.labels}' | jq

      apiVersion: apps.open-cluster-management.io/v1
      kind: PlacementRule
      metadata:
        name: group-test1-policies-placementrules
        namespace: group-test1-policies
      spec:
        clusterSelector:
          matchExpressions:
          - key: group-test1
            operator: In
            values:
            - ""
      status:
        decisions:
        - clusterName: <cluster_name>
          clusterNamespace: <cluster_name>

  5. すべてのポリシーが準拠していることを確認します。

     oc get policy -n $CLUSTER

    Namespace、OperatorGroup、および Subscription ポリシーが準拠していても、Operator 設定ポリシーが準拠していない場合は、Operator がインストールされていない可能性があります。

Red Hat logoGithubRedditYoutubeTwitter

詳細情報

試用、購入および販売

コミュニティー

Red Hat ドキュメントについて

Red Hat をお使いのお客様が、信頼できるコンテンツが含まれている製品やサービスを活用することで、イノベーションを行い、目標を達成できるようにします。

多様性を受け入れるオープンソースの強化

Red Hat では、コード、ドキュメント、Web プロパティーにおける配慮に欠ける用語の置き換えに取り組んでいます。このような変更は、段階的に実施される予定です。詳細情報: Red Hat ブログ.

会社概要

Red Hat は、企業がコアとなるデータセンターからネットワークエッジに至るまで、各種プラットフォームや環境全体で作業を簡素化できるように、強化されたソリューションを提供しています。

© 2024 Red Hat, Inc.