VPC環境で利用できます。
- Cluster Monitoringは Kubernetes 1.23バージョン以上から提供します。
- 1.23以前バージョンのクラスタは、アップグレード機能を利用して必要なバージョンを満たした後に使用できます。
- Sub Accountが Cluster Monitoringを使用するには、アクション
View/getClusterDetailに対するリソースタイプCluster/*権限が必要です。
Cluster Monitoringは、Kubernetesクラスタ内のリソースに対する使用量を収集して Cloud Insightサービスに転送します。収集されたデータは、NAVERクラウドプラットフォームコンソールの Ncloud Kubernetes Service内の Grafanaや Cloud Insightのダッシュボードで確認できます。これにより別途のリソースモニタリングツールなしでも使用量を確認できます。
サポートするバージョン
| Feature\Kubernetes Version | 1.22 | 1.23+ |
|---|---|---|
| Kubernetes Cluster Monitoring | サポートしない | サポート |
利用料金
Cloud Insightで発生する利用料金に従います。
Cloud Insightの利用料金の詳細基準は、NAVERクラウドプラットフォームポータルの サービス > Cloud Insight をご参照ください。
データ保管期間
Cloud Insightのデータ保存期間に従います。データ保存期間の詳細は、Cloud Insight の仕様の データ保管期間 をご参照ください。
| 集計周期(Interval) | データ保管期間(本日より) | 推奨データ照会期間 |
|---|---|---|
| Min1 | 8日以内 | 1日 |
| Min5 | 1か月以内 | 1週間 |
| Min30 | 3か月以内 | 1か月 |
| Hour2 | 6か月以内 | 1か月 |
| Day1 | 1年以内 | 1か月 |
収集対象
kube-system名前空間内の podに対するモニタリングはサポートしません。
Kubernetes Cluster Monitoringは、以下に定義された typeに該当するリソースを収集します。
| タイプ | 説明 |
|---|---|
| CpuMem | podの CPU/MEMリソース使用量 |
| Network | podの Network In/Out rate |
| Disk | podの Blockstorageリソース使用量 |
| NodeAvailability | クラスタ内のノード空き容量 |
| PodStatus | podのステータス |
Type: CpuMem
Dimensions
| Dimensions | Description |
|---|---|
| type | CpuMemとして定義 |
| clusterUUID | cluster UUID |
| nodeInstanceNo | podが位置した nodeの instanceNo |
| namespace | podが位置した namespace |
| controller | podを作成した controller |
| pod | pod名 |
Metrics
| Metrics | Description |
|---|---|
| real_cpu | pod cpu使用量 |
| real_mem | pod mem使用量 |
Type: Network
Dimensions
| Dimenions | Description |
|---|---|
| type | Networkとして定義 |
| clusterUUID | cluster UUID |
| nodeInstanceNo | podが位置した nodeの instance id |
| namespace | podが位置した namespace |
| controller | podを作成した controller |
| pod | pod名 |
| interface | ネットワーク In/Outが発生した interface |
Metrics
| Metrics | Description |
|---|---|
| network_rx_bytes | 受信バイト数 |
| network_tx_bytes | 送信バイト数 |
Type: Disk
Dimensions
| Dimensions | Description |
|---|---|
| type | Diskとして定義 |
| clusterUUID | cluster UUID |
| nodeInstanceNo | podが位置した nodeの instanceNo |
| namespace | podが位置した namespace |
| controller | podを作成した controller |
| pod | pod名 |
| pvc | pvc名 |
Metrics
| Metrics | Description |
|---|---|
| available_bytes | 使用可能にしたディスクバイト数 |
| capacity_bytes | 合計ディスクバイト数 |
| used_bytes | 使用したディスクバイト数 |
| disk_used_ratio | 利用可能なディスクの割合、0~1までの値 |
Type: NodeAvailability
Dimensions
| Dimensions | Description |
|---|---|
| type | NodeAvailabilityとして定義 |
| clusterUUID | cluster UUID |
Metrics
| Metrics | Description |
|---|---|
| node_total_count | クラスタ内ノードの合計 |
| node_ready_count | クラスタ内 readyのノードの数 |
| node_not_ready_count | クラスタ内 not readyのノードの数 |
| node_available_ratio | node_ready_count / node_total_count、0~1までの値 |
Type: PodStatus
Dimensions
| Dimensions | Description |
|---|---|
| type | PodStatusとして定義 |
| clusterUUID | cluster UUID |
| namespace | podが位置した namespace |
| controller | podを作成した controller |
Metrics
| Metrics | Description |
|---|---|
| pod_phase_pending | controllerに属した podの中で pendingである phaseの数 |
| pod_phase_running | controllerに属した podの中で runningである phaseの数 |
| pod_phase_succeeded | controllerに属した podの中で succeededである phaseの数 |
| pod_phase_failed | controllerに属した podの中で failedである phaseの数 |
| pod_available_ratio | controllerに属した podの中で利用可能な Podの割合、0~1までの値、ReplicaSet、DaemonSet、StatefulSetをサポート |
| pod_restart_count | controllerに属した podの restart count数の合計 |
Grafana
Grafanaは、時系列データの可視化を提供するツールです。Cloud Insightに送信したデータを Grafanaダッシュボードで確認します。
NAVERクラウドプラットフォームコンソールの Ncloud Kubernetes Serviceサービス内クラスタのサブリストの Monitoring項目で Grafanaリンクを確認します。
Grafanaダッシュボードの利用料金は発生しません。
Overview
保有しているクラスタのリストを確認します。以下のボタンでクラスタ内のリソースをモニタリングします。
- Nodes: クラスタ内のワーカーノードに対する Availabilityと CPU/Memory/Disk/Networkリソース使用量を照会します。
- Pods: クラスタ内の Podに対する CPU/Memory/Disk/Networkリソース使用量を照会します。
Alerts
クラスタ内のリソースニ対するしきい値を設定し、条件を満たした場合はアラームを受信できるように Event Ruleを設定します。設定した値は Cloud Insightサービスに保存され、Cloud Insightサービスの Event Ruleでも確認できます。
Alerts タブで以下の内容を確認します。
- Cloud Insight Event Rule Group
- 選択した Clusterに対する Event Rule Groupを作成/削除/照会します。
- Event Rule Groupの下位に Metricに対するしきい値条件を設定します。
- 以下の Product Typeをサポートします。
- Ncloud kubernetes service
作成した Cloud Insight Event Rule Groupをクリックすると、以下の詳細グループを確認できます。
- Monitor Group
- モニタリングするための指標が作成されるリソースグループです。
- Metric Group
- Monitor Groupで作成した指標に対するアラームを発生させるための条件を設定した値です。
New Metricボタンをクリックして条件を登録します。
- Notification Group
- Metric Groupで設定したアラームが発生した場合、これを通知する対象グループです。
New Recipientボタンをクリックして通知対象を登録します。
Notification Group内の通知対象は NAVERクラウドプラットフォームコンソール内の Notification Recipient サービスで管理します。Ncloud Kubernetes Serviceの Alerts メニューではサポートしません。
Metric Group内に登録できる指標として、以下の事項を考慮します。
指標例
- Deploymentのような Controllerが特定数の Podのスケジューリングをリクエストしたが、admission controllerなどの影響で実行できず、期待していた割合以下の Pod数が駆動される場合
- pod available ratio < 0.7に設定して、desired pod数に比べて available pod数の割合が70%未満だとアラームが発生するように設定
- Deploymentのような Controllerが作成をリクエストした Podの中で Runningステータスではないものの数が増加する場合
- pod available ratio < 0.7に設定して、desired pod数に比べて available pod数の割合が70%未満だとアラームが発生するように設定
- pod phase pending >=1に設定して、phaseが Pendingの podが一つ以上の場合、アラームが発生するように設定
- ノードのステータスが Readyではない場合
- node available ratio < 0.8に設定して、全ノードの中で Readyのノードの割合が80%未満だとアラームが発生するように設定
- node not ready_count >=1に設定して、全ノードの中で Readyではないノードがあるとアラームが発生するように設定
- Crashステータスの Pod数が増加する場合
- pod restart count >= 10に設定して、podが特定の回数以上、kubeletなどによって再起動した場合はアラームが発生するように設定
- Cronjobなどのタスクが失敗して Podに Failedの Phaseが発生した場合
- pod phase failed >=1に設定して、Jobなどが失敗した場合にアラームが発生するように設定