Collector for Kubernetesのアップグレードとその他のアップデート

Splunk Distribution of OpenTelemetry Collector for Kubernetes をアップグレードします。

Collector for Kubernetes のアップグレード

・ンストーラースクリプトは、aptやyumなど、サポートされているパッケージ・マネージャーのいずれかを使用してCollectorをインストールします。公式パッケージを使用して Collector を更新する場合、構成ファイルは上書きされません。更新後に構成を更新する必要がある場合は、後方互換性が失われる前に手動で編集します。

Collector for Kubernetesをアップグレードするには、以下のコマンドを実行します:

  • フラグ --reuse-values を使用して、Collector のインストール時または使用時に設定した設定値を保持します。

BASH
helm upgrade splunk-otel-collector splunk-otel-collector-chart/splunk-otel-collector
--reuse-values
  • アップグレード中に以前の設定を上書きするには、--values config.yaml を使用します:

BASH
helm upgrade splunk-otel-collector --values config.yaml splunk-otel-collector-chart/splunk-otel-collector --reuse-values

詳しくは「Helm アップグレードオプション」の公式ドキュメントを参照してください。

アップグレードガイドライン

特定のバージョンアップのために、Collector 構成ファイルに以下の変更を適用します。詳細については、GitHub の「Helm chart upgrade guidelines」を参照してください。

0.113.0から0.116.0

カスタムリソース定義(CRD)構成が変更されました。

  • v0.110.0以前のCRDは、crds/ディレクトリ(アップストリームデフォルト)を介してデプロイされていました。

  • v0.110.0からv1.113.0までのCRDは、問題が報告されていた、Helmテンプレート(アップストリームデフォルト)を使用してデプロイされていました。

  • v0.116.0 以降では、潜在的な問題を回避するために、CRD のデプロイ方法を明示的に設定するか、CRD を手動でデプロイする必要があります。新しく追加された値を有効にすることで、crds/ ディレクトリを介して CRD を再度展開できます。

新規のユーザー

新しいユーザーの場合は、crds/ ディレクトリを介して CRD を展開します。新規インストールの場合は、次の Helm 値を使用します。

YAML
operatorcrds:
  install: true
operator:
  enabled: true

チャートをインストールするには

BASH
helm install <release-name> splunk-otel-collector-chart/splunk-otel-collector --set operatorcrds.install=true,operator. enabled=true <extra_args>

現在のユーザー

operator.enabled=trueを使用している場合は、移行する必要がある可能性があります。

バージョン 0.110.0〜1.113.0 を使用している場合、CRD は Helm テンプレートを通じてデプロイされている可能性があります。推奨される crds/ ディレクトリデプロイメントに移行するには以下の手順に従います。

  1. 実行中の既存のチャートを削除する

    BASH
    helm delete <release-name>
  2. 以下のCRDが存在するかどうかを確認し、必要であれば削除します:

    BASH
    kubectl get crds | grep opentelemetry
    kubectl delete crd opentelemetrycollectors.opentelemetry.io
    kubectl delete crd opampbridges.opentelemetry.io
    kubectl delete crd instrumentations.opentelemetry.io
  3. 更新された構成でチャートを再インストールします:

    BASH
    helm install <release-name> splunk-otel-collector --set operatorcrds.install=true,operator.enabled=true <extra_args>

レガシーテンプレートを保守している現在のユーザー

チャートバージョン 0.110.0~1.113.0 を使用しており、Helm テンプレートによる CRD のデプロイを継続したい場合(非推奨)、以下の値を使用してください。

YAML
operator:
  enabled: true
operator:
  crds:
    create: true
注意: この方法は、インストールやアップグレードの際に競合状態を引き起こす可能性があります。

0.105.5から0.108.0

注: .Values.operator.instrumentation.spec.*にカスタマイズがない場合、移行は不要です。

オペレーターによる自動インストルメンテーションのためのHelmチャート構成が簡素化され、以前は.Values.operator.instrumentation.spec.*の下にあった値が.Values.instrumentation.*に移動されました。

更新されたパスは次のようになります:

YAML
instrumentation:
  endpoint: XXX
  ...

非推奨にされたパス:

YAML
operator:
  instrumentation:
    spec:
      endpoint: XXX
      ...

Collector for Kubernetesのアクセストークンを更新します。

注: アクセストークンを更新する過程で、Helm チャートまたは Collector のバージョンを更新しないように注意してください。詳しくは手順 3 を参照してください。

Collector for Kubernetesインスタンスのアクセストークンを更新するには、以下の手順に従ってください:

  1. Helm のリリース名とチャートのバージョンを確認します。以下を実行してください。

    BASH
    helm list -f <Release_Name>
  2. オプションで、現在のアクセストークンを確認することもできます:

    BASH
    helm get values <Release_Name>
  3. helm upgrade を使用して新しいアクセストークンをデプロイします。このコマンドではアクセストークンのみが更新され、現在の Helm チャートおよび Collector のバージョンは維持されます。

    BASH
    helm upgrade --reuse-values --version <Current_Chart_Version> --set splunkObservability.accessToken=<New_Access_Token> <Release_Name> splunk-otel-collector-chart/splunk-otel-collector

    現在の Helm バージョンではなく、最新の Helm バージョンを使用する場合は、コマンドから '--version <Current_Chart_Version>' を削除します。

  4. 更新されたアクセストークンの値を確認する:

    BASH
    helm get values <Release_Name>
  5. Collector の DaemonSet およびデプロイを再起動します。

    • agent.enabled=true の場合、Collector のエージェント DaemonSet を再起動します。

      BASH
      kubectl rollout restart DaemonSet <Release_Name>-agent
    • clusterReceiver.enabled=true の場合、Collector のクラスターレシーバデプロイメントを再起動します。

      BASH
      kubectl rollout restart deployment <Release_Name>-k8s-cluster-receiver
    • gateway.enabled=true の場合、Collector のゲートウェイデプロイメントを再起動します。

      BASH
      kubectl rollout restart deployment <Release_Name>
  6. クラスターのポッドのステータスを確認します。

    BASH
    kubectl get pod -n <Namespace> | grep <Release_Name>