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

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

Collector for Kubernetes のアップグレード

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

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

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

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

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 値を使用します。

operatorcrds:
  install: true
operator:
  enabled: true

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

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. 実行中の既存のチャートを削除する

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

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

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

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

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

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

0.105.5から0.108.0

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

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

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

instrumentation:
  endpoint: XXX
  ...

非推奨にされたパス:

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

・ンストーラースクリプトは、aptやyumなど、サポートされているパッケージ・マネージャーのいずれかを使用してCollectorをインストールします。

公式パッケージを使用して Collector を更新する場合、構成ファイルは上書きされません。更新後に構成を更新する必要がある場合は、後方互換性が失われる前に手動で編集します。

一般的なガイドライン

特定のバージョンアップのために、Collector 構成ファイルに以下の変更を適用します。

0.96.1 から 0.97.0

memory_ballast は今後有効ではありません。SPLUNK_MEMORY_TOTAL_MIB 環境変数を使用して、ソフトメモリ制限でガベージコレクションを制御できるようになりました。この制限はデフォルトで総メモリの 90% に設定されています。詳細は「環境変数」を参照してください。

以下の手順に従って、Collector インスタンスが正しく動作することを確認してください:

  • memory_ballast をカスタマイズしていない場合は、設定から削除してください。

  • SPLUNK_BALLAST_SIZE_MIB (またはextensions::memory_ballast::size_mib config )を使用して memory_ballast をカスタマイズしている場合は、memory_ballast エクステンションを削除し、GOMEMLIMIT 環境変数を使用してカスタムソフトメモリ制限を設定します:

    • ガベージコレクションの頻度を上げるには、GOMEMLIMIT を、デフォルトである総メモリの90%より高い値に設定します。

    • ガベージコレクションの頻度を減らすには、GOMEMLIMIT を、デフォルトである総メモリの90%より低い値に設定します。

    • 詳細は「Go environment variables」を参照してください。

0.68.0 から 0.69.0

resourcedetection プロセッサの gke および gce リソースディテクタが gcp リソースディテクタに置き換えられました。 resourcedetection プロセッサに gke および gce ディテクタを構成した場合、その構成に応じて更新します。

詳しくは「リソース検出プロセッサ」を参照してください。

0.41.0 から 0.42.0

The Splunk Distribution of OpenTelemetry Collector は、ユーザー設定を 2 回評価していたため、不要な環境変数の展開を防ぐために各 $ 記号を $$ でエスケープする必要がありました。この問題は 0.42.0 バージョンで修正されました。設定に $$ が出現する場合は、$ に置き換える必要があります。

0.35.0 から 0.36.0

コンフィグパラメーター exporters -> otlp -> insecureexporters -> otlp -> tls -> insecure に移動します。

otlp エクスポーターのコンフィギュレーションは次のようになっている必要があります:

exporters:
  otlp:
    endpoint: "${SPLUNK_GATEWAY_URL}:4317"
    tls:
      insecure: true

0.34.0 から 0.35.0

ballast_size_mib パラメータを memory_limiter プロセッサーから memory_ballast エクステンションに移動し、名前を size_mib に変更します。

extensions:
  memory_ballast:
    size_mib: ${SPLUNK_BALLAST_SIZE_MIB}

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

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

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

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

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

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

    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. 更新されたアクセストークンの値を確認する:

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

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

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

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

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

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