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 エージェントを設定するには、以下の手順を実行してください:
カスタムリソースのファイル「
instana-agent.customresource.yamlYAML 」を開きます。設定を「
spec.agent.configuration_yaml」に保存する。 以下の例を参照してください。spec: agent: configuration_yaml: | # Example of configuration yaml template # Host com.instana.plugin.host: tags: - 'dev' - 'app1'次のコマンドを実行して変更を適用してください:
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 内のそれぞれの新規イメージ・ストリームを使用します。
ConfigMap を使用した監視のカスタマイズ
agent.configuration_yamlファイルを設定することで、必要に応じてモニタリングをカスタマイズすることができる。 詳細については、 『構成リファレンス』 を参照してください。
設定の詳細については、 「ホストエージェントの設定」 を参照してください。
エージェントのインストールを更新する
インストール方法に応じて、 Red Hat OpenShift 用の Instana エージェントはいくつかの方法で更新できます。
オペレーターのインストールを更新する
エージェントのインストールを更新するには、2つのステップがあります:
- オペレーターの更新
- 画像の更新
OLM を使用してオペレーターを最新バージョンに更新するには、 Red Hat OpenShift のドキュメントにある 「保留中のオペレーター更新を手動で承認する 」セクションに記載されている手順に従ってください。
オペレーターが自動的に更新するように設定することもできます。 詳細については、 「オペレーターの更新チャネルを変更する」 を参照してください。
Instana のUIを使用してオペレーターを手動で更新するには、以下の手順を実行してください:
Instana UIのホームページで、 「エージェントとコレクター」 をクリックします。 [ Instana ] の [エージェント] タブで、 [エージェントのインストール] を選択します。
エージェントデプロイメントカタログページで、OpenShift- Operator タイルをクリックします。
コマンドをコピーして実行し、新しいオペレーターを配備する。 以下のコマンド・サンプルを参照:
kubectl apply -f https://github.com/instana/instana-agent-operator/releases/latest/download/instana-agent-operator.yaml注: オペレーターを特定のバージョンに更新するには、次のコマンドを実行してください:
利用可能なオペレーターのバージョンの一覧については、 『 Instana エージェントオペレーターのリリースノート』 を参照してください。kubectl apply -f https://github.com/instana/instana-agent-operator/releases/download/<operator_version>/instana-agent-operator.yaml
オペレーターの更新が完了したら、 画像の更新に進んでください。
Helm のチャートインストール環境の更新
エージェントのインストールを更新するには、2つのステップがあります:
- Helm のチャートを更新中
- 画像の更新
エージェントの 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
--version <helm-version> フラグを追加してください。 利用可能な Helm チャートのバージョン一覧については、 「 Instana エージェント Helm チャート」のリリースノートをご覧ください。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にある「エージェント管理」ダッシュボードを使用すると、以下の操作を行うことができます:
エージェント管理ダッシュボードを開くには、以下の手順に従ってください:
- Instana のUIのサイドバーで、 「インフラストラクチャ」 を選択します。
- 特定の監視ホストをクリックします。
- ホストダッシュボードで、[エージェント管理を開く]をクリックします。
モニター対象アプリケーションのネットワーク・アクセスの構成
以下の種類のアプリケーションがエージェントと通信できるようにするには、ネットワークアクセスを設定する必要があります:
- 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
複数のバックエンドへの報告
helm とoperatorを使用してバックエンドを追加するには、次のコマンドを実行します。 Instana エージェントの設定には、追加のバックエンドを使用することも、空のままにすることもできます。
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 をご覧ください。