このページでは、Kubernetes 環境でアプリケーション サーバ エージェントを設定し、init コンテナまたは Dockerfile を使用して手動でアプリケーションをインストゥルメント化する場合に使用するベストプラクティスについて説明します。

このページは、クラスタエージェントの自動インストゥルメンテーションを使用してエージェントを設定するアプリケーションには適用されません。「クラスタエージェントを使用したアプリケーションの自動インストゥルメンテーション」を参照してください。

環境変数を使用して、Kubernetes でアプリケーション サーバ エージェントを設定できます。ユースケースに応じて、環境変数を設定するオプションは次の 3 つです。

これらのベストプラクティスを実装するには、言語固有のコンテナインストールページを参照してください。

ログイン情報の収集

AppDynamics にアクセスするには、ログイン情報と、組織の AppDynamics コントローラにアクセスできる URL が必要です。この情報が不明な場合は、AppDynamics 管理者に問い合わせてください。 

ConfigMap を使用したアプリケーション サーバ エージェントの設定

Kubernetes で実行されているコンテナをインストゥルメント化する場合、環境変数を設定する各アプリケーション サーバ エージェントで、次のような設定を行う必要があります。

  • 接続パラメータ
  • アプリケーションメタデータ
  • エージェントの動作

ConfigMap を使用して、アプリケーションの環境変数を名前空間の範囲内にある Kubernetes オブジェクトに保存できます。ConfigMap は、名前空間内の複数の Kubernetes アプリケーション間で共有されるエージェント設定を管理するために使用される、最適な 12 要素方式です。 

コントローラのログイン情報の設定は、単一の ConfigMap に保存され、そのコントローラにレポートする名前空間内の各アプリケーションで共有されます。開発、テスト、実稼働などの異なる環境で複数のコントローラを使用する場合は、それらの環境に関連付けられている名前空間に異なる ConfigMap を保存できます。

コントローラのアクセスキーへの秘密の使用

コントローラのアクセスキーは、環境変数としてアプリケーション サーバ エージェントに渡すことができるもう一つの設定です。機密データは、ConfigMap ではなく、秘密を使用して Kubernetes 名前空間に保存されます。値は、プレーンテキストで操作するのではなく、Kubernetes の秘密を使用して難読化することができます。

導入仕様でのアプリケーション固有の設定

AppDynamics コントローラのアプリケーション階層名は、特定の AppDynamics アプリケーションで報告するサービスを識別します。アプリケーション階層名は、Kubernetes アプリケーションごとに異なるエージェント設定の一例ですが、通常は環境や名前空間によって異なります。階層名のようなアプリケーション固有の設定は、Kubernetes 導入仕様で直接定義する方が簡単です。

環境変数の確認

エージェント環境変数を設定すると、それらがアプリケーションに追加されたことを確認できます。

環境変数を確認するには、次の手順を実行します。

  1. ConfigMap を作成します。
  2. アプリケーションコンテナを再起動します。
  3. kubectl exec を使用してコンテナにログインします。

    kubectl -n ecommerce exec -it <pod name> /bin/sh
    BASH
  4. コンテナで使用可能な AppDynamics 環境変数をリストし、それらが定義され、正しい値が指定されていることを確認します。

    env | grep APPD
    APPDYNAMICS_AGENT_APPLICATION_NAME=<value>
    APPDYNAMICS_AGENT_ACCOUNT_NAME=<value>
    APPDYNAMICS_CONTROLLER_HOST_NAME=<value>
    ...
    BASH