Prometheus を使用して、登録済みクラスターのステータスをリアルタイムでモニターし、ダッシュボードでデータを表示し、リアルタイムのアラートを受信できます。この Topic では、Prometheus を登録済みクラスターに接続する方法について説明します。
前提条件
ACK One 登録済みクラスターが作成され、データセンターの自己管理型 Kubernetes クラスターが ACK One 登録済みクラスターに接続されていること。 詳細については、「ACK One 登録済みクラスターの作成」をご参照ください。
登録済みクラスターが専用回線を介して Alibaba Cloud Virtual Private Cloud (VPC) に接続されている場合は、「登録済みクラスターが内部ネットワーク経由でクラウドプロダクトにアクセスするためのルートの設定」の手順に従って設定を完了してください。 これにより、クラスターが ACK コンポーネントのレジストリアドレスにアクセスでき、Prometheus が内部ネットワーク経由でモニタリングデータをレポートできるようになります。
ステップ 1:ack-arms-prometheus コンポーネントへの Resource Access Management (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.
コンソールを使用した設定
カスタムポリシーの作成。 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 ユーザーの AccessKey ペアの作成。
警告AccessKey のセキュリティを強化するために、「AccessKey ペアベースのポリシーを設定したネットワークアクセス制御」を行い、AccessKey の呼び出し元を信頼できるネットワーク環境に限定することを推奨します。
AccessKey を使用して、登録済みクラスターに alibaba-addon-secret という名前の Secret リソースを作成します。
次のコマンドを実行して、ack-arms-prometheus コンポーネントの Secret を作成します。
kubectl create namespace arms-prom 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 ID と AccessKey Secret に置き換えてください。
ステップ 2:ack-arms-prometheus コンポーネントのインストール
onectl を使用したインストール
次のコマンドを実行して、ack-arms-prometheus コンポーネントをインストールします。
onectl addon install arms-prometheus期待される出力:
Addon arms-prometheus, version **** installed.コンソールを使用したインストール
ACK コンソールにログインします。 左側のナビゲーションウィンドウで、[クラスター] を選択します。
[クラスター] ページで、対象クラスターの名前をクリックします。 左側のナビゲーションウィンドウで、 を選択します。
[Helm] ページに arms-prometheus と arms-prom のインストールレコードが含まれている場合は、続行する前にそれらを削除してください。
詳細ページの左側のナビゲーションウィンドウで、[アドオン] をクリックします。
[アドオン] ページで、[ログとモニタリング] タブをクリックします。
[ack-arms-prometheus] カードを見つけ、右下隅にある [インストール] をクリックし、[OK] をクリックします。
インストールが完了したら、Prometheus コンソールにログインします。 コンソールで、クラスターインスタンスに移動してモニタリングデータを表示し、アラートルールを定義します。 詳細については、「Prometheus モニタリングへのデータソースの接続」および「Prometheus アラートルールの作成」をご参照ください。
ack-arms-prometheus コンポーネントのデータ収集ポートの CAdvisor ポート 10250 への切り替え
デフォルトでは、ack-arms-prometheus コンポーネントは CAdvisor ポート 10255 からデータを収集します。 登録済みクラスターで kubelet ポート 10250 のみが開いている場合は、次の手順に従ってコンポーネントのデータ収集ポートを切り替えます。
次の YAML コンテンツを使用して、登録済みクラスターに ServiceMonitor をデプロイおよび設定します。
約 15 秒から 1 分待ってから、収集されたデータを確認します。
ポートを切り替えた後、収集されたデータを確認します。
ARMS コンソールにログインします。
左側のナビゲーションウィンドウで、 を選択します。
[Prometheus モニタリング] ページで、上部のメニューバーからクラスターが配置されているリージョンを選択します。
[インスタンス] ページで、対象インスタンスの名前をクリックして統合センターページに移動します。 左側のナビゲーションウィンドウで [指標収集] をクリックし、[自己監視] タブをクリックします。
[arms-prom/arms-prom-cadvisor-10250] 収集ジョブが存在し、そのステータスが [正常] であることを確認します。