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

:登録済みクラスターに対するPrometheusのマネージドサービスの有効化

最終更新日:Oct 21, 2024

Managed Service for Prometheusを使用して、さまざまなジオロケーションにデプロイされている登録済みのKubernetesクラスターを一元管理できます。 このトピックでは、登録済みクラスターに対してManaged Service for Prometheusを有効にする方法について説明します。

前提条件

ステップ1: ack-arms-prometheusコンポーネントのRAM権限を設定する

onectlの使用

  1. オンプレミスマシンにonectlをインストールします。 詳細については、「Use onectl to manage registered clusters」をご参照ください。

  2. 次のコマンドを実行して、ack-arms-prometheusコンポーネントのRAMアクセス許可を設定します。

    onectl ram-user grant --addon arms-prometheus

    期待される出力:

    Ram policy ack-one-registered-cluster-policy-arms-prometheus granted to ram user ack-one-user-ce313528c3 successfully.

コンソールの使用

外部Kubernetesクラスターがインターネット経由でACKに登録されている場合、ack-arms-prometheusをインストールする前に、登録済みクラスターでAccessKeyペアを指定する必要があります。 これにより、ack-arms-prometheusはAccessKeyペアを使用してAlibaba Cloudサービスにアクセスできます。 外部Kubernetesクラスターが内部ネットワーク経由でACKに登録されている場合、登録済みクラスターでAccessKeyペアを指定する必要はありません。

次のコマンドを実行して、外部Kubernetesクラスターが内部ネットワーク経由でACKに登録されているかどうかを確認します。

kubectl -n kube-system get deploy ack-cluster-agent -o=jsonpath='{.spec.template.spec.containers[0].env[?(@.name=="INTERNAL_ENDPOINT")].value}'
  • trueが出力に含まれている場合、外部Kubernetesクラスターは内部ネットワーク経由でACKに登録されます。

  • 出力にfalseが含まれている場合、外部Kubernetesクラスターはインターネット経由でACKに登録されます。 この場合、次の手順を実行して、登録済みクラスターのAccessKeyペアを指定します。

登録済みクラスターでのAccessKeyペアの指定

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

  2. カスタムポリシーを作成します。 詳細については、「カスタマイズポリシーの作成」をご参照ください。 次のポリシーコンテンツには、ack-arms-prometheusに必要な権限が含まれています。

    {
        "Version": "1",
        "Statement": [
            {
                "Action": [
                    "arms:Describe *" 、
                    "arms: リスト *" 、
                    "arms:Get *" 、
                    "arms: 検索 *" 、
                    "arms: チェック *" 、
                    "arms: クエリ *" 、
                    「武器: ListEnvironments」、
                    "arms:DescribeAddonRelease" 、
                    "arms:InstallAddon" 、
                    "武器: DeleteAddonRelease" 、
                    「アーム: ListEnvironmentDashboards」、
                    "武器: ListAddonReleases" 、
                    "arms:CreateEnvironment" 、
                    "arms:UpdateEnvironment" 、
                    「武器: InitEnvironment」、
                    「武器: DescribeEnvironment」、
                    "アーム: InstallEnvironmentFeature" 、
                    「武器: ListEnvironmentFeatures」
                ],
                "Resource": "*",
                "Effect": "Allow"
            }
        ]
    }
  3. カスタムポリシーをRAMユーザーにアタッチします。 詳細については、「RAMユーザーへの権限付与」をご参照ください。

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

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

    次のコマンドを実行して、ack-arms-prometheusのシークレットを作成します。

    kubectl -n arms-prom create secret generic alibaba-addon-secret -- from-literal='access-key-id=<your AccessKey ID>'-- from-literal='access-key-secret=<your AccessKey Secret>'
    説明

    <your AccessKey ID><your AccessKey Secret> を、前の手順で作成したAccessKeyペアに置き換えます。

ステップ2: ack-arms-prometheusコンポーネントをインストールする

onectlの使用

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

onectl addon install arms-prometheus

期待される出力:

Addon arms-prometheus, version **** installed.

コンソールの使用

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

  2. On theクラスターページで、クラスターの名前をクリックし、アプリケーション > ヘルム左側のナビゲーションウィンドウに表示されます。

    arms-prometheusおよびarms-prom HelmリリースがHelmページに表示されている場合は、Helmリリースを削除します。 次に、次の手順を実行してarms-prometheusとarms-promを再インストールします。

  3. 詳細ページの左側のナビゲーションウィンドウで、[操作] > [アドオン] を選択します。

  4. On theアドオンページをクリックし、ログとモニタリングタブをクリックします。

  5. ack-arms-prometheusコンポーネントを見つけて、右下隅の [インストール] をクリックします。 [OK] をクリックします。

コンポーネントがインストールされたら、 Prometheusコンソールのマネージドサービス。 登録済みクラスターにちなんで名前が付けられたPrometheusインスタンスをクリックします。 Prometheusインスタンスの詳細ページで、モニタリングデータを表示し、アラートルールを作成できます。 詳細については、「Prometheusサービスの有効化」および「Prometheusアラートルールの作成」をご参照ください。

cAdvisorのポート10250からメトリックを収集するようにack-arms-prometheusを設定する

既定では、ack-arms-prometheusはcAdvisorのポート10255からメトリックを収集します。 登録済みクラスターのkubeletのポート10250が開いている場合は、次の手順を実行して、cAdvisor (Container Advisor) のポート10250からメトリックを収集するようにack-arms-prometheusを設定できます。

  1. 次のYAMLテンプレートに基づいて、登録済みクラスターにServiceMonitorを作成します。

    YAMLファイルの内容を表示する

    apiVersion: monitoring.coreos.com/v1
    kind: ServiceMonitor
    metadata:
      annotations:
        arms.prometheus.io/discovery: 'true'
      name: arms-prom-cadvisor-10250
      namespace: arms-prom
    spec:
      endpoints:
        - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
          honorLabels: true
          port: https-metrics
          relabelings:
            - sourceLabels:
                - __metrics_path__
              targetLabel: metrics_path
          scheme: https
          tlsConfig:
            caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
            insecureSkipVerify: true
        - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
          honorLabels: true
          path: /metrics/cadvisor
          port: https-metrics
          relabelings:
            - sourceLabels:
                - __metrics_path__
              targetLabel: metrics_path
          scheme: https
          tlsConfig:
            caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
            insecureSkipVerify: true
        - bearerTokenFile: /var/run/secrets/kubernetes.io/serviceaccount/token
          honorLabels: true
          path: /metrics/probes
          port: https-metrics
          relabelings:
            - sourceLabels:
                - __metrics_path__
              targetLabel: metrics_path
          scheme: https
          tlsConfig:
            caFile: /var/run/secrets/kubernetes.io/serviceaccount/ca.crt
            insecureSkipVerify: true
      jobLabel: k8s-app
      namespaceSelector:
        matchNames:
          - kube-system
      selector:
        matchLabels:
          k8s-app: kubelet

    メトリック収集を開始する前に、15秒から1分待ちます。

  2. メトリクスが収集されているかどうかを確認します。

    1. にログインします。 ARMSコンソールを使用します。

    2. 左側のナビゲーションウィンドウで、Prometheusのマネージドサービス > Prometheusインスタンス.

    3. Prometheusページの上部のナビゲーションバーで、クラスターがデプロイされているリージョンを選択します。 表示するPrometheusインスタンスの名前をクリックして、[Integration Center] ページに移動します。

    4. 左側のナビゲーションウィンドウで、[サービスの検出] をクリックします。 表示されるページで、[ターゲット] タブをクリックします。

      arms-prom/arms-prom-cadvisor-10250という名前の収集タスクが存在し、期待どおりに実行されるかどうかを確認します。采集数据