Helm チャートを使用して、 Satellite クラスター内の Workload Protection エージェントを管理する

Helm のチャートを使用すると、 Satellite クラスタ上の Workload Protection エージェントのインストール、アップグレード、および削除を行うことができます。

開始前に

  • IBM Cloud CLI、 Kubernetes Service プラグイン、 IBM Cloud Container Registry プラグイン、および Red Hat OpenShift と Kubernetes のCLIをインストールします。 詳細については、「 CLIのインストール 」をご覧ください。

  • ローカルマシンに、 Helm CLI の最新リリースをインストールしてください。 Helm 3.6 以降のバージョンが必要です。

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

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

  • クラスタから Workload Protection エンドポイントへのアウトバウンド・トラフィックは、ポート 443 および 6443 に接続する必要があります。

  • クラスタに Workload Protection エージェントをデプロイするために必要なアクセス権と権限が与えられていることを確認してください。

  • クラスタ内で「 ibm-observe 」ネームスペースが利用可能であることを確認してください。 このエージェントはこのネームスペースにデプロイされています。

    名前空間を作成するには、 oc adm new-project --node-selector='' ibm-observe を実行してください。

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

  • クラスタから Workload Protection エンドポイントへの送信トラフィックが、ポート 443 および 6443 で許可されていることを確認してください。

エージェントの展開

Helm を使用してエージェントをデプロイするには、以下の手順を実行してください。

クラスタコンテキストを設定する

  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 > ログインコマンドをコピー )をクリックします。 CLI から認証を行うには、 oc login トークンコマンドを表示し、その内容をコマンドラインにコピーしてください。

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

    oc version
    

    出力例:

    Client Version: v4.11.0
    Kubernetes Version: v1.25.8.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
    
  3. リポジトリを更新して、すべての Helm チャートの最新バージョンを取得します。

    helm repo update
    
  4. Sysdig リポジトリで現在利用可能な「 Helm 」のチャートを一覧表示してください。

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

Helm 値ファイルを作成します。

YAML ファイルを定義し、展開を予定している Workload Protection コンポーネントの値を記述してください。 たとえば、ファイル名を「 agent-values-monitor-secure.yaml 」とします。

以下の「 YAML 」は、 Workload Protection の各コンポーネントを設定するために使用できるテンプレートです。 エージェントの展開に不要なセクションを削除するか、 # でコメントアウトすることで、このファイルをカスタマイズできます。

agent:
  ebpf:
    enabled: true
    kind: universal_ebpf
  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
先ほど抽出した、 Satellite エンドポイントからingest エンドポイントを指すポートです。 例えば、30771などです。
API_ENDPOINT
先ほど抽出した Satellite エンドポイントは、 Workload Protection というプライベートAPIエンドポイントを指しています。 例えば、c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud:31924 です。 この場合、ホスト名とポートの両方が一緒に定義されます。

「 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 agent.ebpf.enabled=true \
    --set agent.ebpf.kind=universal_ebpf \
    --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
先ほど抽出した Satellite エンドポイントはingest エンドポイントを指しています。 例えば、c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloudなどです。
INGESTION_SATELLITE_ENDPOINT_PORT
先ほど抽出した、 Satellite エンドポイントからingest エンドポイントを指すポートです。 例えば、30771などです。
API_ENDPOINT
先ほど抽出した Satellite エンドポイントは、 Workload Protection というプライベートAPIエンドポイントを指しています。 例えば、c1bcda0323e0ef4b83aba-6b64a6ccc9c596bf59a86625d8fa2202-c111.us-east.satellite.appdomain.cloud:31924 です。 この場合、ホスト名とポートの両方が一緒に定義されます。

エージェントの更新

Workload Protection エージェントは、少なくとも2か月に1回は更新してください。

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

  1. Helm リポジトリを更新します。

    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 がリリースの名称です。