このページでは、展開時に init コンテナオプションを使用してエージェントファイルを Kubernetes アプリケーションコンテナにコピーする方法について説明します。

クラスタエージェントがクラスタにインストールされている場合、AppDynamics ではクラスタエージェントの自動インストゥルメンテーションが推奨されます。詳細については、Auto-Instrument Applications with the Cluster Agentを参照してください。

init コンテナオプションは、アプリケーションの初期化に役立つ追加のコンテナを起動時に実行するために使用され、Kubernetes 環境で使用できます。init コンテナは初期化タスクを完了すると終了しますが、アプリケーションコンテナは実行されたままになります。アプリケーション サーバ エージェントのインストールでは、init コンテナは、展開時にエージェントファイルをアプリケーションコンテナにコピーする配信メカニズムとして使用されます。「Kubernetes の Init コンテナオプション」を参照してください。

(構築時ではなく)展開時にエージェントファイルをコピーすることには、エージェントファイルと依存関係をアプリケーションイメージに明示的にコピーするよりも優れている点があります。init コンテナオプションを使用すると、次の理由でイメージの構築プロセスが簡素化されます。

  • エージェントファイルをコピーするために各アプリケーションの Dockerfile を更新する必要がありません。
  • アプリケーションのアップグレードのためにアプリケーションイメージを再構築する必要はありません。 

init コンテナの使用方法については、次の言語固有のコンテナインストールページを参照してください。

Kubernetes Init コンテナの導入仕様例

Java アプリケーションの Kubernetes 導入仕様例では、init コンテナは、アプリケーション サーバ エージェント ファイルを含む 2 番目の Docker イメージです。この Docker イメージはアプリケーションイメージとは別に構築されるため、アプリケーション サーバ エージェントを追加またはアップグレードするときにアプリケーションイメージを再構築する必要はありません。

kind: Deployment
spec: 
  containers: 
    - 
      image: "repo/java-app:v1"
      name: java-app
      volumeMounts: 
        - 
          mountPath: /opt/appdynamics
          name: appd-agent-repo
  initContainers: 
    - 
      command: 
        - cp
        - "-ra"
        - /opt/appdynamics/.
        - /opt/temp
      image: "docker.io/appdynamics/java-agent:20.6.0"
      n ame: appd-agent
      volumeMounts: 
        - 
          mountPath: /opt/temp
          name: appd-agent-repo
  volumes: 
    - 
      emptyDir: {}
      name: appd-agent-repo

YML