すべてのプロダクト
Search
ドキュメントセンター

Application Real-Time Monitoring Service:ローカルイメージキャッシュモードによる ack-onepilot 統合の高速化

最終更新日:Sep 05, 2026

このドキュメントでは、ローカルイメージキャッシュモードを使用して Java アプリケーションの ack-onepilot 統合を高速化する方法について説明します。

背景情報

デフォルトでは、柔軟なアプリケーション統合を実現するため、ack-onepilot コンポーネントが挿入する Init コンテナは、特定のルールに基づいて必要なバージョンのエージェントパッケージを動的にプルします。しかし、エージェントパッケージをその都度プルすることは、一部のシナリオで問題を引き起こす可能性があります。

  • ネットワーク接続が不安定なエッジシナリオでは、エージェントパッケージのプルに大幅に時間がかかり、タイムアウトにより失敗する可能性もあります。

  • 多数のアプリケーションを一度に統合すると、ホストの IOPS が増加し、短期間で大量の I/O リソースを消費する可能性があります。

前提条件

  • ack-onepilot バージョン 5.1.0 以降。

  • アプリケーションが Java で記述されていること。

  • エージェントバージョンが 4.2.5 以降であること。

手順

この YAML マニフェストの例では、Kubernetes 上のシンプルな Java アプリケーションがローカルイメージキャッシュモードを使用して ack-onepilot 統合を高速化する方法を示します。

アプリケーション YAML の例

apiVersion: v1
kind: Namespace
metadata:
  name: arms-demo
---
apiVersion: apps/v1 # バージョン 1.8.0 より前の場合は apps/v1beta1 を使用
kind: Deployment
metadata:
  name: arms-springboot-demo
  namespace: arms-demo
  labels:
    app: arms-springboot-demo
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo
  template:
    metadata:
      labels:
        app: arms-springboot-demo
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo"
        # 必須。ローカルイメージキャッシュモードを有効にします。
        apsara.apm/enable-cached-agent: 'true'
        # ローカルイメージキャッシュモードに必須。エージェントバージョンを指定します。必要に応じてバージョンを変更できます。
        aliyun.com/agent-version: 4.2.5
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
          imagePullPolicy: Always
          name: arms-springboot-demo
          env:
            - name: SELF_INVOKE_SWITCH
              value: "true"
            - name: COMPONENT_HOST
              value: "arms-demo-component"
            - name: COMPONENT_PORT
              value: "6666"
            - name: MYSQL_SERVICE_HOST
              value: "arms-demo-mysql"
            - name: MYSQL_SERVICE_PORT
              value: "3306"
---
apiVersion: apps/v1 
kind: Deployment
metadata:
  name: arms-springboot-demo-subcomponent
  namespace: arms-demo
  labels:
    app: arms-springboot-demo-subcomponent
spec:
  replicas: 2
  selector:
    matchLabels:
      app: arms-springboot-demo-subcomponent
  template:
    metadata:
      labels:
        app: arms-springboot-demo-subcomponent
        armsPilotAutoEnable: "on"
        armsPilotCreateAppName: "arms-k8s-demo-subcomponent"
        # 必須。ローカルイメージキャッシュモードを有効にします。
        apsara.apm/enable-cached-agent: 'true'
        # ローカルイメージキャッシュモードに必須。エージェントバージョンを指定します。必要に応じてバージョンを変更できます。
        aliyun.com/agent-version: 4.2.5
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-springboot-demo:v0.1
          imagePullPolicy: Always
          name: arms-springboot-demo-subcomponent
          env:
            - name: SELF_INVOKE_SWITCH
              value: "false"
            - name: MYSQL_SERVICE_HOST
              value: "arms-demo-mysql"
            - name: MYSQL_SERVICE_PORT
              value: "3306"
---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: arms-demo-component
  name: arms-demo-component
  namespace: arms-demo
spec:
  ports:
    # このサービスが提供するポート
    - name: arms-demo-component-svc
      port: 6666
      targetPort: 8888
  # このサービスでトラフィックを受信するために一致させるラベルキーと値
  selector:
    app: arms-springboot-demo-subcomponent
---
apiVersion: apps/v1 # バージョン 1.8.0 より前の場合は apps/v1beta1 を使用
kind: Deployment
metadata:
  name: arms-demo-mysql
  namespace: arms-demo
  labels:
    app: mysql
spec:
  replicas: 1
  selector:
    matchLabels:
      app: mysql
  template:
    metadata:
      labels:
        app: mysql
    spec:
      containers:
        - resources:
            limits:
              cpu: 0.5
          image: registry.cn-hangzhou.aliyuncs.com/arms-docker-repo/arms-demo-mysql:v0.1
          name: mysql
          ports:
            - containerPort: 3306
              name: mysql
---
apiVersion: v1
kind: Service
metadata:
  labels:
    name: mysql
  name: arms-demo-mysql
  namespace: arms-demo
spec:
  ports:
    # このサービスが提供するポート
    - name: arms-mysql-svc
      port: 3306
      targetPort: 3306
  # このサービスでトラフィックを受信するために一致させるラベルキーと値
  selector:
    app: mysql
---
  1. ack-onepilot をインストールし、必要なリソースへのアクセス権限を付与します。詳細については、「ARMS エージェントアシスタント (ack-onepilot) のインストール」をご参照ください。

  2. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。

  3. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[ワークロード] > [デプロイ] を選択します。

  4. ステータスなし ページで対象のアプリケーションを探し、[操作] 列で image > [YAML の編集] を選択します。

    新しいアプリケーションを作成するには、[YAML から作成] をクリックします。

  5. YAML エディターで、spec.template.metadata の下に次の labels を追加し、更新 をクリックします。

    labels:
      app: arms-springboot-demo-subcomponent
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "arms-k8s-demo-subcomponent"
      # 必須。ローカルイメージキャッシュモードを有効にします。
      apsara.apm/enable-cached-agent: 'true'
      # ローカルイメージキャッシュモードに必須。エージェントバージョンを指定します。必要に応じてバージョンを変更できます。リリースされたエージェントバージョンの一覧については、エージェント管理ドキュメントをご参照ください。
      aliyun.com/agent-version: 4.2.5
      aliyun.com/app-language: java
  6. ステータスなし ページで、お使いのアプリケーションを見つけ、操作 列の image > ARMS コンソール をクリックして、そのモニタリング詳細を表示します。