2.8.2. 配置本地持久性卷声明
要让监控组件使用持久性卷 (PV),您必须配置持久性卷声明 (PVC)。
先决条件
如果要配置 OpenShift Container Platform 核心监控组件:
-
您可以使用具有
cluster-admin
角色的用户访问集群。 -
您已创建
cluster-monitoring-config
ConfigMap
对象。
-
您可以使用具有
如果您要配置用于监控用户定义的项目的组件:
-
您可以使用具有
cluster-admin
角色的用户访问集群,也可以使用在openshift-user-workload-monitoring
项目中具有user-workload-monitoring-config-edit
角色的用户访问集群。 -
您已创建了
user-workload-monitoring-config
ConfigMap
对象。
-
您可以使用具有
-
已安装 OpenShift CLI(
oc
)。
流程
编辑
ConfigMap
对象:为监控 OpenShift Container Platform 核心项目的组件配置 PVC:
编辑
openshift-monitoring
项目中的cluster-monitoring-config
ConfigMap
对象:$ oc -n openshift-monitoring edit configmap cluster-monitoring-config
将组件的 PVC 配置添加到
data/config.yaml
下:apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | <component>: volumeClaimTemplate: spec: storageClassName: <storage_class> resources: requests: storage: <amount_of_storage>
如需有关如何指定
volumeClaimTemplate
的信息,请参阅 Kubernetes 文档中与 PersistentVolumeClaim 相关的内容。以下示例配置了一个 PVC 来声明用于监控 OpenShift Container Platform 核心组件的 Prometheus 实例的本地持久性存储:
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | prometheusK8s: volumeClaimTemplate: spec: storageClassName: local-storage resources: requests: storage: 40Gi
在上例中,由 Local Storage Operator 创建的存储类称为
local-storage
。以下示例配置了一个 PVC 来声明用于 Alertmanager 的本地持久性存储:
apiVersion: v1 kind: ConfigMap metadata: name: cluster-monitoring-config namespace: openshift-monitoring data: config.yaml: | alertmanagerMain: volumeClaimTemplate: spec: storageClassName: local-storage resources: requests: storage: 10Gi
要为监控用户定义的项目的组件配置 PVC:
在
openshift-user-workload-monitoring
项目中编辑user-workload-monitoring-config
ConfigMap
对象:$ oc -n openshift-user-workload-monitoring edit configmap user-workload-monitoring-config
将组件的 PVC 配置添加到
data/config.yaml
下:apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | <component>: volumeClaimTemplate: spec: storageClassName: <storage_class> resources: requests: storage: <amount_of_storage>
如需有关如何指定
volumeClaimTemplate
的信息,请参阅 Kubernetes 文档中与 PersistentVolumeClaim 相关的内容。以下示例配置了一个 PVC 来为监控用户定义的项目的 Prometheus 实例声明本地持久性存储:
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | prometheus: volumeClaimTemplate: spec: storageClassName: local-storage resources: requests: storage: 40Gi
在上例中,由 Local Storage Operator 创建的存储类称为
local-storage
。以下示例配置了一个 PVC 来声明用于 Thanos Ruler 的本地持久性存储:
apiVersion: v1 kind: ConfigMap metadata: name: user-workload-monitoring-config namespace: openshift-user-workload-monitoring data: config.yaml: | thanosRuler: volumeClaimTemplate: spec: storageClassName: local-storage resources: requests: storage: 10Gi
注意thanosRuler
组件的存储要求取决于要评估的规则数量以及每个规则生成的样本数量。
保存文件以使改变生效。受新配置影响的 Pod 会自动重启,并且应用新的存储配置。
注意除非集群管理员为用户定义的项目启用了监控,否则应用到
user-workload-monitoring-config
ConfigMap
的配置不会被激活。警告一旦将更改保存到监控配置映射,可能会重新部署相关项目中的 Pod 和其他资源。该项目中正在运行的监控进程也可能被重启。