Operator を使用して、 Kubernetes クラスタに IDOT をインストールする
Instana ディストリビューションの OpenTelemetry Collector ( IDOT ) オペレーターは、クラスター内で OpenTelemetry Collectorを展開および管理するための、 Kubernetes ネイティブな方法を提供します。 オペレーターはコレクターインスタンスのライフサイクル管理を自動化し、大規模な環境でのコレクターのデプロイ、設定、保守を容易にします。
「 Helm 」チャートを使用した IDOT オペレーターのインストール
Helm Kubernetes 用のパッケージ管理ツールです。 Helm を使用すると、複雑な Kubernetes アプリケーションを定義、インストール、およびアップグレードできます。
前提条件
- Kubernetes 1.24 そして後で
- Helm 3.9 そして後で
- kubectl
- カスタムリソース定義(CRD)を作成するためのクラスター管理者権限
手順
Kubernetes 環境に IDOT Operatorをインストールするには、以下の手順を実行してください:
オプションですが推奨されます: 以下のコマンドを実行してオペレータ専用の名前空間を作成してください:
kubectl create namespace instana-otel-operator次のコマンドを実行して、 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 」のシステム要件をご覧ください。
オペレーターのインストールを確認する: インストール後、次のコマンドを実行してオペレーターが正常にインストールされたことを確認します:
kubectl get pods -n instana-otel-operatorインストールが成功した場合、以下の出力が表示されます:
NAME READY STATUS RESTARTS AGE instana-otel-operator-7d9f8b5c6d-xk2lm 2/2 Running 0 30sデプロイメントの年齢とポッドのIDは、インストールコマンドを実行した時期によって異なります。
カスタムリソース定義(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 」オペレーターをアンインストールする
オペレータをアンインストールするには、次の手順を完了してください:
オペレータ「 Helm 」チャートをアンインストールします
helm uninstall instana-otel-operator -n instana-otel-operatorオプション: 以下のコマンドを実行して名前空間を削除します:
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をインストールしてください:
任意ですが推奨されます: 以下のコマンドを実行して、オペレータ専用のプロジェクトを作成してください:
oc new-project instana-otel-operator次のコマンドを実行して、 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=trueRed 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 をインストールする際、次のような問題が発生する可能性があります:
オペレーターがコレクターを作成していない
オペレーターがコレクターポッドを作成していない場合は、以下を確認してください:
オペレータが実行中であることを確認してください:
kubectl get pods -n instana-otel-operator kubectl logs -n instana-otel-operator -l app.kubernetes.io/name=opentelemetry-operatorOpenTelemetryCollectors: を確認してください
kubectl get opentelemetrycollector -n instana-otel-operatorCRDがインストールされていることを確認してください:
kubectl get crd opentelemetrycollectors.opentelemetry.io
コレクターポッドが起動しない
コレクターポッドが起動しない場合は、以下を確認してください:
以下のコマンドを実行してポッドのイベントを確認します:
kubectl describe pod -n instana-otel-operator -l app.kubernetes.io/managed-by=opentelemetry-operator以下のコマンドを実行して、コレクター構成が有効であることを確認してください:
kubectl get opentelemetrycollector idot-daemonset -n instana-otel-operator -o yaml kubectl get opentelemetrycollector idot-statefulset -n instana-otel-operator -o yaml次のコマンドを実行してリソースの制約を確認してください:
kubectl top nodes kubectl top pods -n instana-otel-operator次のコマンドを実行してコレクターログを確認します:
kubectl logs -n instana-otel-operator -l app.kubernetes.io/managed-by=opentelemetry-operator
その他のトラブルシューティングの手順については、 「 IDOT のトラブルシューティング」を参照してください。