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

Container Service for Kubernetes:クラスタートポロジの監視

最終更新日:Feb 12, 2025

Alibaba Cloud Application Monitoring eBPF Editionは、Kubernetesクラスター用の拡張バークレーパケットフィルター (eBPF) テクノロジーに基づいて開発された可観測性サービスのコレクションです。 Application Monitoring eBPF Editionコンポーネントをクラスターにインストールした後、メトリクス、トレース、ログ、イベントに基づいてKubernetesクラスターをモニタリングできます。

前提条件

背景情報

Kubernetesでは、負荷ステータスとトラフィックスループットの監視が重要です。 Application Monitoring eBPF Editionは、コードの侵入なしにコンテナーからレート、エラー、および期間 (RED) のパフォーマンスデータを収集し、ポッドとパフォーマンスの問題を効率的に特定します。 Deployments、StatefulSets、DaemonSetsなど、関連するサービスとコントローラーのワークロードを自動的に関連付け、トラブルシューティングの効率を向上させます。 詳細については、「アプリケーションモニタリングeBPFエディション」をご参照ください。

ACKクラスターへの接続

ACKクラスターをApplication Monitoring eBPF Editionに接続するには、次のモニタリングエージェントをクラスターにインストールします。

  • Prometheusモニタリングエージェント: ack-arms-prometheus

    説明

    Application Monitoring eBPF Editionで使用されるメトリクスは、マネージドサービスfor Prometheusによって収集されます。 したがって、Prometheusエージェントのマネージドサービスをインストールする必要があります。

  • アプリケーションモニタリングeBPF Editionコンポーネント: ack-arms-cmonitor

    ack-arms-cmonitorをクラスターにインストールする前に、ARMS Addon Tokenがクラスターに存在するかどうかを確認する必要があります。 ARMSアドントークンが存在する場合、ARMSはパスワードなしの認証を実行します。 エージェントのインストール後、Application Monitoring eBPF Editionを使用できます。 ARMS Addon Tokenが存在しない場合、権限が不十分なためエラーが発生します。 ARMSおよびTracing Analysisに対する完全なアクセス許可を提供するポリシーをワーカーリソースアクセス管理 (RAM) ロールにアタッチする必要があります。

    次のセクションでは、ARMSアドントークンが存在するかどうかを確認する方法と、ポリシーをワーカーRAMロールにアタッチする方法について説明します。

    クラスターにARMS Addonトークンがあるかどうかを確認する

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

    2. On theクラスターページで、管理するクラスターの名前をクリックし、設定 > 秘密左側のナビゲーションウィンドウに表示されます。

    3. [シークレット] ページの上部で、[名前空間] ドロップダウンリストから [kube-system] を選択し、addon.arms.tokenが存在するかどうかを確認します。

    ARMSおよびTracing Analysisに対する完全な権限を提供するポリシーをワーカーRAMロールにアタッチする

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

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

    3. [クラスター情報] ページで、[基本情報] をクリックします。 表示されるページで、Worker RAMロールの右側にあるハイパーリンクをクリックします。

    4. [権限] タブで、[権限付与] をクリックします。

    5. [権限付与] パネルの [ポリシー] セクションで、検索ボックスに次のポリシーのキーワードを入力します。 ポリシーをクリックして右側の [選択したポリシー] リストに追加し、プロンプトに従って権限付与の手順を完了します。

      • AliyunTracingAnalysisFullAccess: Tracing Analysisの完全な権限を提供します。

      • AliyunARMSFullAccess: ARMSに対する完全な権限を提供します。

    説明
    • ACK管理クラスター: 特定のACK管理クラスターにARMSアドントークンが存在しない場合があります。 ACK管理クラスターを使用する場合は、最初にARMSアドントークンが存在するかどうかを確認することを推奨します。 ARMSアドントークンが存在しない場合は、手動で承認を完了する必要があります。

    • ACK専用クラスター: デフォルトでは、ACK専用クラスターにARMSアドントークンはありません。 手動で承認を完了する必要があります。

アプリケーションをApplication Monitoring eBPF Editionに統合

手動で統合

既存のアプリケーション用のコンポーネントをインストールする

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

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

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

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

    説明

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

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

    1. 左側のナビゲーションウィンドウで、[アプリケーション] > [ヘルム] を選択します。

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

      重要

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

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

新しいアプリケーションを作成するときにコンポーネントをインストールする

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

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

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

    labels:
      armseBPFAutoEnable: "on"
      armseBPFCreateAppName: "<your-deployment-name>"    //Replace <your-deployment-name> with the application name.

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

    YAMLテンプレートの表示

    apiVersion: v1
    kind: Namespace
    metadata:
      name: arms-demo
    ---
    apiVersion: apps/v1 # for versions before 1.8.0 use 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 # for versions before 1.8.0 use 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:
        # the port that this service should serve on
        - name: arms-demo-component-svc
          port: 6666
          targetPort: 8888
      # label keys and values that must match in order to receive traffic for this service
      selector:
        app: arms-springboot-demo-subcomponent
    ---
    apiVersion: apps/v1 # for versions before 1.8.0 use 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:
        # the port that this service should serve on
        - name: arms-mysql-svc
          port: 3306
          targetPort: 3306
      # label keys and values that must match in order to receive traffic for this service
      selector:
        app: mysql
    --

自動的に統合

  1. 最初に

    ARMSコンソールを使用します。

  2. 左側のナビゲーションウィンドウで、[統合センター] をクリックします。 [サーバーアプリケーション] セクションで、[eBPFアプリケーションモニター] カードをクリックします。

  3. 表示されるパネルで、Application Monitoring eBPF Editionを統合するためのプロンプトに従ってパラメーターを設定します。

  4. 左側のナビゲーションウィンドウで、[統合管理] をクリックします。 ARMSに統合されているすべてのアプリケーションとサービスを表示できます。

    [統合管理] ページの [統合環境] タブで、ACKクラスターの名前をクリックして、クラスターの基本情報、有効なコンポーネント、およびメトリックを表示します。 メトリックを調べてARMSエージェントを設定することもできます。