Image Assuranceのトラブルシューティング

エージェントのインストールステータスの確認

インベントリエージェントのインストールは、Image Assurance を実行するための基本要件です。

  • Image Assuranceページでは、すべてのノードの状態を確認できますが、実際にはエンジンポッドのみがCloudGuardと通信します。

  • インストール済みポッド:

    • アセットマネージメントエージェント(インベントリ展開) - Image Assuranceの基本要件

    • 少なくとも1 つのimagescan-engine ポッド

    • imagescan-daemon ポッドのデーモンセット- ノード数に応じて。また、使用可能な制御プレーンノードでも実行されます。

      2 つのノードを持つクラスタの例:

      ~$ kubectl -n checkpoint get pods
      NAME                                             READY   STATUS     RESTARTS AGE
      asset-mgmt-imagescan-daemon-k6xbj                3/3     Running   0          18m
      asset-mgmt-imagescan-daemon-svvpn                3/3     Running   0          18m
      asset-mgmt-imagescan-engine-6c986bb4c5-2tdx8     2/2     Running   0          18m
  • pod を取得- すべてのコンテナの準備ができていることを確認します。

    • imagescan-engine (中央) - 1 ポッド - 2/2 レディ

    • imagescan-daemon - X ポッド- 3/3 準備完了ごと(ノード数X、Docker コンテナランタイム- コンテナ数2)

  • Get Logs - エラーが表示されないことを確認します。

    • inventory-agent pod - ログにエラーがなく、すべてのエンティティが正常にアップロードされていることを確認します。

    • imagescan-engine (中央) - エラーがないこと、およびスキャンが正常に完了したことを確認します。

    • imagescan-daemon - エラーがないこと、および中央ポッドがノードエージェントからイメージをフェッチできることを確認します。

      例:

      # kubectl -n checkpoint logs asset-mgmt-imagescan-engine-6f7bf8787b-tkw77 engine | grep -i error

  • 基本的な使用法- Image Assurance がデプロイされている場合、高度な構成設定を除き、ユーザの操作は必要ありません。

    • イメージの読み取りは、最小から最大まで開始されます。

セントラルエージェント環境変数

名前

デフォルト値

コメント

LOG_LEVEL

情報

可能な値: debug、trace、warn、error

ノードエージェントの場合と同じ

CP_IMAGESCAN_INTERNAL_PROTO

HTTPS

HTTP として設定した場合、エージェントは通信にHTTPS ではなくHTTP を使用します。

環境変数を設定するには、次のいずれかのオプションを選択します。

  • 関連するimagescan ワークロードを編集し、LOG_LEVEL をdebug の値で追加します。

    • 実行中の場合は、次のようにします。

      kubectl edit deploy asset-mgmt-imagescan-image -n checkpoint

    • またはヘルムで:

      cloudguard/templates/addons/imagescan

  • Helmコマンドに変数を追加します。たとえば、関連する環境変数名と値を入力します。正しいインデックスを使用していることを確認します。

    --set-string addons.imageScan.daemon.env[0].name=CP_IMAGESCAN_INTERNAL_PROTO,addons.imageScan.daemon.env[0].value="HTTP" \
    --set-string addons.imageScan.engine.env[0].name=CP_IMAGESCAN_INTERNAL_PROTO,addons.imageScan.engine.env[0].value="HTTP" \

  • myvalues.yaml ファイルを作成し、環境変数をファイルに入れて、Helm -f myvalues.yaml に追加します。

イスティオ

Istio はImageScan エンジンとImageScan デーモンエージェント間の相互TLS を切断するHTTPS プロキシを追加するため。HTTP への通信に使用するプロトコルを変更します。これは、ImageScan EngineデプロイメントおよびImageScanデーモンDaemonSetに渡される環境変数を介して行われます。CP_IMAGESCAN_INTERNAL_PROTO=HTTP.このためには、Helm のインストールまたはアップグレードコマンドに次の行を追加します(他の環境変数が変更されていない場合は、インデックス0 が使用されます)。

--set-string addons.imageScan.daemon.env[0].name=CP_IMAGESCAN_INTERNAL_PROTO,addons.imageScan.daemon.env[0].value="HTTP" \

--set-string addons.imageScan.engine.env[0].name=CP_IMAGESCAN_INTERNAL_PROTO,addons.imageScan.engine.env[0].value="HTTP

一般的なエラー

  1. エンジンおよびデーモンポッドが通信できず、ImageScan エンジンがタイムアウトエラーを報告した場合、クラスタ構成が原因である可能性があります。

    handleImageListTask returned error: get image list failed from agent at 172.17.0.3 (ubuntu2004): from https://consec1-imagescan-daemon:8443/imagelist: Get "https://172.17.0.3:8443/imagelist: dial tcp 172.17.0.3:8443: i/o timeout

  2. エンジンポッドとデーモンポッドが通信できず、ImageScanエンジンが証明書検証エラーを報告した場合、Helmのアップグレード後に1回(ImageScanデーモンポッドとの接続ごと)発生する可能性があります。これは、ポッドが次々に再起動され、内部通信に以前の証明書を使用しているものと、すでに新しい証明書を使用しているものがあるためです。