はじめに
Kubernetes Intelligence を利用開始するには、コンソールで接続済みクラウドアカウントの Kubernetes core 設定を有効化し、その後 Kubernetes クラスタをオンボーディングします。
以下の手順ガイドに従うか、AWS でのオンボーディングフローを視覚的に確認できる ▶️ EKS 向けインタラクティブデモ を参照してください。
必要なライセンス
Kubernetes Intelligence は、すべての Cloud Intelligence プランに含まれています。 利用するために PerfectScale の顧客である必要はありません。
ただし、PerfectScale アカウントを有効化すると、PerfectScale プラットフォームへのワンクリック連携を利用できます。PerfectScale は、最適化作業を手動の試行錯誤から、ガイド付きの推奨事項と自動化されたデータドリブンなワークフローへと変革する機能を提供します。これにより、ガバナンスポリシーを確立し、望ましい結果を得るために環境を継続的に最適化できます。これらの機能を試したい場合は、PerfectScale アカウントを有効化し、エージェントを再インストールすることなく 30 日間の無料トライアルを開始できます。
PerfectScale for Kubernetes は Cloud Intelligence Enterprise ティアに含まれています。 それ以外のプランでは、個別のサブスクリプションとして利用可能です。利用可能なプランについては、PerfectScale Service Description を参照してください。
Kubernetes core を有効化する
コンソールで接続済みクラウドアカウントの Kubernetes core を有効化すると、DoiT に Kubernetes クラスタを検出し、Kubernetes Intelligence の機能を利用するための権限が付与されます。これは DoiT における前提条件となる設定であり、個別の製品機能ではありません。
- AWS account
- Google Cloud organization or project
新しいアカウントのリンク時、またはリンク済みアカウントの編集時に Kubernetes core を有効化できます。

詳しい手順は Link your AWS account を参照してください。必要な権限については Kubernetes core を参照してください。
Google Cloud の組織またはプロジェクトを接続する際、または接続の編集時に Kubernetes core を有効化できます。

詳しい手順は Connect Google Cloud resources を参照してください。必要な権限については Kubernetes core を参照してください。
権限が付与されると、次の処理が行われます。
-
DoiT は、接続されている AWS アカウントおよび Google Cloud の組織・プロジェクトを毎日スキャンし、クラウド環境内の Kubernetes クラスタを検出します(AWS は UTC 深夜、Google Cloud は UTC 午前 2 時)。
-
DoiT は、PerfectScale プラットフォームにオンボーディングされているクラスタについて PerfectScale と同期します。
セルフマネージドの Kubernetes クラスタ(例: 生の EC2 インスタンス上で稼働しているクラスタ)は、プラットフォームによる日次スキャンでは検出されません。セルフマネージドクラスタを使用している場合は、コンソールで手動で追加 してから、エージェントをインストール してください。
クラスタをオンボーディングする
Kubernetes Intelligence エージェントは PerfectScale Exporter です。これはクラスタ内で稼働し、利用率メトリクスを PerfectScale に送信し、DoiT はそれらのメトリクスを Kubernetes Intelligence とコンソール内の関連機能で可視化します。
Kubernetes クラスタをオンボーディングするには、エージェントをインストールするか、既存の PerfectScale デプロイメントをマッピングします。
-
DoiT コンソール で、上部のナビゲーションメガメニューから Data ingestion and integrations > Integrations を選択してください。
-
Kubernetes インテグレーション カードで Manage を選択してください。ここには、プラットフォームの日次スキャンで検出されたすべてのクラスタが表示されます。
-
すでに PerfectScale でクラスタをオンボーディングしている場合は、Option 1: Map clusters に進んでください。そうでない場合は、Option 2: Install agent via Helm chart に進んでください。

Option 1: Map clusters
このオプションでは、すでに PerfectScale にオンボーディングされているクラスタへのエージェントの再インストールを回避できます。
Map clusters を選択し、PerfectScale のクラスタと、それに対応する DoiT エンティティとの対応関係を指定してください。

Option 2: Install agent via Helm chart
-
まだ行っていない場合は、ローカル環境に Helm をインストール してください。
-
kubectlコマンドラインツールがクラスタと通信できるように設定されていることを確認してください。kubectlを正しいクラスタに向ける方法はいくつかあります。ここでは一例を示します。- Amazon Elastic Kubernetes Service
- Google Kubernetes Engine
-
対象クラスタに対して、IAM ユーザーを AmazonEKSClusterAdminPolicy アクセスポリシーに関連付けてください。
-
AWS CLI で次のコマンドを使用し、EKS クラスタに
kubectlを接続するためのkubeconfigファイルを作成してください。aws eks update-kubeconfig --name <eks_cluster_name> --region <region>
-
gcloud CLI をインストール してください。
-
gcloud config set project <projectID>コマンドを実行して、project プロパティを設定してください。 -
次のコマンドを使用して
kubeconfigファイルを更新し、kubectlが GKE クラスタを指すようにしてください。gcloud container clusters get-credentials <gkeClusterName> --zone <zone> --project <projectID>
-
コンソールで Kubernetes アセット一覧に移動し、対象のクラスタを探して、Action 列で Install agent を選択してください。
プラットフォームが、PerfectScale 上でエージェントがインストールされているものの、まだマッピングされていないクラスタを検出した場合は、クラスタをマッピングして、以下の手順をスキップするオプションが表示されます。

-
コンソールに表示される Helm コマンドをコピーして実行し、PerfectScale Helm chart repo を追加してください。
この Helm チャートはいくつかのコンポー ネントをデプロイします。クラスタノードに、エージェント Pod をスケジューリングするために十分な割り当て可能 CPU とメモリがあることを確認してください。デフォルトでは、メインのエクスポーターが 200m CPU と 300Mi メモリを要求し、さらに kube-state-metrics など追加のリソースを要求する補助コンポーネントもデプロイされます。
ネットワークポリシー、ファイアウォール、またはプロキシを使用している場合は、エージェントと Helm チャートに必要な宛先への HTTPS アウトバウンドアクセスを許可してください。ホスト名、ポート、およびプロキシ設定の完全な一覧については、Outbound request ports used by the PerfectScale agent および PerfectScale agent を参照してください。

-
PerfectScale tenant ドロップダウンが表示されている場合は、クラスタをオンボーディングするテナントを選択してください。
注意このドロップダウンは、そのクラスタが初めてテナントに割り当てられる場合で、かつ組織に複数の承認済み PerfectScale テナントが存在する場合に表示されます。組織に承認済みテナントが 1 つしかない場合、クラスタは自動的にそのテナントに割り当てられます。
-
Generate secret を選択して、認証情報が埋め込まれた Helm デプロイコマンドを生成してください。
-
コンソールに表示される Helm コマンド内の
secret.clientIdとsecret.clientSecretの値を控えておいてください。新しい認証情報が必要な場合を除き、コマンドを複数回生成しないようにしてください。 -
Helm コマンドをコピーして実行し、チャートをデプロイしてください。
このコマンドはクラスタを PerfectScale テナントに登録します。DoiT はそのテナントをお客様の組織にマッピングするため、クラスタデータがコンソールに表示されます。
コマンドが生成されると、テナントの選択はロックされ、変更できなくなります。
注意Generate secret で次のようなエラーが返された場合:
-
クラスタが別の PerfectScale テナントにすでに割り当てられている場合、そのクラスタは他のテナントにオンボーディングされており、再割り当てはできません。
-
選択したテナントが利用できない場合、そのテナントはお客様の組織に対して承認されていません。PerfectScale tenant ドロップダウンから別のテナントを選択して、もう一度実行してください。
-
-
Helm デプロイが完了したら Done を選択してください。
エージェントステータスを確認する
インストールまたはマッピングが正常に完了すると、アセット一覧のクラスタの Agent status に Waiting for data と表 示されます。このステータスは最大 3 分間続く場合があります。その後、ステータスは Transmitting Data に変わります。
Agent status が数分以上 Waiting for data のままで、Transmitting Data に変わらない場合は、perfectscale 名前空間内の Pod が稼働しているか確認してください。
kubectl get pods -n perfectscale
クラスタノードで使用可能な CPU またはメモリが不足していることは、スケジューリング失敗の一般的な原因です。Pod が Pending ステータスのままの場合は、kubectl describe nodes でノードのキャパシティを確認するか、インストールを再試行する前にクラスタへキャパシティを追加してください。
複数のクラスタをオンボーディングする場合は、クラスタごとに上記の手順を繰り返してください。
アセットテーブル内のステータスが更新されるまでに最大 3 分、Kubernetes Intelligence でデータが利用可能になるまでに最大 24 時間かかる場合があります。
(オプション)AWS EC2 上でホストされているクラスタのコストトラッキングを有効にする
Amazon EC2 インスタンス上でホストされているセルフマネージドクラスタのコストをトラッキングするには、EC2 インスタンスに eks:cluster-name などのユーザー定義コスト配分タグを手動で付与する必要があります。これらのタグが AWS の請求でコスト配分タグとして有効化されていることを確認してください。詳細は、Activating user-defined cost allocation tags および AWS cost allocation tags in the platform を参照してください。
DoiT は請求データを毎日スキャンします。クラスタが新規作成されたばかり(72 時間以内)または利用料金が発生していない場合、DoiT はそれらのクラスタを検出しません。
(オプション)GKE 上でホストされているクラスタのコストトラッキングを有効にする
GKE Intelligence を最大限に活用するには、計測したいすべてのクラスタで GKE コスト配分を有効にしてください。詳しくは、GKE cost allocation を参照してください。
クラスタのオフボーディング
クラスタをオフボーディングするには、次の kubectl コマンドを実行してください。名前空間を削除すると、クラスタからエージェントが削除され、すべてのデータ送信が停止します。
kubectl delete namespace perfectscale
Delete agent の手順内でも、このコマンドを確認できます。
▶️ EKS 向けインタラクティブデモ
AWS/EKS のオンボーディングフローを、ハンズオン形式で体験できるインタラクティブデモをお試しください。
デモが正しく表示されない場合は、ブラウザウィンドウを最大化するか、新しいタブでデモを開いてください。
このデモは AWS/EKS の手順のみを対象としています。GKE ユーザーは、上記の手順書に従ってください。