Red Hat OpenShift での Instana エージェントの管理

エージェントをインストールした後、必要に応じて設定および管理を行ってください。 Red Hat OpenShift で利用可能なすべてのエージェント設定オプションについては、以下のリストを参照してください。

ポッドの状態を確認する

エージェントをインストールした後、以下のコマンドを使用して、エージェントデプロイメント内のポッドのステータスを確認できます:

kubectl get pods -n instana-agent
kubectl get agent instana-agent -n instana-agent -o yaml | yq ".status"
 

良いデプロイメントでは、名前空間内のすべてのポッドの 'STATUSは 'Running でなければなりません。 次の例のように、'instana-agentカスタムリソースは'status: Runningも表示しなければならない:

$ kubectl get pods -n instana-agent
NAME                                      READY   STATUS    RESTARTS   AGE
controller-manager-6478cb4c6f-8s29b       1/1     Running   0          70m
instana-agent-8ftnj                       1/1     Running   0          70m
instana-agent-9w4vc                       1/1     Running   0          70m
instana-agent-k8sensor-5bbf568976-5pjk2   1/1     Running   0          3h2m
instana-agent-k8sensor-5bbf568976-h96hr   1/1     Running   0          3h2m
instana-agent-k8sensor-5bbf568976-lnbsg   1/1     Running   0          3h2m
instana-agent-zpmrj                       1/1     Running   0          70m

$ kubectl get agent instana-agent -n instana-agent -o yaml | yq ".status"
conditions:
  - lastTransitionTime: "2024-08-06T08:12:03Z"
    message: most recent reconcile of agent CR completed without issue
    observedGeneration: 2

    ...

observedGeneration: 2
oldVersionsUpdated: true
operatorVersion: 0.0.1-dev
status: Running
 

エージェントの構成

エージェントのインストール方法に応じて、 Kubernetes および Red Hat OpenShift 用の Instana エージェントを2つの異なる方法で設定できます。

Operatorを使用してインストールされたエージェントの設定

オペレーターを使用してインストールされた Instana エージェントを設定するには、以下の手順を実行してください:

  1. カスタムリソースのファイル「 instana-agent.customresource.yamlYAML 」を開きます。

  2. 設定を「spec.agent.configuration_yaml」に保存する。 以下の例を参照してください。

    spec:
      agent:
        configuration_yaml: |
          # Example of configuration yaml template
          # Host
          com.instana.plugin.host:
            tags:
              - 'dev'
              - 'app1'
     
  3. 次のコマンドを実行して変更を適用してください:

    kubectl apply -f instana-agent.customresource.yaml
     

YAML ファイルの詳細な例については、 instana_v1_extended_instanaagent.yaml を参照してください。

エージェントの設定に関する詳細については、 「エージェント設定ファイルを使用したホストエージェントの設定」 を参照してください。

Helm チャートを使用してインストールされたエージェントの設定

「 Helm 」チャートを使用してインストールされた Instana エージェントを設定するには、次のいずれかの方法を選択してください:

  • フラグ'--set agent.configuration_yaml=<config>を使って、コマンドラインでコンフィギュレーションを指定する。

  • Helmチャート設定ファイル'values.yamlに設定を追加する。 -fフラグを使用して、Helminstall (インストール中) またはHelmupgrade (インストール後) コマンドにファイルを渡します。

すべての設定パラメータの詳細な一覧については、 Instana Helm Chart を参照してください。

Container Registry のカスタマイズ

Red Hat OpenShift環境によっては、Red Hat OpenShift Container Registryをカスタマイズする必要があるかもしれません。

画像ストリームの追加

IBM Cloud Container Registryicr.io)からイメージをプルできない場合は、2つのイメージ・ストリームを手動で追加する必要があります。 Red Hat OpenShift Container Registry で 'instana-agent名前空間に移動し、以下のイメージストリームを追加します:

Name: instana-agent
Image: icr.io/instana/agent:latest
 

その結果、画像ストリームは'docker-registry.default.svc:5000/instana-agent/instana-agent:latestとなる。

Name: k8sensor
Image: icr.io/instana/k8sensor:latest
 

その結果、画像ストリームは'docker-registry.default.svc:5000/instana-agent/k8sensor:latestとなる。

YAML 内のそれぞれの新規イメージ・ストリームを使用します。

エージェントのインストールを更新する

インストール方法に応じて、 Red Hat OpenShift 用の Instana エージェントはいくつかの方法で更新できます。

オペレーターのインストールを更新する

エージェントのインストールを更新するには、2つのステップがあります:

  1. オペレーターの更新
  2. 画像の更新

OLM を使用してオペレーターを最新バージョンに更新するには、 Red Hat OpenShift のドキュメントにある 「保留中のオペレーター更新を手動で承認する 」セクションに記載されている手順に従ってください。

オペレーターが自動的に更新するように設定することもできます。 詳細については、 「オペレーターの更新チャネルを変更する」 を参照してください。

Instana のUIを使用してオペレーターを手動で更新するには、以下の手順を実行してください:

  1. Instana UIのホームページで、 「エージェントとコレクター」 をクリックします。 [ Instana ] の [エージェント] タブで、 [エージェントのインストール] を選択します。

  2. エージェントデプロイメントカタログページで、OpenShift- Operator タイルをクリックします。

  3. コマンドをコピーして実行し、新しいオペレーターを配備する。 以下のコマンド・サンプルを参照:

    kubectl apply -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml
     
    注: オペレーターを特定のバージョンに更新するには、次のコマンドを実行してください:
    kubectl apply -f https://github.com/instana/instana-agent-operator/releases/download/<operator_version>/instana-agent-operator.yaml
    利用可能なオペレーターのバージョンの一覧については、 『 Instana エージェントオペレーターのリリースノート』 を参照してください。

オペレーターの更新が完了したら、 画像の更新に進んでください。

Helm のチャートインストール環境の更新

エージェントのインストールを更新するには、2つのステップがあります:

  1. Helm のチャートを更新中
  2. 画像の更新

エージェントの Helm チャートを更新するには、次のコマンドを実行してください:

helm pull --repo https://agents.instana.io/helm --untar instana-agent
kubectl apply -f instana-agent/crds
oc adm policy add-scc-to-user privileged -z instana-agent -n instana-agent
oc adm policy add-scc-to-user anyuid -z instana-agent-remote -n instana-agent
helm upgrade --namespace instana-agent instana-agent \
--repo https://agents.instana.io/helm instana-agent \
--reuse-values
 
注:Helm のチャートを特定のバージョンに更新するには、コマンドに --version <helm-version> フラグを追加してください。 利用可能な Helm チャートのバージョン一覧については、 「 Instana エージェント Helm チャート」のリリースノートをご覧ください。
注:Instana エージェントの Helm チャート(バージョン 2.0.0 以前)には、この instana-agent/crds フォルダは存在しません。 したがって、この kubectl apply -f instana-agent/crds 手順は不要です。

オペレーターの更新が完了したら、 画像の更新に進んでください。

Instana エージェントイメージの更新

instana-agent DaemonSetと「k8sensordeploymentは、ポッド起動時に最新のイメージをプルするように設定されています。 アップデートを強制するには、以下のコマンドを実行する:

kubectl rollout restart ds instana-agent -n instana-agent
 
kubectl rollout restart deployment k8sensor -n instana-agent
 

Instana これらの画像を自動的に更新する仕組みは提供されていません。 要件に合わせて、ワークロード restart に対して十分な権限を持つソリューション CronJobs や、 イメージストリームのようなより高度な OpenShift GitOps ツールを利用できます。

「エージェント管理」ダッシュボードを使用したエージェントの管理

Instana のUIにある「エージェント管理」ダッシュボードを使用すると、以下の操作を行うことができます:

エージェント管理ダッシュボードを開くには、以下の手順に従ってください:

  1. Instana のUIのサイドバーで、 「インフラストラクチャ」 を選択します。
  2. 特定の監視ホストをクリックします。
  3. ホストダッシュボードで、[エージェント管理を開く]をクリックします。

モニター対象アプリケーションのネットワーク・アクセスの構成

以下の種類のアプリケーションがエージェントと通信できるようにするには、ネットワークアクセスを設定する必要があります:

  • Node.js
  • Go
  • Ruby
  • Python
  • .NET Core

これらのアプリケーションは、エージェントがリスニングしているIPアドレスを知る必要があります。 エージェントは自動的にホストIPをリッスンする。 以下の Downward API スニペットを使用すると、環境変数に設定されたホスト IP をアプリケーションのポッドに渡すことができます:

spec:
  containers:
    env:
      - name: INSTANA_AGENT_HOST
        valueFrom:
          fieldRef:
            fieldPath: status.hostIP
 

コントロールプレーンノード(旧称:マスターノード)の監視

デフォルトでは、ホストエージェントは Kubernetes のコントロールプレーンノードではスケジュールされません。 コントロールプレーンノードの監視方法については、 「コントロールプレーンノードの監視」 のセクションを参照してください。

より直接的な制御を行うには、コントロールプレーンノードにエージェントを個別にインストールしてください。

Kubernetes の監視 NGINX Ingress

Kubernetes NGINX Ingress の設定方法や、 NGINX のメトリクスを収集するためのエージェントに関するガイドラインについては、「 NGINX の監視」 ページをご覧ください。 Kubernetes のトレーシング NGINX Ingressについては、 OpenTracing プロジェクトを介してトレーシングを行うことも可能です。設定方法については、「 NGINX Ingressの分散トレーシング」のガイドラインを参照してください。

複数のバックエンドへの報告

helm とoperatorを使用してバックエンドを追加するには、次のコマンドを実行します。 Instana エージェントの設定には、追加のバックエンドを使用することも、空のままにすることもできます。

注: 以下のコマンドを実行すると、エージェントデータは、 Kubernetes データおよびメトリクスデータとともに、複数のバックエンドに転送されます。
  • helm の使用方法:

       helm install instana-agent \
       --repo https://agents.instana.io/helm \
       --namespace instana-agent \
       --create-namespace \
       --set agent.key=my-key \
       --set agent.endpointHost='<your_host_agent_endpoint>' \
       --set agent.endpointPort=443 \
       --set cluster.name='<your_cluster_name>' \
       --set zone.name='zone-name' \
       --set "agent.additionalBackends[0].endpointHost=<your_host_agent_endpoint>" \
       --set "agent.additionalBackends[0].key=<your_agent_key>" \
       --set "agent.additionalBackends[0].endpointPort=443" \
       --set "agent.additionalBackends[1].endpointHost=<your_other_host_agent_endpoint>" \
       --set "agent.additionalBackends[1].key=<your_other_agent_key>" \
       --set "agent.additionalBackends[1].endpointPort=443" \
       instana-agent
     
  • 演算子を使用する:

    apiVersion: instana.io/v1
    kind: InstanaAgent
    metadata:
      name: instana-agent
      namespace: instana-agent
    spec:
      zone:
        name: edited-zone # (optional) name of the zone of the host
      cluster:
        name: my-cluster
      agent:
        endpointHost: <your_host_agent_endpoint>
        endpointPort: "443"
        env: {}
        key: <your_agent_key>
        additionalBackends:
        - endpointHost: <your_host_agent_endpoint>
          endpointPort: "443"
          key: <your_agent_key>
        configuration_yaml: |
          # You can leave this empty, or use this to configure your instana agent.
          # See https://github.com/instana/instana-agent-operator/blob/main/config/samples/instana_v1_extended_instanaagent.yaml for the extended version.
    
     

Kubernetes エージェントから複数のバックエンドへのレポート機能を有効にするには、「 Docker エージェントの設定 」を参照してください。

シークレットの設定

Secrets を使って、認証情報、トークン、キーなどの機密データを保存・管理することができます。 詳細については、 Kubernetes secrets をご覧ください。