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

Container Service for Kubernetes:Java アプリケーションモニタリング

最終更新日:Sep 17, 2026

Application Real-Time Monitoring Service (ARMS) は、ack-onepilot アドオンを介して Container Service for Kubernetes (ACK) クラスターで実行される Java アプリケーションをモニタリングします。このアドオンをインストールして権限を付与することで、本番環境での問題診断を大幅に迅速化できます。

背景情報

アプリケーションリアルタイム監視サービス (ARMS) は、Alibaba Cloud のアプリケーションパフォーマンス管理 (APM) 製品です。Container Service for Kubernetes (ACK) では、ack-onepilot アドオンをインストールして承認することで、コードを一切変更することなく、Java アプリケーションをエンドツーエンドで監視できます。

このアドオンは、アプリケーションのトポロジーとインターフェイスを自動的に検出し、3D トポロジーマップを生成します。インターフェイスをモニタリングし、異常なトランザクションや低速なトランザクションをキャプチャします。このモニタリングデータを使用して、障害のあるインターフェイスや低速なインターフェイスを迅速に特定し、呼び出しパラメーターを再現し、メモリリークを検出し、システムのボトルネックを特定できます。ARMS アプリケーションモニタリングの詳細については、「アプリケーションモニタリングとは」をご参照ください。

前提条件

  • 名前空間が作成されていること。詳細については、「名前空間とリソースクォータの管理」をご参照ください。このトピックでは、arms-demo 名前空間を例として使用します。

  • JDK のバージョンがアプリケーションモニタリングでサポートされていること。ARMS は、次の JDK バージョンをサポートしています:

    • JDK 1.7.0 以降

      重要

      ARMS エージェント V3.0.X 以降は Java 7 をサポートしなくなります。Java 7 をまだ使用している場合は、Java のバージョンをアップグレードすることを推奨します。詳細については、「アプリケーションモニタリングは Java 7 をサポートしなくなりました」をご参照ください。

    • JDK 1.8.0_25 以降

      説明
      • Kubernetes クラスターにアプリケーションをデプロイする場合、JDK V1.8.0_191 以降を使用することを推奨します。

      • JDK のバージョンが 1.8.0_25 または 1.8.0_31 でないことを確認してください。そうでない場合、ARMS エージェントのインストールに失敗する可能性があります。この場合、JDK を最新の 1.8.X にアップグレードすることを推奨します。

    • JDK 11.0.8 以降

    • JDK 17

  • ARMS が有効化されていること。

手順1:ARMS アプリケーションモニタリングアドオンのインストール

重要

レガシーコンポーネントである arms-pilot はメンテナンスが終了しています。ack-onepilot はその後継であり、完全な互換性があります。移行に際してアプリケーション設定の変更は不要です。移行手順については、「arms-pilot のアンインストールと ack-onepilot のインストール」をご参照ください。

説明

デフォルトでは、ack-onepilot アドオンは最大 1,000 個の Pod をサポートします。クラスター内で Pod が 1,000 個追加されるごとに、アドオンの CPU リソースを 0.5 コア、メモリを 512 MB 増やしてください。

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。

  3. [ログとモニタリング] セクションで ack-onepilot アドオンを見つけ、アドオンカードにある インストール をクリックします。

  4. ダイアログボックスで、アドオンのパラメーターを設定します。デフォルト値のままにすることを推奨します。OK をクリックしてインストールを完了します。

インストールが完了したら、アドオン管理 ページで ack-onepilot アドオンのアップグレード、設定、またはアンインストールができます。

手順2:ARMS リソースへのアクセス権限の付与

手動で権限を付与する必要があるかどうかは、クラスターに addon.arms.token Secret が存在するかどうかによって決まります。Secret が存在する場合、権限付与は不要なため、手順3に進むことができます。Secret が存在しない場合は、ARMS がクラスター内のアプリケーションをモニタリングできるように、クラスターに ARMS リソースへのアクセス権限を手動で付与します。

説明

クラスターに addon.arms.token Secret が含まれている場合、ARMS は認証情報なしで、クラスターに ARMS リソースへのアクセス権限を自動的に付与します。 ほとんどの ACK マネージドクラスターにはデフォルトでこの Secret が含まれていますが、以前に作成された ACK マネージドクラスターには含まれていない場合があります。

addon.arms.token Secret の存在確認

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[設定] > [秘密] を選択します。

  3. シークレット ページで、名前空間 ドロップダウンリストから [kube-system] を選択し、addon.arms.token Secret がリストに表示されているか確認します。

ARMS リソースへのアクセス権限の手動付与

クラスターに addon.arms.token Secret が存在しない場合にのみ、次の手順を実行します。

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

  2. [クラスター] ページで、管理するクラスターの名前をクリックします。 左側のウィンドウで、[クラスター情報] をクリックします。

  3. 基本情報 タブで、クラスターリソース セクションを見つけ、Worker RAM ロール の右側にあるリンクをクリックします。

  4. 役割 ページで 権限管理 タブをクリックし、次に [権限の追加] をクリックします。

  5. 権限を AliyunARMSFullAccess に設定し、OK をクリックします。

Elastic Container Instance (ECI) と統合されたクラスターへの権限付与

ECI と統合された ACK マネージドクラスター内のアプリケーションを監視するには、RAM クイック承認ページで権限を付与し、次に ack-onepilot アドオンのすべての Pod を再起動します。

手順3:Java アプリケーションでの ARMS アプリケーションモニタリングの有効化

Java アプリケーションの作成時に ARMS アプリケーションモニタリングを有効にします。次の手順では、ACK コンソールで YAML テンプレートから Deployment を作成します。

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

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

  3. デプロイメント ページで、YAML のリソースの作成 をクリックします。

  4. サンプルテンプレート を選択し、[テンプレート] フィールド (YAML 形式) の spec.template.metadata セクションに次の labels を追加します。

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    # <your-deployment-name> を実際のアプリケーション名に置き換えます。
      armsSecAutoEnable: "on"    # アプリケーションをアプリケーションセキュリティに接続する場合は、このパラメーターを設定する必要があります。

Deployment の Pod テンプレートにある armsPilotAutoEnable: "on" と armsPilotCreateAppName: "arms-k8s-demo" のラベルにより、ARMS アプリケーションモニタリングが有効になります。次の YAML スニペットは、Pod テンプレート内でラベルが追加される場所を示しています。

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"
    spec:
      containers:
        - resources:
            limits:
              # ...

次の完全なサンプル YAML ファイルは、Deployment を作成し、ARMS アプリケーションモニタリングを有効にします。

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"
        one-agent.jdk.version: "OpenJDK11"
    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 # 1.8.0 より前のバージョンでは apps/v1beta1 を使用します
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"
        one-agent.jdk.version: "OpenJDK11"
    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:
    # この Service が公開するポート
    - name: arms-demo-component-svc
      port: 6666
      targetPort: 8888
  # この Service のトラフィックを受信するために一致する必要があるラベルのキーと値
  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:
    # この Service が公開するポート
    - name: arms-mysql-svc
      port: 3306
      targetPort: 3306
  # この Service のトラフィックを受信するために一致する必要があるラベルのキーと値
  selector:
    app: mysql
---
説明

上記の手順を完了すると、ACK クラスターにデプロイされたアプリケーションで ARMS アプリケーションモニタリングが有効になります。

次のステップ

アプリケーションモニタリングの詳細を表示するには、デプロイメント ページに移動して対象のアプリケーションを見つけます。アクション 列で image アイコンをクリックし、ARMS コントロール台 を選択します。詳細については、「アプリケーション概要」をご参照ください。

よくある質問

以下では、アプリケーションモニタリングに関するよくある質問について説明します。