Operator を使用して、 Kubernetes クラスタに IDOT をインストールする

「 Helm 」チャートを使用した IDOT オペレーターのインストール

Helm Kubernetes 用のパッケージ管理ツールです。 Helm を使用すると、複雑な Kubernetes アプリケーションを定義、インストール、およびアップグレードできます。

前提条件

  • Kubernetes 1.24 そして後で
  • Helm 3.9 そして後で
  • kubectl
  • カスタムリソース定義(CRD)を作成するためのクラスター管理者権限

手順

Kubernetes 環境に IDOT Operatorをインストールするには、以下の手順を実行してください:

  1. オプションですが推奨されます: 以下のコマンドを実行してオペレータ専用の名前空間を作成してください:

    kubectl create namespace instana-otel-operator
     
  2. 次のコマンドを実行して、 Kubernetes に IDOT オペレーターをインストールします

      helm install instana-otel-operator \
      --repo https://instana.github.io/instana-otel-collector instana-otel-collector-chart-operator \
      --namespace instana-otel-operator \
      --create-namespace \
      --set clusterName=<CLUSTER_NAME> \
      --set instanaEndpoint=<INSTANA_ENDPOINT> \
      --set instanaKey=<INSTANA_KEY> \
      --set daemonset.enabled=true \
      --set statefulset.enabled=true
    表 1. インストールパラメータ
    パラメーター 説明 必須
    clusterName Instana のUIで表示する Kubernetes クラスターの名前 はい
    instanaEndpoint Instana 環境の「 gRPC 」エンドポイント はい
    instanaKey Instana エンドポイントへの認証に使用するエージェントキー はい

    設定値の確認方法:

    これらのパラメータは、 Instana のUIで、「 Agent & collectors 」>「 OpenTelemetry Collectors 」の下に表示されます
    • [コレクターのインストール ] > [ Kubernetes オペレーター] をクリックします。
    • インストールコマンドでは:
      • INSTANA_KEY: フラグ -a の後に続くエージェントキーを探してください。
      • INSTANA_OTEL_ENDPOINT_GRPC: フラグ -e の後に続く「 gRPC 」というエンドポイントを探してください。
      • INSTANA_OTEL_ENDPOINT_HTTP: フラグ -H の後に続く「 HTTP 」というエンドポイントを探してください。
    注: この --create-namespace フラグは、名前空間が存在しない場合に、その名前空間を作成します。 名前空間がすでに存在する場合、または手動で作成された場合は、このフラグを省略できます。

    システム要件の詳細については、 「 IDOT 」のシステム要件をご覧ください。

  3. オペレーターのインストールを確認する: インストール後、次のコマンドを実行してオペレーターが正常にインストールされたことを確認します:

    kubectl get pods -n instana-otel-operator
     

    インストールが成功した場合、以下の出力が表示されます:

    NAME                                     READY   STATUS    RESTARTS   AGE
    instana-otel-operator-7d9f8b5c6d-xk2lm   2/2     Running   0          30s
     

    デプロイメントの年齢とポッドのIDは、インストールコマンドを実行した時期によって異なります。

  4. カスタムリソース定義(CRD)がインストールされていることを、次のコマンドを実行して確認してください:

    kubectl get crd | grep opentelemetry
     

    出力には OpenTelemetryCollector CRDが記載されている必要があります。

コレクター設定の更新

コレクター構成を更新するには、 OpenTelemetryCollector カスタムリソースを編集します:

kubectl edit opentelemetrycollector idot-daemonset -n instana-otel-operator
kubectl edit opentelemetrycollector idot-statefulset -n instana-otel-operator
 

オペレーターは変更を自動的に検出し、それに応じてコレクターポッドを更新します。

オペレータとコレクタの状態を確認中

オペレーターの状態を確認するには、次のコマンドを実行してください:

kubectl describe pod -n instana-otel-operator -l app.kubernetes.io/name=opentelemetry-operator
 

コレクターインスタンスの状態を確認するには、次のコマンドを実行します:

kubectl get opentelemetrycollector -n instana-otel-operator
 

特定のコレクターに関する詳細情報を表示するには、次のコマンドを実行します:

kubectl describe opentelemetrycollector idot-daemonset -n instana-otel-operator
kubectl describe opentelemetrycollector idot-statefulset -n instana-otel-operator
 

コレクターポッドのログを確認するには、次のコマンドを実行します:

kubectl logs -n instana-otel-operator -l app.kubernetes.io/managed-by=opentelemetry-operator
 

IDOT オペレーターのアップグレード

IDOT Operator を新しいバージョンにアップグレードするには、次のコマンドを実行してください:

helm upgrade instana-otel-operator \
  --repo https://instana.github.io/instana-otel-collector instana-otel-collector-chart-operator  \
  --namespace instana-otel-operator
 

オペレーターは、カスタムリソースで定義されたアップグレード戦略に従い、管理対象コレクターインスタンスのアップグレードを自動的に処理します。

Kubernetes から「 IDOT 」オペレーターをアンインストールする

オペレータをアンインストールするには、次の手順を完了してください:

  1. オペレータ「 Helm 」チャートをアンインストールします

    helm uninstall instana-otel-operator -n instana-otel-operator
     
  2. オプション: 以下のコマンドを実行して名前空間を削除します:

    kubectl delete namespace instana-otel-operator
     

Red Hat OpenShift への IDOT オペレーターのインストール

IDOT オペレーターは、 Red Hat OpenShift クラスターにもインストール可能です。

前提条件

Red Hat OpenShift 4.x クラスターにオペレーターをインストールする前に、CRDの作成とオペレーターの管理を行うためのクラスター管理者権限を持っていることを確認してください。

手順

Red Hat OpenShift クラスターにログインしたら、以下の手順に従って IDOT Operatorをインストールしてください:

  1. 任意ですが推奨されます: 以下のコマンドを実行して、オペレータ専用のプロジェクトを作成してください:

    oc new-project instana-otel-operator
     
  2. 次のコマンドを実行して、 Red Hat OpenShift クラスタに IDOT オペレーターをインストールします

      helm install instana-otel-operator \
      --repo https://instana.github.io/instana-otel-collector instana-otel-collector-chart-operator \
      --namespace instana-otel-operator \
      --create-namespace \
      --set clusterName=<CLUSTER_NAME> \
      --set instanaEndpoint=<INSTANA_ENDPOINT> \
      --set instanaKey=<INSTANA_KEY> \
      --set daemonset.enabled=true \
      --set statefulset.enabled=true
     
  3. Red Hat OpenShift のインストールを確認します:以下のコマンドを実行してオペレーターのポッドを確認します:

    oc get pods -n instana-otel-operator
     

    あるいは、クラスターにアクセスするマシンにコマンドがインストールされている場合は、次の kubectl コマンドを使用できます:

    kubectl get pods -n instana-otel-operator
     

Red Hat OpenShift から「 IDOT 」オペレーターをアンインストールする

Red Hat OpenShift から「 IDOT Operator」をアンインストールするには、次のコマンドを実行してください:

helm uninstall instana-otel-operator -n instana-otel-operator
 

IDOT オペレーターの設定

オペレータは Helm の値を通じて設定可能であり、コレクタインスタンスはカスタムリソースを通じて設定可能です。

オペレータ設定パラメータ

オペレーターのインストールまたはアップグレード時に、以下のパラメータを設定できます:

パラメーター 説明 Default
replicaCount オペレータレプリカの数 1
image.repository オペレータ画像リポジトリ ghcr.io/open-telemetry/opentelemetry-operator/opentelemetry-operator
image.tag オペレーター画像タグ チャートのバージョン
resources.limits.cpu オペレーターのCPU制限 100m
resources.limits.memory オペレータのメモリ制限 128Mi
resources.requests.cpu オペレータに対するCPU要求 100m
resources.requests.memory オペレータに対するメモリ要求 64Mi
manager.collectorImage.repository デフォルトのコレクターイメージリポジトリ ghcr.io/instana/instana-otel-collector

収集者カスタムリソースパラメータ

OpenTelemetryCollector カスタムリソースでは、以下のパラメータを設定できます:

パラメーター 説明
spec.mode コレクターのデプロイメントモード daemonset, deployment, statefulset, sidecar
spec.replicas レプリカ数(デプロイメントまたはステートフルセットモード) 整数
spec.image カスタムコレクター画像 イメージ参照
spec.config OpenTelemetry コレクター設定 YAML 文字列
spec.resources リソースの要求と制限 Kubernetes リソース仕様
spec.env 環境変数 環境変数の配列
spec.volumeMounts 収集ポッド用ボリュームマウント ボリュームマウントの配列
spec.volumes コレクターポッドの容量 巻の配列

リソース制限の例:

apiVersion: opentelemetry.io/v1alpha1
kind: OpenTelemetryCollector
metadata:
  name: instana-collector
  namespace: instana-otel-operator
spec:
  mode: daemonset
  resources:
    limits:
      cpu: 1.5
      memory: 768Mi
    requests:
      cpu: 0.5
      memory: 768Mi
  config: |
    # ... collector configuration ...
 

トラブルシューティング

Kubernetes または Red Hat OpenShift に IDOT をインストールする際、次のような問題が発生する可能性があります:

オペレーターがコレクターを作成していない

オペレーターがコレクターポッドを作成していない場合は、以下を確認してください:

  1. オペレータが実行中であることを確認してください:

    kubectl get pods -n instana-otel-operator
    kubectl logs -n instana-otel-operator -l app.kubernetes.io/name=opentelemetry-operator
     
  2. OpenTelemetryCollectors: を確認してください

    kubectl get opentelemetrycollector -n instana-otel-operator
     
  3. CRDがインストールされていることを確認してください:

    kubectl get crd opentelemetrycollectors.opentelemetry.io
     

コレクターポッドが起動しない

コレクターポッドが起動しない場合は、以下を確認してください:

  1. 以下のコマンドを実行してポッドのイベントを確認します:

    kubectl describe pod -n instana-otel-operator -l app.kubernetes.io/managed-by=opentelemetry-operator
     
  2. 以下のコマンドを実行して、コレクター構成が有効であることを確認してください:

    kubectl get opentelemetrycollector idot-daemonset -n instana-otel-operator -o yaml
    kubectl get opentelemetrycollector idot-statefulset -n instana-otel-operator -o yaml
     
  3. 次のコマンドを実行してリソースの制約を確認してください:

    kubectl top nodes
    kubectl top pods -n instana-otel-operator
     
  4. 次のコマンドを実行してコレクターログを確認します:

    kubectl logs -n instana-otel-operator -l app.kubernetes.io/managed-by=opentelemetry-operator
     

その他のトラブルシューティングの手順については、 「 IDOT のトラブルシューティング」を参照してください。