Managed Service for Prometheusを使用して、さまざまなジオロケーションにデプロイされている登録済みのKubernetesクラスターを一元管理できます。 このトピックでは、登録済みクラスターに対してManaged Service for Prometheusを有効にする方法について説明します。
前提条件
Container Service for Kubernetes (ACK) コンソールで、外部Kubernetesクラスターが登録済みクラスターに接続されていること。 詳細については、「ACKコンソールでの登録済みクラスターの作成」および「Use onectl to create a registered cluster」をご参照ください。
kubectlクライアントが登録済みクラスターに接続されています。 詳細については、「kubectl を利用した Kubernetes クラスターへの接続」をご参照ください。
Express Connect回路を使用して外部Kubernetesクラスターが仮想プライベートクラウド (VPC) に接続されている場合、Managed Service for Prometheusの内部CIDRブロックを指すルートが設定されます。 詳細については、「VPCエンドポイントと対応するPrometheus Managed ServiceのCIDRブロック」をご参照ください。
ステップ1: ack-arms-prometheusコンポーネントのRAM権限を設定する
onectlの使用
オンプレミスマシンにonectlをインストールします。 詳細については、「Use onectl to manage registered clusters」をご参照ください。
次のコマンドを実行して、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ペアを指定します。
ステップ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ページの上部のナビゲーションバーで、クラスターがデプロイされているリージョンを選択します。 表示するPrometheusインスタンスの名前をクリックして、[Integration Center] ページに移動します。
左側のナビゲーションウィンドウで、[サービスの検出] をクリックします。 表示されるページで、[ターゲット] タブをクリックします。
arms-prom/arms-prom-cadvisor-10250という名前の収集タスクが存在し、期待どおりに実行されるかどうかを確認します。