Managed Service for Prometheusを使用して、さまざまなジオロケーションにデプロイされている登録済みのKubernetesクラスターを一元管理できます。 このトピックでは、登録済みクラスターに対してManaged Service for Prometheusを有効にする方法について説明します。
前提条件
Container Service for Kubernetes (ACK) コンソールで、外部Kubernetesクラスターが登録済みクラスターに接続されていること。 詳細については、「登録済みクラスターの作成」をご参照ください。
kubectlクライアントが登録済みクラスターに接続されています。 詳細については、「クラスターのkubeconfigファイルを取得し、kubectlを使用してクラスターに接続する」をご参照ください。
Express Connect回路を使用して外部Kubernetesクラスターが仮想プライベートクラウド (VPC) に接続されている場合、Managed Service for Prometheusの内部CIDRブロックを指すルートが設定されます。 詳細については、「VPCエンドポイントと対応するPrometheus Managed ServiceのCIDRブロック」をご参照ください。
ステップ1: ack-arms-prometheusコンポーネントのRAM権限を設定する
onectlの使用
オンプレミスマシンにonectlをインストールします。 詳細については、「onectlを使用した登録済みクラスターの管理」をご参照ください。
次のコマンドを実行して、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.
コンソールの使用
RAM ユーザーを作成します。 詳細については、「RAM ユーザーの作成」をご参照ください。
カスタムポリシーを作成します。 詳細については、「カスタムポリシーの作成」をご参照ください。 次のポリシーコンテンツには、ack-arms-prometheusに必要な権限が含まれています。
{ "Version": "1", "Statement": [ { "Action": [ "arms:Describe*", "arms:List*", "arms:Get*", "arms:Search*", "arms:Check*", "arms:Query*", "arms:ListEnvironments", "arms:DescribeAddonRelease", "arms:InstallAddon", "arms:DeleteAddonRelease", "arms:ListEnvironmentDashboards", "arms:ListAddonReleases", "arms:CreateEnvironment", "arms:UpdateEnvironment", "arms:InitEnvironment", "arms:DescribeEnvironment", "arms:InstallEnvironmentFeature", "arms:ListEnvironmentFeatures" ], "Resource": "*", "Effect": "Allow" } ] }
カスタムポリシーをRAMユーザーにアタッチします。 詳細については、「RAMユーザーへの権限付与」をご参照ください。
RAMユーザーのAccessKeyペアを作成します。 詳細については、「AccessKey の作成」をご参照ください。
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.
コンソールの使用
ACKコンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] をクリックします。
On theクラスターページで、クラスターの名前をクリックし、 左側のナビゲーションウィンドウに表示されます。
arms-prometheusおよびarms-prom HelmリリースがHelmページに表示されている場合は、Helmリリースを削除します。 次に、次の手順を実行してarms-prometheusとarms-promを再インストールします。
詳細ページの左側のナビゲーションウィンドウで、 を選択します。
On theアドオンページをクリックし、ログとモニタリングタブをクリックします。
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を設定できます。
次のYAMLテンプレートに基づいて、登録済みクラスターにServiceMonitorを作成します。
メトリック収集を開始する前に、15秒から1分待ちます。
メトリクスが収集されているかどうかを確認します。
最初に
ARMSコンソールを使用します。左側のナビゲーションウィンドウで、 .
[インスタンス] ページの上部のナビゲーションバーで、クラスターがデプロイされているリージョンを選択します。
表示するPrometheusインスタンスの名前をクリックして、統合の詳細ページに移動します。 左側のナビゲーションウィンドウで、[サービスの検出] をクリックします。 表示されるページで、[ターゲット] タブをクリックします。
arms-prom/arms-prom-cadvisor-10250という名前の収集タスクが存在し、期待どおりに実行されるかどうかを確認します。