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

:ACK クラスタのアプリケーションを Application Monitoring eBPF Edition に手動で統合する

最終更新日:Dec 30, 2024

Application Monitoring eBPF Edition (Application Real-Time Monitoring Service、ARMS) は、Kubernetes クラスタ向けに開発されたエンドツーエンドの可観測性サービスです。Kubernetes クラスタに ack-arms-cmonitor エージェントを手動でインストールして、クラスタのメトリクス、アプリケーショントレース、ログ、イベントを監視できます。このトピックでは、Alibaba Cloud Container Service for Kubernetes (ACK) クラスタにデプロイされたアプリケーションを Application Monitoring eBPF Edition に統合する方法について説明します。

前提条件

説明

Application Monitoring eBPF Edition はパブリックプレビュー中で、無料でご利用いただけます。ご質問がある場合は、DingTalk グループ (ID: 35568145) に参加してテクニカルサポートを受けてください。

使用方法

ACK クラスタにデプロイされたアプリケーションを Application Monitoring eBPF Edition に統合するには、Kubernetes クラスタに ack-arms-cmonitor エージェントをインストールしてメトリクスを監視する必要があります。

インストールの前に、クラスタに ARMS Addon Token があるかどうかを確認する必要があります。そうでない場合、後続の操作を実行するための十分な権限がありません。ARMS Addon Token が存在する場合、認証済みであり、パスワードなしで ack-arms-cmonitor エージェントをインストールできます。その後、Application Monitoring eBPF Edition を使用できます。クラスタに ARMS Addon Token がない場合は、ARMS と Managed Service for OpenTelemetry のポリシーをワーカー RAM ロールに手動でアタッチする必要があります。ARMS Addon Token が存在するかどうか、およびワーカー RAM ロールにポリシーをアタッチする方法を確認するには、次の操作を実行します。

クラスタに ARMS Addon Token が存在するかどうかを確認する

  1. ACK コンソール にログインします。左側のナビゲーションペインで、クラスタ をクリックします。クラスタ ページで、クラスタの名前をクリックしてクラスタの詳細ページに移動します。

  2. 左側のナビゲーションペインで、構成 > シークレット を選択します。ページの上部にある 名前空間 ドロップダウンリストから kube-system を選択し、シークレット ページに addon.arms.token が表示されているかどうかを確認します。

権限ポリシーを手動で追加する

  1. ACK コンソール にログインします。左側のナビゲーションペインで、クラスタ をクリックします。クラスタ ページで、クラスタの名前をクリックします。

  2. クラスタ情報 ページの 基本情報 タブで、クラスタリソース セクションの ワーカー RAM ロール の横にあるリンクをクリックします。

  3. 表示されたページで、権限 タブの 権限の付与 をクリックします。

  4. 権限の付与 パネルで、次のポリシーを追加し、権限の付与 をクリックします。

    • AliyunTracingAnalysisFullAccess: Managed Service for OpenTelemetry へのフルアクセス。

    • AliyunARMSFullAccess: ARMS へのフルアクセス。

説明
  • 特定の ACK マネージドクラスタには、ARMS Addon Token が存在しない場合があります。ACK マネージドクラスタを使用する場合は、最初に ARMS Addon Token が存在するかどうかを確認することをお勧めします。ARMS Addon Token が存在しない場合は、手動で権限を付与する必要があります。

  • デフォルトでは、ACK 専用クラスタには ARMS Addon Token がありません。手動で権限を付与する必要があります。

ack-arms-cmonitor エージェントをインストールする

既存のアプリケーションにエージェントをインストールする

アプリケーションに ack-arms-cmonitor エージェントが既にインストールされている場合は、バージョンが 4.0.0 以降であることを確認します。ACK コンソール にログインし、クラスタ詳細ページの左側のナビゲーションペインで 操作 > アドオン を選択します。バージョンが 4.0.0 より前の場合は、アップグレード をクリックしてエージェントを最新バージョンにアップグレードします。ack-arms-cmonitor エージェントをインストールするには、次の手順を実行します。

  1. ACK コンソール にログインします。左側のナビゲーションペインで、クラスタ をクリックします。クラスタ ページで、クラスタの名前をクリックします。

  2. 左側のナビゲーションペインで、操作 > クラスタトポロジ を選択します。

  3. クラスタトポロジ ページで、インストール をクリックします。ACK コンソールは自動的にエージェントをインストールします。

    説明

    デフォルトの名前空間は arms-prom です。

  4. ACK 専用クラスタを使用している場合は、AccessKey ペアを更新します。

    1. 左側のナビゲーションペインで、アプリケーション > Helm を選択します。

    2. arms-cmonitor を見つけて 更新 をクリックします。accessKey パラメータと accessKeySecret パラメータを、Alibaba Cloud アカウントの AccessKey ID とシークレットに設定します。詳細については、プライマリセンターの AccessKey ペアを取得する を参照してください。

      重要

      AliyunARMSFullAccess ポリシーと AliyunSTSAssumeRoleAccess ポリシーが Alibaba Cloud アカウントにアタッチされていることを確認する必要があります。

    3. OK をクリックします。

アプリケーションの作成中にエージェントをインストールする

  1. ACK コンソール にログインします。クラスタ ページで、クラスタを見つけて、アクション 列の アプリケーション をクリックします。

  2. デプロイメント ページで、YAML から作成 をクリックします。

  3. サンプルテンプレート ドロップダウンリストからテンプレートを選択し、次の labels を YAML テンプレートの spec.template.metadata ディレクトリに追加します。

    labels:
      armseBPFAutoEnable: "on"
      armseBPFCreateAppName: "<your-deployment-name>"    //<your-deployment-name> をアプリケーション名に置き換えます。

    次の YAML テンプレートは、デプロイメントを作成し、Application Monitoring eBPF Edition を有効にする方法を示しています。

    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
            armseBPFAutoEnable: "on"
            armseBPFCreateAppName: "arms-k8s-demo"
        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
            armseBPFAutoEnable: "on"
            armseBPFCreateAppName: "arms-k8s-demo-subcomponent"
        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
    --

関連情報

ACK クラスタのアプリケーションを Application Monitoring eBPF Edition に統合した後、アプリケーションのメトリクス、アップストリームとダウンストリームの依存関係、トポロジを監視できます。詳細については、アプリケーションの詳細 を参照してください。