×

本主题提供了OpenShift Container Platform中基础设施的推荐性能和可扩展性实践。

基础设施节点是被标记为运行OpenShift Container Platform环境部分的节点。基础设施节点的资源需求取决于集群的年龄、节点和集群中的对象,因为这些因素会导致Prometheus中指标或时间序列的数量增加。以下基础设施节点大小建议基于在**控制平面节点大小**部分中详细说明的集群密度测试中观察到的结果,其中监控堆栈和默认入口控制器已移动到这些节点。

工作节点数量 集群密度或命名空间数量 CPU核心数 内存(GB)

27

500

4

24

120

1000

8

48

252

4000

16

128

501

4000

32

128

一般来说,每个集群推荐三个基础设施节点。

这些大小建议应作为指导。Prometheus是一个高度依赖内存的应用程序;资源使用取决于各种因素,包括节点数、对象数、Prometheus指标抓取间隔、指标或时间序列以及集群的年龄。此外,路由器的资源使用也会受到路由数和传入请求的数量/类型的影響。

这些建议仅适用于在集群创建期间安装了监控、入口和注册表基础设施组件的基础设施节点。

在OpenShift Container Platform 4.17中,与OpenShift Container Platform 3.11和之前的版本相比,现在默认情况下系统预留了半个CPU核心(500毫核心)。这会影响所述的大小建议。

OpenShift Container Platform公开了集群监控操作符(CMO)收集并存储在基于Prometheus的监控堆栈中的指标。作为管理员,您可以通过导航到**观察**→**仪表盘**在OpenShift Container Platform Web控制台中查看系统资源、容器和组件指标的仪表盘。

Red Hat对不同的规模进行了各种测试。

  • 以下Prometheus存储需求并非强制性规定,应作为参考。根据工作负载活动和资源密度(包括Pod数量、容器数量、路由数量或其他公开Prometheus收集的指标的资源),您的集群中可能会观察到更高的资源消耗。

  • 您可以配置基于大小的数据保留策略以满足您的存储需求。

表1. 基于集群中节点/Pod数量的Prometheus数据库存储需求
节点数量 Pod数量(每个Pod 2个容器) Prometheus每日存储增长量 Prometheus每15天存储增长量 网络 (每个tsdb块)

50

1800

6.3 GB

94 GB

16 MB

100

3600

13 GB

195 GB

26 MB

150

5400

19 GB

283 GB

36 MB

200

7200

25 GB

375 GB

46 MB

为了确保存储需求不超过计算值,已额外添加了大约 20% 的预期大小作为冗余。

以上计算基于默认的 OpenShift Container Platform 集群监控操作符。

CPU 利用率的影响较小。比例大约是每 50 个节点和 1800 个 Pod 中使用 1 个核心(总共 40 个核心)。

OpenShift Container Platform 建议

  • 至少使用两个基础设施 (infra) 节点。

  • 至少使用三个带有非易失性内存 (SSD 或 NVMe) 驱动器的 **openshift-container-storage** 节点。

您可以增加集群监控堆栈中 Prometheus 组件的存储容量。

步骤

要增加 Prometheus 的存储容量

  1. 创建一个 YAML 配置文件,例如 cluster-monitoring-config.yaml

    apiVersion: v1
    kind: ConfigMap
    data:
      config.yaml: |
        prometheusK8s:
          retention: {{PROMETHEUS_RETENTION_PERIOD}} (1)
          nodeSelector:
            node-role.kubernetes.io/infra: ""
          volumeClaimTemplate:
            spec:
              storageClassName: {{STORAGE_CLASS}} (2)
              resources:
                requests:
                  storage: {{PROMETHEUS_STORAGE_SIZE}} (3)
        alertmanagerMain:
          nodeSelector:
            node-role.kubernetes.io/infra: ""
          volumeClaimTemplate:
            spec:
              storageClassName: {{STORAGE_CLASS}} (2)
              resources:
                requests:
                  storage: {{ALERTMANAGER_STORAGE_SIZE}} (4)
    metadata:
      name: cluster-monitoring-config
      namespace: openshift-monitoring
    1 Prometheus 保留期默认值为 PROMETHEUS_RETENTION_PERIOD=15d。时间单位使用以下后缀之一:s、m、h、d。
    2 集群的存储类。
    3 典型值为 PROMETHEUS_STORAGE_SIZE=2000Gi。存储值可以是普通整数或使用以下后缀之一的定点整数:E、P、T、G、M、K。您也可以使用以下 2 的幂等价值:Ei、Pi、Ti、Gi、Mi、Ki。
    4 典型值为 ALERTMANAGER_STORAGE_SIZE=20Gi。存储值可以是普通整数或使用以下后缀之一的定点整数:E、P、T、G、M、K。您也可以使用以下 2 的幂等价值:Ei、Pi、Ti、Gi、Mi、Ki。
  2. 添加保留期、存储类和存储大小的值。

  3. 保存文件。

  4. 运行以下命令应用更改:

    $ oc create -f cluster-monitoring-config.yaml