3.10. コンポーネントのモニタリングに使用する CPU およびメモリーリソースの管理
モニタリングコンポーネントを実行するコンテナーに十分な CPU リソースとメモリーリソースがあることを確認するには、これらのコンポーネントに対するリソース制限と要求の値を指定します。
これらの制限と要求は、openshift-monitoring
namespace のコアプラットフォームモニタリングコンポーネント、および openshift-user-workload-monitoring
namespace のユーザー定義プロジェクトを監視するコンポーネントに対して設定できます。
3.10.1. モニタリングコンポーネントの制限と要求の指定について
コアプラットフォームモニタリングコンポーネントと、次のコンポーネントを含むユーザー定義プロジェクトを監視するコンポーネントのリソース制限と要求を設定できます。
- Alertmanager (コアプラットフォームのモニタリングおよびユーザー定義プロジェクト用)
- kube-state-metrics
- monitoring-plugin
- node-exporter
- openshift-state-metrics
- Prometheus (コアプラットフォームのモニタリングおよびユーザー定義プロジェクト用)
- Prometheus アダプター
- Prometheus Operator とそのアドミッション Webhook サービス
- Telemeter クライアント
- Thanos Querier
- Thanos Ruler
リソース制限を定義すると、コンテナーのリソース使用量が制限され、コンテナーが CPU およびメモリーリソースの指定された最大値を超過しなくなります。
リソース要求を定義することで、要求されたリソースを満たすのに十分な CPU リソースとメモリーリソースが利用可能なノード上でのみコンテナーをスケジュールできるように指定します。
3.10.2. モニタリングコンポーネントの制限と要求の指定
CPU およびメモリーリソースを設定するには、モニタリングコンポーネントが配置されている namespace の適切な ConfigMap
オブジェクトで、リソース制限と要求の値を指定します。
-
コアプラットフォームのモニタリングに使用する
openshift-monitoring
namespace のcluster-monitoring-config
config map -
ユーザー定義プロジェクトを関しするコンポーネントの
openshift-user-workload-monitoring
namespace 内のuser-workload-monitoring-config
config map
前提条件
コアプラットフォームモニタリングコンポーネントを設定する場合:
-
cluster-admin
クラスターロールを持つユーザーとしてクラスターにアクセスできる。 -
これで、
cluster-monitoring-config
という名前のConfigMap
オブジェクトが作成されました。
-
ユーザー定義のプロジェクトをモニターするコンポーネントを設定する場合:
-
cluster-admin
クラスターロールを持つユーザーとして、またはopenshift-user-workload-monitoring
プロジェクトのuser-workload-monitoring-config-edit
ロールを持つユーザーとして、クラスターにアクセスできる。
-
-
OpenShift CLI (
oc
) がインストールされている。
手順
コアプラットフォームモニタリングコンポーネントを設定するには、
openshift-monitoring
namespace のcluster-monitoring-config
config map オブジェクトを編集します。$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
値を追加して、設定する各コアプラットフォームモニタリングコンポーネントのリソース制限と要求を定義します。
重要制限に設定された値が、常に要求に設定された値よりも大きいことを確認してください。そうでない場合、エラーが発生し、コンテナーは実行されません。
例
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | alertmanagerMain: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 200m memory: 500Mi prometheusK8s: resources: limits: cpu: 500m memory: 3Gi requests: cpu: 200m memory: 500Mi prometheusOperator: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 200m memory: 500Mi k8sPrometheusAdapter: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 200m memory: 500Mi kubeStateMetrics: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 200m memory: 500Mi telemeterClient: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 200m memory: 500Mi openshiftStateMetrics: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 200m memory: 500Mi thanosQuerier: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 200m memory: 500Mi nodeExporter: resources: limits: cpu: 50m memory: 150Mi requests: cpu: 20m memory: 50Mi monitoringPlugin: resources: limits: cpu: 500m memory: 1Gi requests: cpu: 200m memory: 500Mi prometheusOperatorAdmissionWebhook: resources: limits: cpu: 50m memory: 100Mi requests: cpu: 20m memory: 50Mi
- 変更を適用するためにファイルを保存します。新しい設定の影響を受ける Pod は自動的に再デプロイされます。