Helm チャートを使用した ロギング・エージェント バージョンのアップグレード

Helm チャートを使用することで、 ロギング・エージェント バージョンをアップグレードできる。

以下の手順を実行して、クラスタに配置されているエージェントのバージョンをアップグレードします:

以前のバージョンの ロギング・エージェント をインストールしており、クラスタ内で config マップを直接変更してエージェントの設定を更新した場合は、 helm upgrade コマンドを実行する前に、クラスタから config マップのコピーを作成してください。 ロギング・エージェント が更新されると、コンフィグマップに加えられた変更はすべて上書きされる。

開始前に

  • Kubernetesクラスタにアクセスし、ネームスペースの作成とエージェントのデプロイを行う権限があることを確認してください。

  • ロギングエージェントの現在の設定マップのコピーを取る。 実行: kubectl get cm logs-agent -n ibm-observe -o yaml > logging-agent-backup-cm.yaml

  • 以下の CLI をインストールします。

    • IBM CloudにログインするためのCLIです。IBM Cloudにログインし、APIキーの作成などIBM Cloudサービスを管理するためのCLI。

    • kubectl コマンドを使用して Kubernetes クラスタを管理するための Kubernetes CLI。 詳細はこちら

    • コマンドラインからOpenShiftクラスタを管理するOpenshift CLI。 詳細はこちらをご覧ください

  • ロギング・エージェント について読む。

  • 利用可能なエージェントのバージョンを確認する。 詳細については、利用可能なエージェントのバージョンを確認する を参照してください。 Helmチャートのバージョンはエージェントのバージョンと一致することに注意してください - 例えば、エージェントのバージョン1.3.0を使用している場合、そのバージョンに付随するバージョン1.3.00のHelmチャートがあります。

ステップ 1. ロギング・エージェントの Helmチャート値ファイルを更新する

以下のステップを完了し、展開する予定のエージェントバージョンでHelmチャートを変更します:

  1. エージェントの配置に使用した logs-values.yaml という名前のファイルを以下の内容で更新する:

    logs-values.yaml ファイルには、デプロイメントに固有の設定が含まれています。

    エージェントのデプロイに使用した logs-values.yaml ファイルがない場合は、エージェントの現在の configmap 設定に基づいて作成します。

    metadata:
      name: "logs-agent"
    image:
      version: "1.6.1"  # Modify the agent version and enter the version that you want to deploy
    
    clusterName: "ENTER_CLUSTER_NAME"     # Enter the name of your cluster. This information is used to improve the metadata and help with your filtering.
    
    additionalMetadata: # add additional metadata, for example:
      region: au-syd
      env: production
      logs-agent-version: 1.6.1     # Enter the agent version that you want to deploy
    
    env:
      # ingestionHost is a required field. For example:
      # ingestionHost: "<logs instance>.ingress.us-east.logs.cloud.ibm.com"
      ingestionHost: "" # required
    
      # If you are using private CSE proxy, then use port number "3443"
      # If you are using private VPE Gateway, then use port number "443"
      # If you are using the public endpoint, then use port number "443"
      ingestionPort: "" # required
    
      iamMode: "TrustedProfile"
      # trustedProfileID - trusted profile id - required for iam trusted profile mode
      trustedProfileID: "" # required if iamMode is set to TrustedProfile
    
    

ステップ 2 エージェントの更新

もし'iamMode を'IAMAPIKey として使用する場合、apikeyは'logs-agent 名前のKubernetesシークレットに'IAM_API_KEY キー名で存在する必要がある。 シークレットは、helmのインストール時に'--set secret.iamAPIKey=<your iamAPIKey> オプションを含めることで、'Helmチャートを使用して作成することができます。 シークレットを手動で作成した場合、または'iamMode=TrustedProfile 使用している場合は、このオプションを含めないでください。

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

  1. クラスターにログインします。 詳細については 、「クラスタへのアクセス」 を参照してください。

  2. エージェントを更新する。

    以前のバージョンの ロギング・エージェント をインストールしており、クラスタ内で config マップを直接変更してエージェントの設定を更新した場合は、 helm upgrade コマンドを実行する前に、クラスタから config マップのコピーを作成してください。 ロギング・エージェント が更新されると、コンフィグマップに加えられた変更はすべて上書きされる。

    iamMode=TrustedProfile 場合、完全なコマンドは次のようになる:

    helm upgrade <install-name> oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe
    

    iamMode=IAMAPIKey 場合、完全なコマンドは次のようになる:

    helm upgrade <install-name> oci://icr.io/ibm-observe/logs-agent-helm --version <chart-version> --values <PATH>/logs-values.yaml -n ibm-observe --set secret.iamAPIKey=<APIKey-value>
    

    ここで、

    • <install-name> は のインストール名 ( ) です。以下のコマンドを実行すると、インストール名を取得できます: Helmlogs-agent helm list -n ibm-observe
    • <chart-version> はヘルムチャートのバージョン。 Helmチャートのバージョンはエージェントのイメージバージョンと一致している必要があります。 詳しくは Helmのチャートバージョン をご覧ください。
    • <PATH> は 'logs-values.yaml ファイルがあるディレクトリパスである。
    • <APIKey-value> は ServiceID に関連付けられたIAM APIキーです。

    例えば、'logs-values.yaml ファイルがあるディレクトリから以下のコマンドを実行できる:

    helm upgrade logs-agent oci://icr.io/ibm-observe/logs-agent-helm --version 1.5.0 --values ./logs-values.yaml -n ibm-observe --set secret.iamAPIKey=<secret>
    

    インストールされているエージェント名とチャートバージョンを確認するには、 helm list -n NAMESPACE を実行します。

  3. エージェントポッドを再起動します。

    Kubernetesクラスタの場合は、実行する:

    kubectl -n ibm-observe rollout restart ds/logs-agent
    

    OpenShiftクラスタの場合は、実行する:

    oc -n ibm-observe rollout restart ds/logs-agent
    
  4. すべてのポッドが再起動し、 running ステータスで、エラーを報告していないことを確認します。

    Kubernetesクラスタの場合は、実行する:

    kubectl get pods -n ibm-observe
    

    OpenShiftクラスタの場合は、実行する:

    oc get pods -n ibm-observe
    

ステップ 3。 ログが目的の宛先に配信されていることを確認する

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

  1. あなたIBM Cloud LogsインスタンスのウェブUIにアクセスしてください。

  2. エージェントが正しく設定されている場合、デフォルトのダッシュボードビューでログを見ることができます。 ロギング・エージェントは、クラスタ名を含むkubernetesオブジェクトでログレコードをタグ付けします。

    kubernetes.cluster_name:<CLUSTER_NAME>
    

    IBM Cloud Logsインスタンスでクエリ'kubernetes.cluster_name:<YOUR_CLUSTER_NAME> を実行すると、クラスタで生成されたログを検索できます。