3.6. 管理监控组件的 CPU 和内存资源


您可以通过为这些组件的资源限值和请求指定值来确保运行监控组件的容器具有足够的 CPU 和内存资源。

您可以为 openshift-monitoring 命名空间中的核心平台监控组件配置这些限制和请求,以及监控 openshift-user-workload-monitoring 命名空间中的用户定义的项目的组件。

3.6.1. 关于为监控组件指定限制和请求

您可以为核心平台监控组件以及监控用户定义的项目的组件配置资源限值和请求设置,包括以下组件:

  • Alertmanager (用于核心平台监控和用户定义的项目的)
  • kube-state-metrics
  • monitoring-plugin
  • node-exporter
  • openshift-state-metrics
  • Prometheus (用于核心平台监控和用户定义的项目的)
  • 指标服务器
  • Prometheus Operator 及其准入 Webhook 服务
  • Telemeter Client
  • Thanos querier
  • Thanos Ruler

通过定义资源限值,您可以限制容器的资源使用情况,这会阻止容器超过 CPU 和内存资源指定的最大值。

通过定义资源请求,您可以指定容器只能调度到具有足够 CPU 和内存资源的节点,以匹配请求的资源。

3.6.2. 为监控组件指定限制和请求

要配置 CPU 和内存资源,在监控组件所在的命名空间的适当 ConfigMap 对象中为资源限值和请求指定值:

  • 用于核心平台监控的 openshift-monitoring 命名空间中的 cluster-monitoring-config 配置映射
  • openshift-user-workload-monitoring 命名空间中的 user-workload-monitoring-config 配置映射用于监控用户定义的项目的组件

先决条件

  • 如果要配置核心平台监控组件

    • 您可以使用具有 cluster-admin 集群角色的用户身份访问集群。
    • 您已创建了名为 cluster-monitoring-configConfigMap 对象。
  • 如果您要配置用于监控用户定义的项目的组件

    • 您可以使用具有 cluster-admin 集群角色的用户访问集群,也可以使用在 openshift-user-workload-monitoring 项目中具有 user-workload-monitoring-config-edit 角色的用户访问集群。
  • 已安装 OpenShift CLI(oc)。

流程

  1. 要配置核心平台监控组件,请编辑 openshift-monitoring 命名空间中的 cluster-monitoring-config 配置映射对象:

    $ oc -n openshift-monitoring edit configmap cluster-monitoring-config
  2. 添加值,以定义您要配置的每个核心平台监控组件的资源限值和请求。

    重要

    确保为限制设置的值始终高于为请求设置的值。否则,会出现错误,容器将不会运行。

    Example

    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
        metricsServer:
          resources:
            requests:
              cpu: 10m
              memory: 50Mi
            limits:
              cpu: 50m
              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

  3. 保存文件以使改变生效。受新配置影响的 Pod 会自动重新部署。
Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

© 2024 Red Hat, Inc.