Kubernetes でエージェントを設定するためのベストプラクティス

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

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

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

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

Gather Login Credentials

To access Splunk AppDynamics, you need your login credentials and the URL from where you can access your organization's Splunk AppDynamics Controllers. If you do not have this information, contact your Splunk AppDynamics administrator.

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

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

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

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

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

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

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

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

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

Verify the Environment Variables

After you set the agent environment variables, you can verify that they were added to your application. To verify the environment variables:

  1. Create a ConfigMap.
  2. Create a Secret.
  3. Create an environment variable in the deployment spec.
  4. Restart the application container.
  5. Log in to the container using kubectl exec.
    kubectl -n ecommerce exec -it <pod name> /bin/sh
  6. List the Splunk AppDynamics environment variables available in the container to confirm they are defined and have the correct values:
    env | grep APPD
    APPDYNAMICS_AGENT_APPLICATION_NAME=<value>
    APPDYNAMICS_AGENT_ACCOUNT_NAME=<value>
    APPDYNAMICS_CONTROLLER_HOST_NAME=<value>
    ...