Kubernetes監視を使用して、コンテナによるインフラストラクチャの各コンポーネントを監視し、Kubernetesクラスターの正常性とパフォーマンスを監視します。
Site24x7ではオンプレミス、Azure (Azure Kubernetes Engine)、AWS (Elastic Kubernetes Service)、GCP (Google Kubernetes Engine)、MicroK8sといったプラットフォームでのKubernetes監視に対応しています。
Kubernetes監視を追加するにはSite24x7にログイン後、[サーバー]→[Kubernetes]→[クラスター]の横にある[+]アイコンをクリックしてください。
ロールベースのアクセスコントロール権限を設定し、デーモンセットとしてSite24x7エージェントをインストールします。
kubectl create secret generic site24x7-agent --from-literal KEY='<device-key>' && kubectl apply -f site24x7-agent.yaml
kubectl apply -f site24x7-kube-state-metrics.yaml
site24x7-agentポッドが作成され実行状態であることを確認します。Site24x7にノード、コンテナー、ポッド、デプロイメント、HPA、レプリカセットが追加されるには数分かかります。
プロキシが設定されている場合、site24x7-agent.yamlファイルのenvにある次の行をアンコメントして、プロキシの値を更新します。
Helmチャートを使用してKubernetesエージェントをインストールする手順は次のとおりです。
次のコマンドを実行して最新バージョンのチャートを取得します。
helm repo update
次のコマンドを実行してシークレットを作成します。<device-key>は自身のデバイスキーに置換してください。
kubectl create secret generic site24x7-agent --from-literal KEY='<device-key>'
デーモンセット経由でクラスター内の全ノードにSite24x7が追加されます。数分後、Site24x7アカウントでデータが収集が行われます。
Helmインストールコマンドにプロキシ設定のインストールパラメーターを設定します。
上記により、エージェントがデーモンセット経由でクラスター内の全ノードにインストールされます。
これに加えて、メトリック取得のためkube-state-metricsがデプロイメントとしてデプロイされます。
ロールベースのアクセスコントロール権限を設定し、エージェントをSidecarコンテナーとしてコンテナーにデプロイします。
デバイスキーは[管理]→[開発者]→[デバイスキー]で表示されます。
kubectl create secret generic site24x7-agent --from-literal KEY='<device-key>' && kubectl apply -f site24x7-sidecar-agent.yaml
Kubernetesメトリックであるkube-state-metricsを有効化する方法は次のとおりです。
ロールベースのアクセスコントロール権限をクラスターに設定し、GKE Autopilotにデーモンセットとしてエージェントをインストールします。
kubectl create secret generic site24x7-agent --from-literal KEY='<device-key>' && kubectl apply -f site24x7-gke-autopilot-agent.yaml
ロールベースのアクセスコントロール権限をクラスターに設定し、Openshiftにデーモンセットとしてエージェントをインストールします。
oc apply -f site24x7-openshift-agent.yaml
プロキシ設定
プロキシを設定している場合、YAMLファイルのenv配下の次の行をアンコメントし、プロキシ値を更新します。
- name: http_proxy
value: <http_proxy_value>
- name: https_proxy
value: <https_proxy_value>
Kubernetes監視の編集ページで、Kubernetesクラスター設定を編集できます。
Kubernetes監視が追加されると、クラスタ全体を表示するビジネスビューが作成されます。
[インフラストラクチャビュー]と[サービスビュー]を切り替えると、外れ値を見つけて、Kubernetesクラスターの異常な監視パターンを検出します。
詳細は、こちらのページをご確認ください。
クラスタ、ノード、ポッド、コンテナの情報をノード単位で表示します。
クラスタ、サービス、ポッド、コンテナの情報をサービス単位で表示します。
Site24x7にコンポーネントを追加すると、次のパフォーマンスメトリックを参照できます。
[サーバー]→[Kubernetes]→[クラスター]→[サービス]をクリック後、参照したい監視名を選択することで、パフォーマンスメトリックを表示します。
メトリック名 | 説明 |
サマリー | |
設定の詳細 | ロードバランサーとクラスターの名前、タイプ、アノテーション、ID、ラベル、IPアドレスなどの情報を表示します |
インベントリー情報 | |
関連コンポーネント | デプロイメント、ノード、ポッドに関連付けられているその他コンポーネントを表示し、リソースタイプをクリックすると詳細なレポートが表示されます |
[サーバー]→[Kubernetes]→[クラスター]→[ノード]をクリック後、参照したい監視名を選択することで、パフォーマンスメトリックを表示します。
メトリック名 | 説明 |
サマリー | |
設定の詳細 | 名前、作成時間、ユニークID、アノテーションなどが表示されます |
識別子 | ノードに関連付けられているラベルとアノテーションが表示されます |
条件 | ノード機能の各条件です。この条件でしきい値が設定されます |
リソース | ノードのリソース容量と使用率です |
依存関係 | 特定のノードのポッド情報が表示されます |
パフォーマンス | |
CPUコアのリソース使用率 | ノードのCPUリソースの合計です |
メモリバイトのリソース使用率 | ノードのメモリリソースの合計です |
未スケジュールノード | ノードが新規ポッドにスケジュールできるかどうかです |
[サーバー]→[Kubernetes]→[クラスター]→[ポッド]をクリック後、参照したい監視名を選択することで、パフォーマンスメトリックを表示します。
メトリック名 | 説明 |
サマリー | |
設定の詳細 | 名前、ホストIP、DNSポリシー、ラベルなどが表示されます。 |
条件 | ポッド機能の条件です。この条件でしきい値が設定されます。 |
パフォーマンス | |
ポッドステータス | 選択した期間でのポッドのステータスです |
待機ポッドステータス | ポットがリクエスト受信のために待機しているかどうかを示します |
スケジュールポッドステータス | ポッドのスケジューリング処理のステータスです |
[サーバー]→[Kubernetes]→[クラスター]→[コンテナー]をクリック後、参照したい監視名を選択することで、パフォーマンスメトリックを表示します。
メトリック名 | 説明 |
ポートバインディング | コンテナに公開されているポートの詳細とホストとのマッピング状況です |
ボリュームバインディング | コンテナにアタッチされているボリュームの詳細です |
CPU使用率 | ポッドのコンテナCPU使用率です |
ネットワーク統計 | コンテナのインターフェースで受信および送信されたバイト数です |
I/O使用率 | コンテナとディスク間での読み取り、書き込み、完了I/O操作数です |
匿名メモリ統計 | カーネルでアクティブおよび非アクティブと認識された匿名メモリ量です |
ファイル統計 | カーネルアクティブおよび非アクティブと認識されたキャッシュメモリです |
キャッシュサイズ | 制御グループのプロセスで使用されているメモリ量です |
ページ統計 | Cgroupに課金(アカウントに追加されている)ページ数で、PgPinが増加します。ページが未課金(Cgroupに請求されていない)場合、PgOutが増加します |
レジデントセットサイズ | プロセスのノンキャッシュメモリです |
メモリの合計 | スタック、ヒープ、匿名メモリ以外のコンテナディスクメモリ量です |
スワップメモリ | コンテナが使用可能なすべてのRAMを使い果たしたときの、ディスクに付与されるの過剰メモリです |
再生不可メモリ | 再利用できないメモリの量。通常、これはmlockでロックされたメモリを指します。秘密鍵やその他の機密情報がディスクにスワップアウトされないようにするための暗号フレームワークでよく使用されます |
[サーバー]→[Kubernetes]→[クラスター]→[デプロイ]をクリック後、参照したい監視名を選択することで、パフォーマンスメトリックを表示します。
メトリック名 | 説明 |
設定の詳細 | 名前、作成時間、ユニークID、ラベル、アノテーションなどが表示されます |
レプリカセットのステータス | レプリカセットごとのステータスです |
ポッド数 | ノード内のポッドリソース数です |
利用可能および利用不可ポッドのステータス | スケジューリングが利用可能および利用できないノードのポッドリソース数です |
ポッドの必要数 | 正常なポッドの最小必要数です |
停止デプロイメントのステータス | デプロイメントが停止しているかどうかを示します |
ローリングアップデート中に使用できないレプリカ | ローリングアップデート中に使用できないレプリカの最大数です |
[サーバー]→[Kubernetes]→[クラスター]→[レプリカセット]をクリック後、参照したい監視名を選択することで、パフォーマンスメトリックを表示します。
メトリック名 | 説明 |
設定の詳細 | 名前、作成時間、ユニークID、ラベル、アノテーションなどが表示されます |
レプリカの合計 | デプロイメントごとのレプリカの合計です |
フルラベルレプリカ | レプリカセットごとのフルラベルレプリカの数です |
待機レプリカ | レプリカセットごとの待機レプリカの数です |
レプリカセットの必要ポッド | レプリカセットの必要ポッドです |
[サーバー]→[Kubernetes]→[クラスター]→[デーモンセット]をクリック後、参照したい監視名を選択することで、パフォーマンスメトリックを表示します。
メトリック名 | 説明 |
設定の詳細 | 名前、作成時間、ユニークID、ラベル、アノテーションなどが表示されます |
利用可能なデーモンセット数 | デプロイメントごとの利用可能なデーモンセット数です |
スケジュールデーモンセット | 最低1つ以上のデーモンポッドが稼働しているノード数です |
デプロイされた待機デーモンセット | デーモンポッドが稼働していて1つ以上が稼働または待機中のノード数です |
更新されたデーモンセット | 更新されたデーモンポッドを稼働しているノードです |
[サーバー]→[Kubernetes]→[クラスター]→[エンドポイント]をクリック後、参照したい監視名を選択することで、パフォーマンスメトリックを表示します。
メトリック名 | 説明 |
設定の詳細 | エンドポイントおよびネームスペースの名前、ユニークID、作成時間が表示されます |
作成済みエンドポイント | Kubernetesクラスタ内で作成されたネットワークエンドポイントです |
利用可能なアドレス | エンドポイントで利用可能なIPアドレス数です |
対応不可なアドレス | エンドポイントで準備ができていないIPアドレスの数です |
[サーバー]→[Kubernetes]→[クラスター]→[HPA]をクリック後、参照したい監視名を選択することで、パフォーマンスメトリックを表示します。
メトリック名 | 説明 |
設定の詳細 | HPAとネームスペースの名前、ユニークID、スケールセットの種類、作成時間が表示されます |
レプリカ | オートスケーラーで管理されているポッドのレプリカ数です |
現在 vs 対象CPU使用率 | 全ポッド間の現在および対象のCPU使用率を示し、70の値を取ると要求されたCPUの70%を平均化されたポッドが使用していることを表します。 |
現在および必要レプリカ | オートスケーラーで管理されているポッドの現在および必要なレプリカ数です |
ステータス条件 | オートスケーラーの条件です |
[サーバー]→[Kubernetes]→[クラスター]→[ステートフルセット]をクリック後、参照したい監視名を選択することで、パフォーマンスメトリックを表示します。
メトリック名 | 説明 |
ステートフルセットの詳細 | ステートフルセットおよびネームスペースの名前、作成時間、ユニークIDが表示されます |
コンフィグ詳細 | 現在および更新されたリビジョン、サービス名、ポッド管理ポリシー、更新戦略などを表示します |
ステートフルセットステータスレプリカ | ステートフルセットに作成されたレプリカ数です |
現在のステートフルセットのレプリカ | 現在のバージョンのステートフルセットに作成されたレプリカ数です |
ステートフルセットの準備済みレプリカ | ステートフルセットに作成された準備済みレプリカ数です |
ステートフルセット更新レプリカ | 新規バージョンのステートフルセットに更新されたレプリカの数です |
レプリカ | ステートフルセットごとのレプリカ数です |
コリジョン数 | ステートフルセットのハッシュコリジョン数です |
[サーバー]→[Kubernetes]→[クラスター]→[永続ボリュームクレーム]をクリック後、参照したい監視名を選択することで、パフォーマンスメトリックを表示します。
メトリック名 | 説明 |
永続ボリュームクレームの詳細 | PVCおよびネームスペースの名前、作成時間、ユニークIDが表示されます |
コンフィグ詳細 | ボリューム名、モード、ストレージクラス、最終編集者などが表示されます |
永続ボリュームクレームステータス | PVCの現在の情報やステータスが表示されます |
Site24x7画面で、[レポート]→[Kubernetes]をクリックすると、次のレポートでKubernetes監視について表示できます。
Kubernetesノード上で稼働しているサーバー監視エージェントを経由してKubernetes環境の下記ログを収集して監視します。
Site24x7エージェントがKubernetes APIを用いて設定データと基本的なパフォーマンスデータを収集します。
使用しているAPIのバージョンはapps/v1であり、エージェントはRBAC認証を用いてAPIにアクセスします。RBAC認証時には、site24x7-agent.yamlファイル適用時に作成される権限をもつ次のオブジェクトが作成されます。
site24x7-agent.yamlファイルが適用されると、RBAC認証トークンが作成されて、自動的にSite24x7エージェントコンテナにマウントされます。このトークンを用いてエージェントがAPIにアクセスしてデータを収集します。
site24x7-agent.yamlファイルが適用されると、site24x7-agentというデーモンセットが作成されます。このデーモンセットはローリングアップデート戦略に用いられます。
kube-state-metricsは詳細なパフォーマンスデータを収集するために用いられます。これはkube-state-metrics.yamlファイルが適用されている場合のみ有効にできます。パフォーマンスデータはAPIにアクセスすることで収集されます。
Site24x7エージェントはKubernetes APIの"List"と"Watch"権限のみを所持しており、それによりsite24x7-agent.yamlファイルを特定します。KubernetesオブジェクトデータはKubernetes APIのみを経由して読み取られ、書き込み操作は行いません。そのためエージェントはKubernetesオブジェクトの作成や更新が行えません。エージェントが収集したデータはKubernetesが首位証している認証メソッドでのみ収集されます。
1 Kubernetesクラスターごとに1ベーシック監視とみなされます。
詳細は、こちらのページをご確認ください。
[サーバー]→[Kubernetes]→クラスターに移動し、消費ライセンス数を表示できます。
特定のクラスターのライセンス使用量列に表示されている数字をクリックすることで消費量の詳細にドリルダウンできます。