Red Hat OpenShift における Instana エージェントのトラブルシューティング
Red Hat OpenShift のホストエージェントでよく見られる問題の解決策については、以下をご覧ください:
エージェントの再インストールが失敗し、エラーメッセージが表示される
以下のメッセージが表示されて再インストールに失敗した場合は、エージェントを再インストールする前に、エージェントのクラスタレベルのオブジェクトを削除してください:
installation Instana Agent failed: rendered manifests contain a resource that already exists. Unable to continue with install: ...
エージェントのクラスタレベルのオブジェクトを削除する方法の詳細については、 「エージェントのアンインストール」 を参照してください
エージェント・ポッドがスケジュールされていない
Instana エージェント、 Helm チャート、またはオペレーターをインストールした後、エージェントのPodが期待 instana-agent-<xxxxx> 通りにデプロイされていないことに気付く場合があります。 この問題は、権限の設定不足が原因である可能性があります。
インストール後、ノードが表示されるまで少し時間がかかる場合があります。 この遅延は、エージェントがレポートの送信を開始する必要があるために発生します。 ただし、権限の不足が原因で問題が発生している場合、 Kubernetes クラスターの「 インフラストラクチャ 」タブには、インストールから数分経ってもノードが表示されないことに気づくでしょう。
問題のあるインストールでは、ポッドのみ k8sensor がスケジュールされ、エージェントポッドは表示されません。
$ kubectl get pods -n instana-agent
NAME READY STATUS RESTARTS AGE
controller-manager-5775896db6-v5qh7 1/1 Running 0 2m52s
controller-manager-5775896db6-zrd7l 1/1 Running 0 2m52s
instana-agent-k8sensor-76db46875c-px8cj 1/1 Running 0 2m48s
instana-agent-k8sensor-76db46875c-xknnw 1/1 Running 0 2m48s
instana-agent-k8sensor-76db46875c-zdrt9 1/1 Running 0 2m48s
問題の特定には、エージェント「Daemonset」について説明してください。 以下の例を参照してください。
$ kubectl get ds -n instana-agent
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
instana-agent 3 0 0 0 0 <none> 3m11s
$ kubectl describe ds instana-agent -n instana-agent
...
Events:
Type Reason Age From Message
---- ------ ---- ---- -------
Warning FailedCreate 7m27s (x3 over 7m27s) daemonset-controller Error creating: pods "instana-agent-" is forbidden: error looking up service account instana-agent/instana-agent: serviceaccount "instana-agent" not found
Warning FailedCreate 2m (x14 over 7m27s) daemonset-controller Error creating: pods "instana-agent-" is forbidden: unable to validate against any security context constraint: [provider "anyuid": Forbidden: not usable by user or serviceaccount, provider restricted-v2: .spec.securityContext.hostNetwork: Invalid value: true: Host network is not allowed to be used, provider restricted-v2: .spec.securityContext.hostPID: Invalid value: true: Host PID is not allowed to be used, spec.volumes[0]: Invalid value: "hostPath": hostPath volumes are not allowed to be used, spec.volumes[1]: Invalid value: "hostPath": hostPath volumes are not allowed to be used, spec.volumes[2]: Invalid value: "hostPath": hostPath volumes are not allowed to be used, spec.volumes[3]: Invalid value: "hostPath": hostPath volumes are not allowed to be used, spec.volumes[4]: Invalid value: "hostPath": hostPath volumes are not allowed to be used, spec.volumes[5]: Invalid value: "hostPath": hostPath volumes are not allowed to be used, spec.volumes[6]: Invalid value: "hostPath": hostPath volumes are not allowed to be used, spec.volumes[7]: Invalid value: "hostPath": hostPath volumes are not allowed to be used, provider restricted-v2: .containers[0].privileged: Invalid value: true: Privileged containers are not allowed, provider restricted-v2: .containers[0].hostNetwork: Invalid value: true: Host network is not allowed to be used, provider restricted-v2: .containers[0].containers[0].hostPort: Invalid value: 42699: Host ports are not allowed to be used, provider restricted-v2: .containers[0].containers[0].hostPort: Invalid value: 55680: Host ports are not allowed to be used, provider restricted-v2: .containers[0].containers[0].hostPort: Invalid value: 4317: Host ports are not allowed to be used, provider restricted-v2: .containers[0].containers[0].hostPort: Invalid value: 4318: Host ports are not allowed to be used, provider restricted-v2: .containers[0].hostPID: Invalid value: true: Host PID is not allowed to be used, provider "restricted": Forbidden: not usable by user or serviceaccount, provider "nonroot-v2": Forbidden: not usable by user or serviceaccount, provider "nonroot": Forbidden: not usable by user or serviceaccount, provider "hostmount-anyuid": Forbidden: not usable by user or serviceaccount, provider "machine-api-termination-handler": Forbidden: not usable by user or serviceaccount, provider "hostnetwork-v2": Forbidden: not usable by user or serviceaccount, provider "hostnetwork": Forbidden: not usable by user or serviceaccount, provider "hostaccess": Forbidden: not usable by user or serviceaccount, provider "node-exporter": Forbidden: not usable by user or serviceaccount, provider "privileged": Forbidden: not usable by user or serviceaccount]
この問題を解決するには、次のコマンドを実行して、サービス instana-agent アカウントにセキュリティ privileged コンテキスト制約を追加してください:
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
Kubernetes 正常に動作していないポッドを定期的に再スケジュールしようとし、次の反復処理でエージェントポッドがデプロイされます。 このプロセスを迅速化するには、エージェント DaemonSet, を手動で削除すると、instana agent operator が新しい DaemonSet をデプロイします。 以下の例を参照してください。
$ kubectl delete ds instana-agent -n instana-agent
daemonset.apps "instana-agent" deleted
$ kubectl get pods -n instana-agent
NAME READY STATUS RESTARTS AGE
controller-manager-5775896db6-v5qh7 1/1 Running 0 18m
controller-manager-5775896db6-zrd7l 1/1 Running 0 18m
instana-agent-5592d 1/1 Running 0 19s
instana-agent-8qh9g 1/1 Running 0 19s
instana-agent-k8sensor-76db46875c-px8cj 1/1 Running 0 18m
instana-agent-k8sensor-76db46875c-xknnw 1/1 Running 0 18m
instana-agent-k8sensor-76db46875c-zdrt9 1/1 Running 0 18m
instana-agent-rngh4 1/1 Running 0 19s
$ kubectl get ds -n instana-agent
NAME DESIRED CURRENT READY UP-TO-DATE AVAILABLE NODE SELECTOR AGE
instana-agent 3 3 3 3 3 <none> 24s
すべてのホストエージェントに共通するトラブルシューティングに関する情報については、 「ホストエージェントの管理:トラブルシューティング」 を参照してください。