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

Container Service for Kubernetes:登録済みクラスターのARMSを有効にする

最終更新日:Jan 06, 2025

Application Real-Time Monitoring Service (ARMS) を使用して、アプリケーションのステータスをリアルタイムで監視できます。 登録済みクラスター内のアプリケーションを監視するには、登録済みクラスターにARMSアプリケーション監視コンポーネントをインストールする必要があります。

前提条件

手順1: ARMSアプリケーション監視コンポーネントのインストール

onectlの使用

  1. オンプレミスマシンにonectlをインストールします。 詳細については、「onectlを使用した登録済みクラスターの管理」をご参照ください。

  2. 次のコマンドを実行して、ack-onepilotコンポーネントのRAM権限を設定します。

    onectl ram-user grant --addon ack-onepilot

    期待される出力:

    Ram policy ack-one-registered-cluster-policy-ack-onepilot granted to ram user **** successfully.
  3. 次のコマンドを実行して、ack-onepilotコンポーネントをインストールします。

    onectl addon install ack-onepilot

    期待される出力:

    Addon ack-onepilot, version **** installed.

コンソールの使用

  1. RAMポリシーを設定します。 コンポーネントをインストールする前に、登録済みクラスターでAccessKeyペアを指定する必要があります。 AccessKeyペアは、クラウドサービスアクセス権限を取得するために使用されます。

    1. RAM ユーザーを作成します。 詳細については、「RAM ユーザーの作成」をご参照ください。

    2. カスタムポリシーを作成します。 詳細については、「カスタムポリシーの作成」をご参照ください。

      ack-onepilotコンポーネントには、次のポリシーの権限が必要です。

      {
          "Version": "1",
          "Statement": [
              {
                  "Action": "rds:*",
                  "Resource": "*",
                  "Effect": "Allow"
              }
          ]
      }
    3. カスタムポリシーをRAMユーザーにアタッチします。 詳細については、「RAMユーザーの権限付与」をご参照ください。

    4. RAMユーザーのAccessKeyペアを作成します。 詳細については、「AccessKey の作成」をご参照ください。

    5. AccessKeyペアを使用して、登録済みクラスターにalibaba-addon-Secretという名前のシークレットを作成します。

      次のコマンドを実行して、ack-onepilotコンポーネントで使用されるシークレットを作成します。

      説明

      コマンドのaccess-key-idaccess-key-secretを、前の手順で作成したAccessKey IDとAccessKey secretに置き換える必要があります。

      kubectl -n ack-onepilot create secret generic alibaba-addon-secret -- from-literal='access-key-id=<your AccessKey ID>'-- from-literal='access-key-secret=<your AccessKey Secret>'
  2. ack-onepilotコンポーネントをインストールします。

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

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

    3. On theアドオンページをクリックし、ログとモニタリングタブを検索し、ack-onepilotカードをクリックし、インストール右下隅にあります。

    4. では、ack-onepilotをインストールするダイアログボックスでパラメーターを設定し、OK.

手順2: JavaアプリケーションのARMSの有効化

  1. ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。 [クラスター] ページで、管理するクラスターを見つけ、[操作] 列の [アプリケーション] をクリックします。

  2. デプロイメントページで、アプリケーションを見つけて選択しますもっと > ヤムルの眺めで、アクション列を作成します。

    新しいJavaアプリケーションのアプリケーション監視を有効にするには、YAMLから作成する上のデプロイメントページに移動します。

  3. テンプレートコードエディターのspec > template > metadataセクションに次のラベルを追加します。

    labels:
      armsPilotAutoEnable: "on"
      armsPilotCreateAppName: "<your-deployment-name>"    # Replace <your-deployment-name> with the actual application name. 
      armsSecAutoEnable: "on"    # If you want to connect the application to Application Security, you must configure this parameter.
    説明

    YAML Example

    次のYAMLテンプレートは、配置アプリケーションを作成し、アプリケーションのアプリケーションモニタリングを有効にする方法を示しています。

    完全なYAMLファイルを表示する (Java)

    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
            armsPilotAutoEnable: "on"
            armsPilotCreateAppName: "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 
    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"
        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
    ---

[デプロイメント] ページで、Javaアプリケーションの [アクション] 列の [ARMSコンソール] をクリックして、ARMSコンソールに移動し、サービスガバナンスを実行します。

次のステップ

  • クラスター内のすべてのアプリケーションのack-onepilotのアンインストール

    onectlの使用

    1. 次のコマンドを実行して、ack-onepilotコンポーネントをアンインストールします。

      onectl addon uninstall ack-onepilot

      期待される出力:

      Addon ack-onepilot uninstalled.
    2. アプリケーションポッドを再起動します。

    コンソールの使用

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

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

    3. On theアドオンページをクリックし、ログとモニタリングタブを検索し、ack-onepilotコンポーネントをクリックし、アンインストール右下隅にあります。

    4. 表示されたメッセージボックスで、[OK] をクリックします。

    5. アプリケーションポッドを再起動します。

  • クラスター内のアプリケーションのack-onepilotのアンインストール

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

    2. クラスターページで、目的のクラスターの名前をクリックし、ワークロード > デプロイメント左側のナビゲーションウィンドウに表示されます。

    3. [デプロイメント] ページで、管理するアプリケーションの [操作] 列で [詳細]> [YAMLで表示] を選択します。 [YAMLの編集] ダイアログボックスで、手順2で追加したラベルを削除し、[更新] をクリックします。

    4. アプリケーションポッドを再起動します。