Verrazzano分析ツール

Verrazzano分析ツールを使用したクラスタ・ダンプの分析

Verrazzanoは、環境における問題のトラブルシューティングに役立つツールを提供します:

  1. k8s-dump-cluster.sh
  2. verrazzano-analysis

ツールの設定

次のツールがLinuxおよびMacで使用できます: https://github.com/verrazzano/verrazzano/releases/

k8s-dump-cluster.shツールの使用

k8s-dump-cluster.shツールは、クラスタに対して様々なkubectlおよびhelmコマンドを実行するシェル・スクリプトです。

このスクリプトで取得されるデータには機密情報が含まれる場合があります。このデータを共有するかどうかは慎重に選択します。

k8s-dump-cluster.shツールで、特定のクラスタ・ダンプ用に作成されたディレクトリ構造は次のようになります:

$ CAPTURE_DIR
  cluster-dump
    directory per namespace (a directory at this level is assumed to represent a namespace)
      acme-orders.json
      application-configurations.json
      certificate-requests.json
      cluster-role-bindings.json
      cluster-roles.json
      cluster-roles.json
      coherence.json
      components.json
      {CONFIGNAME}.configmap (a file at this level for each configmap in the namespace)
      daemonsets.json
      deployments.json
      events.json
      gateways.json
      ingress-traits.json
      jobs.json
      multicluster-application-configurations.json
      multicluster-components.json
      multicluster-config-maps.json
      multicluster-logging-scopes.json
      multicluster-secrets.json
      namespace.json
      persistent-volume-claims.json
      persistent-volumes.json
      pods.json
      replicasets.json
      replication-controllers.json
      role-bindings.json
      services.json
      verrazzano-managed-clusters.json
      verrazzano-projects.json
      verrazzano_resources.json
      virtualservices.json
      weblogic-domains.json
      directory per pod (a directory at this level is assumed to represent a specific pod)
        logs.txt (includes logs for all containers and initContainers)
    api-resources.out
    application-configurations.json
    cluster-issuers.txt
    coherence.json
    configmap_list.out
    crd.json
    es_indexes.out
    gateways.json
    helm-ls.json
    helm-version.out
    images-on-nodes.csv
    ingress.json
    ingress-traits.json
    kubectl-version.json
    namespace_list.out
    network-policies.json
    network-policies.txt
    nodes.json
    pv.json
    verrazzano_resources.out
    virtualservices.json

スクリプトでは、実行されるkubectlおよびhelmコマンドが表示されます。前述の基本的な構造は、コマンド$ kubectl cluster-info dump --all-namespacesの実行で形成され、そのディレクトリ構造に追加データが取得されます。

my-cluster-dumpという名前のディレクトリにクラスタのダンプを実行するには:

$ sh k8s-dump-cluster.sh -d my-cluster-dump

verrazzano-analysisツールの使用

verrazzano-analysisツールは、k8s-dump-cluster.shを使用して取得されたクラスタ・ダンプのデータを分析し、検出された問題を報告し、実行する関連アクションを示します。これらのツールは、取得される内容、問題とアクションのナレッジ・ベース、および実行できる分析のタイプに関して、継続的に進化しています。

ユーザー、開発者および継続的インテグレーション(CI)は、このツールを使用して、発生した問題の根本原因をすばやく特定し、軽減アクションを決定し、他のユーザーまたはツールとの共有可能なレポートを提供できます。

分析で調べるデータは、対応する取得ツールで作成された構造に従います。たとえば、k8s-dump-cluster.shは特定の構造にクラスタをダンプし、共有しないデータを含むことがあります。ツールはデータを分析し、レポートを提供します。このレポートは問題を特定し、実行するアクションを示します。

verrazzano-analysisツールは、指定されたルート・ディレクトリの下にあるすべてのクラスタ・ダンプ・ディレクトリを検出および分析します。これにより、ディレクトリを作成し、関連するクラスタのクラスタ・ダンプを、ツールが分析できるサブディレクトリに保持できます。

たとえば:

my-cluster-dumps
    CAPTURE_DIR-1
        cluster-dump
            ...
    CAPTURE_DIR-2
        cluster-dump
            ...

このツールは、検出された各クラスタ・ダンプ・ディレクトリを分析します。単一のルート・ディレクトリのみを指定する必要があります。

クラスタの分析を実行するには:

$ verrazzano-analysis my-cluster-dumps

使用方法

Usage: verrazzano-analysis [options] captured-data-directory
パラメータ 定義 デフォルト
-actions レポートに処理を含めます。 true
-help 使用方法のヘルプを表示します。
-info 情報メッセージを含めます。 true
-minConfidence 問題についてレポートする最小信頼度しきい値(0-10)。 0
-minImpact 問題についてレポートする最小影響度しきい値(0-10)。 0
-reportFile レポート出力ファイルの名前。 stdoutへの出力。
-support レポートにサポート・データを含めます。 true
-version ツールのバージョンを表示します。