IBM Cloud Docs
HELM チャートを使用した Satellite クラスターでの Workload Protection エージェントの管理

HELM チャートを使用した Satellite クラスターでの Workload Protection エージェントの管理

Helm チャートを使用して、 Satellite クラスター上で Workload Protection コンポーネントをインストール、アップグレード、および削除することができます。

開始前に

  • IBM Cloud CLI (ibmcloud)、Kubernetes Service プラグイン (ibmcloud oc)、および IBM Cloud Container Registry プラグイン (ibmcloud cr) をインストールします

  • バージョン 3 の Helm CLI の最新リリースをローカル・マシンにインストールします。

    Helm 3.6 以降が必要です。

    Helm は、 Helm チャートを使用してクラスター内の複雑な Kubernetes アプリを定義、インストール、およびアップグレードする Kubernetes パッケージ・マネージャーです。 Helm チャートには、アプリを作成する Kubernetes リソースの YAML ファイルを生成するための指定内容がパッケージ化されています。 これらの Kubernetes リソースは、クラスターに自動的に適用され、 Helmによってバージョンに割り当てられます。 Helm を使用して独自のアプリを指定およびパッケージ化して、Kubernetes リソースの YAML ファイルを Helm に生成させることもできます。

  • Red Hat OpenShift(oc)CLI および Kubernetes(kubectl)CLI をインストールします

  • Workload Protection エージェントをクラスターにデプロイするためのアクセス権限と権限があることを確認します。

  • ibm-observe 名前空間がクラスター内で使用可能であることを確認します。 エージェントはこの名前空間にデプロイされます。 プロジェクトは、クラスター内の名前空間です。

    次のコマンドを実行して、名前空間を作成できます。 oc adm new-project --node-selector='' ibm-observe

  • Workload Protection ingest エンドポイントを取得します。 このエンドポイントは、次のステップで作成されるエンドポイントとは異なります。 Satellite ロケーションにアクセスし、 「リンク・エンドポイント」 および 「システム・エンドポイント」 を選択します。 ingest.private.<region>.monitoring.cloud.ibm.com を指す satellite-sysdig- で始まる system エンドポイントをコピーします。 このエンドポイントは、後で INGESTION_SATELLITE_ENDPOINT として使用できます。

Workload Protection コンポーネントをデプロイする前に、 Workload Protection プライベート API エンドポイントの Satellite リンク・エンドポイント を作成します。

エージェントのデプロイ

Helmを使用してエージェントをデプロイするには、以下のステップを実行します。

ステップ 1. クラスター・コンテキストのセットアップ

  1. アカウントにログインします。 統合されたアカウントがある場合は、--sso オプションを含めます。

    ibmcloud login [-g <resource_group>] [--sso]
    
  2. クラスターの kubeconfig 構成ファイルをダウンロードし、kubeconfig の既存の ~/.kube/config に追加するか、KUBECONFIG 環境変数の最後のファイルに追加します。

    ibmcloud oc cluster config --cluster <cluster_name_or_ID>
    
  3. ブラウザーで、マスター URL のアドレスに /console を付加してナビゲートします。 例えば、https://c0.containers.cloud.ibm.com:23652/consoleなどです。

  4. Red Hat OpenShift Web コンソールのメニュー・バーで、プロファイル IAM#user.name@email.com >「Copy Login Command」 をクリックします。 oc login トークン・コマンドを表示してコマンド・ラインにコピーし、CLI で認証を受けます。

  5. バージョンを調べて、ご使用のクラスターで oc コマンドが正常に実行されることを確認します。

    oc version
    

    出力は、以下の例のようになります。

    Client Version: v4.11.0
    Kubernetes Version: v1.25.8.2
    

ステップ 2 Sysdig Helm リポジトリーのセットアップ

Workload Protection Helm リポジトリーを Helm インスタンスに追加します。

以下のステップを実行します。

  1. クラスター・コンテキストを設定します。

    ibmcloud ks cluster config --cluster <CLUSTER_NAME>
    
  2. Helm リポジトリーを追加します。

    helm repo add sysdig https://charts.sysdig.com
    

    以下のエラーを受け取る場合があります。

    helm repo add sysdig https://charts.sysdig.com    --debug
    Error: context deadline exceeded
    helm.go:84: [debug] context deadline exceeded
    

    以下のコマンドを実行し、 Helm リポジトリーの追加を再試行します。

    rm $HOME/Library/Preferences/helm/repositories.lock
    
  3. すべての Helm チャートの最新バージョンを取得するようにリポジトリーを更新します。

    helm repo update
    
  4. Sysdig リポジトリーで現在使用可能な Helm チャートをリストします。

    helm search repo sysdig
    
  5. Helm チャート sysdig/sysdig-deploy がリストされていることを確認します。

ステップ 3。 Helm 値ファイルを作成します。

yaml ファイルを定義し、デプロイする予定の Workload Protection コンポーネントをデプロイするための値を組み込みます。 例えば、ファイルに agent-values-monitor-secure.yaml という名前を付けます。

以下の yaml は、 Workload Protection コンポーネントの構成に使用できるテンプレートです。 このファイルをカスタマイズするには、エージェント・デプロイメントに不要なセクションを削除するか、 # にコメントを追加します。

agent:
  collectorSettings:
    collectorHost: INGESTION_SATELLITE_ENDPOINT
    collectorPort: INGESTION_SATELLITE_ENDPOINT_PORT
  slim:
    enabled: true
global:
  clusterConfig:
    name: CLUSTER_NAME
  kspm:
    deploy: true
  sysdig:
    accessKey: SERVICE_ACCESS_KEY
    apiHost: API_ENDPOINT
nodeAnalyzer:
  secure:
    vulnerabilityManagement:
      newEngineOnly: true
  nodeAnalyzer:
    runtimeScanner:
      deploy: false
    benchmarkRunner:
      deploy: false
    hostScanner:
      deploy: false
    deploy: true
  natsUrl: wss://API_ENDPOINT
  sslVerifyCertificate: false
kspmCollector:
  natsUrl: wss://API_ENDPOINT
  sslVerifyCertificate: false
clusterScanner:
  enabled: true
  eveEnabled: true
  sslVerifyCertificate: false

ここで、

  • CLUSTER_NAME は、エージェントをデプロイしているクラスターの名前です。
  • SERVICE_ACCESS_KEY は、 Workload Protection インスタンスのアクセス・キーです。
  • INGESTION_SATELLITE_ENDPOINT は、取り込みエンドポイントを指す Satellite ・エンドポイント です。 例えば、c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloudなどです。
  • INGESTION_SATELLITE_ENDPOINT_PORT は、 ingest エンドポイントを指す、以前に抽出された Satellite エンドポイント からのポートです。 例えば、30771です。
  • API_ENDPOINT は、 Workload Protection プライベート API エンドポイントを指す、前に抽出した Satellite エンドポイントです。 例えば、c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud:31924などです。 この場合、ホスト名とポートの両方が一緒に定義されます。

ステップ 4: Helm チャートのインストール

エージェント、 Workload Protection コンポーネント、またはその両方をデプロイするには、 sysdig/sysdig-deploy チャートをインストールし、前のステップで構成した変数 yaml ファイルを使用する必要があります。

helm チャートを使用してエージェントをインストールするには、以下のコマンドを実行します。

helm install -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml

Helm 値ファイルを使用せずに Workload Protection コンポーネントを直接インストールする場合は、 --set を使用してすべての変数を設定する以下のコマンドを実行できます。

helm install sysdig-agent sysdig/sysdig-deploy --namespace ibm-observe --create-namespace\
    --set global.sysdig.accessKey=<SERVICE_ACCESS_KEY> \
    --set global.sysdig.apiHost=<API_ENDPOINT> \
    --set agent.collectorSettings.collectorHost=<INGESTION_SATELLITE_ENDPOINT> \
    --set agent.collectorSettings.collectorPort=<INGESTION_SATELLITE_ENDPOINT_PORT> \
    --set nodeAnalyzer.natsUrl=wss://<API_ENDPOINT> \
    --set nodeAnalyzer.nodeAnalyzer.runtimeScanner.deploy=false \
    --set nodeAnalyzer.nodeAnalyzer.hostScanner.deploy=false \
    --set nodeAnalyzer.nodeAnalyzer.benchmarkRunner.deploy=false \
    --set nodeAnalyzer.nodeAnalyzer.sslVerifyCertificate=false \
    --set nodeAnalyzer.secure.vulnerabilityManagement.newEngineOnly=true \
    --set global.kspm.deploy=true \
    --set global.clusterConfig.name=<CLUSTER_NAME> \
    --set kspmCollector.natsUrl=wss://<API_ENDPOINT> \
    --set kspmCollector.sslVerifyCertificate=false \
    --set clusterScanner.enabled=true \
    --set clusterScanner.eveEnabled=true \
    --set clusterScanner.sslVerifyCertificate=true

ここで、

  • CLUSTER_NAME は、エージェントをデプロイしているクラスターの名前です。
  • SERVICE_ACCESS_KEY は、 Workload Protection インスタンスのアクセス・キーです。
  • INGESTION_SATELLITE_ENDPOINT は、 ingest エンドポイントを指す 以前に抽出されたSatellite エンドポイント です。 例えば、c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloudです。
  • INGESTION_SATELLITE_ENDPOINT_PORT は、 ingest エンドポイントを指す、以前に抽出された Satellite エンドポイント からのポートです。 例えば、30771です。
  • API_ENDPOINT は、 Workload Protection プライベート API エンドポイントを指す、前に抽出した Satellite エンドポイントです。 例えば、c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud:31924などです。 この場合、ホスト名とポートの両方が一緒に定義されます。

エージェントの更新

Workload Protection を 2 カ月に 1 回以上更新することをお勧めします。

Helmを使用してエージェントのバージョンを更新するには、以下の手順を実行します。

  1. チャートを更新します。

    helm repo update
    
  2. エージェントをアップグレードします。

    helm upgrade -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml
    

エージェントの削除

Helmを使用してエージェントを削除するには、チャートをアンインストールする必要があります。

以下のステップを実行します。

  1. インストールされているチャートをリストします。

    helm list -n ibm-observe
    

    このコマンドの出力には、以下のようなグラフがリストされます。

    NAME        	NAMESPACE  	REVISION	UPDATED                             	STATUS  	CHART              	  APP VERSION
    sysdig-agent	ibm-observe	1       	2023-03-24 15:02:58.408108 +0100 CET	deployed	sysdig-deploy-1.37.10
    
  2. チャートをアンインストールします。

    helm delete sysdig-agent  -n ibm-observe
    

    Helmの用語では、 sysdig-agent はリリースの名前です。

    コマンドに名前空間を含めるのを忘れた場合は、次のエラーが表示されます: Error: uninstall: Release not loaded: sysdig-agent: release: not found