HELM チャートを使用した Kubernetes クラスターでの Workload Protection エージェントの管理
Helm チャートを使用して、 Kubernetes クラスター上の Workload Protection エージェントをインストール、アップグレード、および削除できます。
開始前に
-
バージョン 3 の Helm CLI の最新リリースをローカル・マシンにインストールします。
Helm 3.6 以降が必要です。
Helm は、 Helm チャートを使用してクラスター内の複雑な Kubernetes アプリを定義、インストール、およびアップグレードする Kubernetes パッケージ・マネージャーです。 Helm チャートには、アプリを作成する Kubernetes リソースの YAML ファイルを生成するための指定内容がパッケージ化されています。 これらの Kubernetes リソースは、クラスターに自動的に適用され、 Helmによってバージョンに割り当てられます。 Helm を使用して独自のアプリを指定およびパッケージ化して、Kubernetes リソースの YAML ファイルを Helm に生成させることもできます。
-
Workload Protection エージェントをクラスターにデプロイするためのアクセス権限と権限があることを確認します。
-
ibm-observe
名前空間がクラスター内で使用可能であることを確認します。 エージェントはこの名前空間にデプロイされます。以下のコマンドを実行して、名前空間を作成できます。
kubectl create namespace ibm-observe
エージェントのデプロイ
Helmを使用してエージェントをデプロイするには、以下のステップを実行します。
ステップ 1. Sysdig Helm リポジトリーのセットアップ
Workload Protection Helm リポジトリーを Helm インスタンスに追加します。
以下のステップを実行します。
-
クラスター・コンテキストを設定します。
ibmcloud ks cluster config --cluster <CLUSTER_NAME>
-
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
-
すべての Helm チャートの最新バージョンを取得するようにリポジトリーを更新します。
helm repo update
-
Sysdig リポジトリーで現在使用可能な Helm チャートをリストします。
helm search repo sysdig
-
Helm チャート
sysdig/sysdig-deploy
がリストされていることを確認します。
ステップ 2 値 yaml ファイルの作成
yaml ファイルを定義し、デプロイする予定の Workload Protection エージェントと Secure コンポーネントをデプロイするための値を含めます。 例えば、ファイルに agent-values-monitor-secure.yaml
という名前を付けます。
以下の yaml は、 Workload Protection エージェントおよび Secure コンポーネントを構成するために使用できるテンプレートです。 このファイルをカスタマイズするには、エージェント・デプロイメントに不要なセクションを #
から削除するか、このセクションにコメントを付けます。
global:
clusterConfig:
name: CLUSTER_NAME
sysdig:
accessKey: SERVICE_ACCESS_KEY
kspm:
deploy: true
agent:
image:
registry: icr.io
slim:
enabled: true
image:
repository: ext/sysdig/agent-slim
kmoduleImage:
repository: ext/sysdig/agent-kmodule
collectorSettings:
collectorHost: INGESTION_ENDPOINT
nodeAnalyzer:
secure:
vulnerabilityManagement:
newEngineOnly: true
nodeAnalyzer:
runtimeScanner:
settings:
eveEnabled: true
deploy: true
apiEndpoint: API_ENDPOINT
benchmarkRunner:
deploy: false
kspmCollector:
apiEndpoint: API_ENDPOINT
説明
CLUSTER_NAME
は、エージェントをデプロイしているクラスターの名前です。SERVICE_ACCESS_KEY
は Workload Protection インスタンス・アクセス・キーです。INGESTION_ENDPOINT
は、インスタンスの取り込みエンドポイントです。 例:ingest.us-east.security-compliance-secure.cloud.ibm.com
API_ENDPOINT
は、インスタンスの API エンドポイントです。 例:us-east.security-compliance-secure.cloud.ibm.com
ステップ 3。 Helm チャートのインストール
エージェント、セキュア・コンポーネント、またはその両方をデプロイするには、 sysdig/sysdig-deploy
チャートをインストールする必要があります。 前のステップで構成したような変数 yaml ファイルを使用してチャートをインストールすることも、変数を直接構成することもできます。
以下のコマンドを実行して、helm チャートと変数 yaml ファイルを使用してエージェントをインストールします。
helm install -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml
以下のコマンドを実行して、Helm チャートを使用し、変数を設定してエージェントをインストールします。
helm install sysdig-agent sysdig/sysdig-deploy --namespace ibm-observe --create-namespace\
--set global.sysdig.accessKey=<SERVICE_ACCESS_KEY> \
--set agent.collectorSettings.collectorHost=<INGESTION_ENDPOINT> \
--set nodeAnalyzer.nodeAnalyzer.apiEndpoint=<API_ENDPOINT> \
--set nodeAnalyzer.nodeAnalyzer.runtimeScanner.settings.eveEnabled=true \
--set nodeAnalyzer.secure.vulnerabilityManagement.newEngineOnly=true \
--set global.kspm.deploy=true \
--set nodeAnalyzer.nodeAnalyzer.benchmarkRunner.deploy=false \
--set global.clusterConfig.name=<CLUSTER_NAME> \
--set kspmCollector.apiEndpoint=<API_ENDPOINT> \
--set agent.image.registry=icr.io \
--set agent.slim.image.repository=ext/sysdig/agent-slim \
--set agent.slim.kmoduleImage.repository=ext/sysdig/agent-kmodule
説明
CLUSTER_NAME
は、エージェントをデプロイしているクラスターの名前です。SERVICE_ACCESS_KEY
は Workload Protection インスタンス・アクセス・キーです。INGESTION_ENDPOINT
は、インスタンスの取り込みエンドポイントです。API_ENDPOINT
は、インスタンスの API エンドポイントです。
例えば、米国東部地域の場合、サンプルの Helm インストールは以下のようになります。
helm install sysdig-agent sysdig/sysdig-deploy --namespace ibm-observe \
--set global.sysdig.accessKey=<ENTER_YOUR_ACCESS_KEY> \
--set agent.collectorSettings.collectorHost=ingest.us-east.security-compliance-secure.cloud.ibm.com \
--set nodeAnalyzer.nodeAnalyzer.apiEndpoint=us-east.security-compliance-secure.cloud.ibm.com \
--set global.kspm.deploy=true \
--set nodeAnalyzer.nodeAnalyzer.benchmarkRunner.deploy=false \
--set global.clusterConfig.name=mycluster-au-syd \
--set kspmCollector.apiEndpoint=us-east.security-compliance-secure.cloud.ibm.com \
--set agent.image.registry=icr.io \
--set agent.slim.image.repository=ext/sysdig/agent-slim \
--set agent.slim.kmoduleImage.repository=ext/sysdig/agent-kmodule
エラー Error: INSTALLATION FAILED: Kubernetes cluster unreachable: xxxxxx failed to refresh token: oauth2: cannot fetch token: 400 Bad Request
が発生した場合は、クラスター・コンテキストを設定して再試行してください。
エージェントの更新
Helmを使用してエージェント・バージョンを更新するには、以下の手順を実行します。
-
チャートを更新します。
helm repo update
-
エージェントをデプロイするために使用した値 yaml ファイルを見つけ、デプロイするエージェントのバージョンに合わせて
agent.image.tag
を変更します。 -
エージェントをアップグレードします。
helm upgrade -n ibm-observe sysdig-agent sysdig/sysdig-deploy -f agent-values-monitor-secure.yaml
エージェントの削除
Helmを使用してエージェントを削除するには、チャートをアンインストールする必要があります。
以下のステップを実行します。
-
インストールされているチャートをリストします。
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.6.3
-
チャートをアンインストールします。
helm delete sysdig-agent -n ibm-observe
Helmの用語では、
sysdig-agent
はリリースの名前です。コマンドに名前空間を含めるのを忘れた場合は、
Error: uninstall: Release not loaded: sysdig-agent: release: not found
というエラーが表示されます。