HELM グラフを使用した Red Hat OpenShift での Monitoring エージェントの管理

Kubernetes クラスタに Monitoring エージェントをインストール、アップグレード、および削除するには、 Helm チャートを使用できます。

開始前に

  • ローカルマシンに、バージョン 3 の Helm CLI の最新リリースをインストールしてください。

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

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

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

エージェントのデプロイ

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

ステップ 1. SysdigHelmリポジトリのセットアップ

「 Monitoring 」 Helm リポジトリを、 Helm インスタンスに追加します。

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

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

    obmcloud 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. Helm チャート sysdig/sysdig-deploy がリストされていることを確認します。

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

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

以下のコマンドを実行して、再試行してください。

rm $HOME/Library/Preferences/helm/repositories.lock

ステップ 2. 値のYAMLファイルを作成する

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

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

global:
  clusterConfig:
    name: CLUSTER_NAME
  sysdig:
    accessKey: MONITORING_INSTANCE_ACCESS_KEY
    secureAPIToken: SECURE_TOKEN
  kspm:
    deploy: true
agent:
  image:
    tag: AGENT_TAG
    registry: icr.io
  slim:
    enabled: true
    image:
      repository: ext/sysdig/agent-slim
    kmoduleImage:
      repository: ext/sysdig/agent-kmodule
  collectorSettings:
    collectorHost: INGESTION_ENDPOINT    # for example, ingest.eu-gb.monitoring.cloud.ibm.com
nodeAnalyzer:
  nodeAnalyzer:
    deploy: true
    apiEndpoint: API_ENDPOINT   # for example, eu-gb.monitoring.cloud.ibm.com
    benchmarkRunner:
      deploy: false
kspmCollector:
  apiEndpoint: API_ENDPOINT    # for example, eu-gb.monitoring.cloud.ibm.com
admissionController:
  enabled: true
  sysdig:
    url: WEB_UI_ENDPOINT    # for example, https://ingest.eu-gb.monitoring.cloud.ibm.com
  clusterName: CLUSTER_NAME

説明

  • CLUSTER_NAME は、エージェントをデプロイしているクラスターの名前です。
  • MONITORING_INSTANCE_ACCESS_KEY は Monitoring インスタンスのアクセス・キーです。
  • SECURE_TOKEN は Secure API トークンです。
  • AGENT_TAG これは、展開を予定しているエージェントのバージョンです。
  • INGESTION_ENDPOINT は、インスタンスの取り込みエンドポイントです。
  • API_ENDPOINT は、インスタンスの API エンドポイントです。
  • WEB_UI_ENDPOINT は、インスタンスの Web UI エンドポイントです。

エージェントをデプロイするための値 yaml ファイルのサンプル

例えば、 Monitoring エージェントのみをデプロイする値ファイルの以下のサンプルを参照してください。

global:
  clusterConfig:
    name: mycluster-au-syd
  sysdig:
    accessKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    secureAPIToken: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  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: ingest.au-syd.monitoring.cloud.ibm.com

エージェントおよび Node Analyzer をデプロイするための値 yaml ファイルのサンプル

例えば、 Monitoring エージェントと Node Analyzer コンポーネントをデプロイする値ファイルの以下のサンプルを参照してください。

global:
  clusterConfig:
    name: mycluster-au-syd
  sysdig:
    accessKey: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
    secureAPIToken: xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx
  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: ingest.au-syd.monitoring.cloud.ibm.com
nodeAnalyzer:
  nodeAnalyzer:
    deploy: true
    apiEndpoint: API_ENDPOINT   # for example, eu-gb.monitoring.cloud.ibm.com
    benchmarkRunner:
      deploy: false

ステップ 3. Helm チャートのインストール

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

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

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

エラー Error: INSTALLATION FAILED: Kubernetes cluster unreachable: xxxxxx failed to refresh token: oauth2: cannot fetch token: 400 Bad Request が発生した場合は、クラスター・コンテキストを設定して再試行してください。

エージェントの更新

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

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

    helm repo update
    
  2. エージェントをデプロイするために使用した値 yaml ファイルを見つけ、デプロイするエージェントのバージョンに合わせて agent.image.tag を変更します。

  3. エージェントをアップグレードします。

    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.6.3
    
  2. チャートをアンインストールします。

    helm delete sysdig-agent  -n ibm-observe
    

    Helm、 sysdig-agent がリリース名である。

    コマンドに名前空間をインクルードし忘れると、次のようなエラーが発生する: Error: uninstall: Release not loaded: sysdig-agent: release: not found.