38.3.2. 集群指标的容量规划
运行 openshift_metrics
Ansible 角色后,oc get pod
的输出应类似:
# oc get pods -n openshift-infra NAME READY STATUS RESTARTS AGE hawkular-cassandra-1-l5y4g 1/1 Running 0 17h hawkular-metrics-1t9so 1/1 Running 0 17h heapster-febru 1/1 Running 0 17h
OpenShift Container Platform 指标使用 Cassandra 数据库存储,该数据库使用 openshift_metrics_cassandra_limits_memory 设置进行部署:2g
;此值可以根据 Cassandra 起始脚本确定的可用内存进一步调整。这个值应该涵盖大多数 OpenShift Container Platform 指标安装,但在使用环境变量,您可以在部署集群指标前修改 MAX_HEAP_SIZE
和堆新生成大小 HEAP_NEWSIZE
。
默认情况下,指标数据存储 7 天。在 7 天后,Cassandra 开始清除最旧的指标数据。已删除 pod 和项目的指标数据不会自动清除,它只在数据超过七天后删除。
例 38.1. 由 10 个节点和 1000 个 Pod 累计的数据
在包括 10 个节点和 1000 个 pod 的测试场景中,持续 24 小时内指标数据的 2.5 GB 周期。因此,在这种情况下,指标数据的容量规划公式为:
(((2.5 × 109) ÷ 1000) ÷ 24) ÷ 106 = ~0.125 MB/hour per pod.
例 38.2. 120 节点和 10000 个 Pod 收集的数据
在包括 120 个节点和 10000 个 pod 的测试场景中,持续 24 小时内的数据累积了 25 GB 指标数据。因此,在这种情况下,指标数据的容量规划公式为:
((11.410 的值 109)IFL 1000 IFL 24)leveloffset 106 = 0.475 MB/hour
1000 个 pod | 10000 个 pod | |
---|---|---|
Cassandra 存储数据在 24 小时内累计超过 24 小时(默认指标参数) | 2.5 GB | 11.4 GB |
如果 openshift_metrics_duration
的默认值(7 天),openshift_metrics_resolution
的默认值(30 秒)被保留,对于 Cassandra pod 的每周的存储要求为:
1000 个 pod | 10000 个 pod | |
---|---|---|
Cassandra 存储数据持续 7 天(默认指标参数) | 20 GB | 90 GB |
在上表中,在预期的存储空间中添加了一个额外的 10%,作为意外监控 pod 的使用情况。
如果 Cassandra 持久的卷超出足够空间,则会发生数据丢失。
要使集群指标使用持久性存储,请确保持久性卷有 ReadWriteOnce 访问模式。如果此模式不活动,则持久卷声明无法找到持久卷,并且 Cassandra 无法启动。
要将持久性存储与指标组件搭配使用,请确保持久性卷有足够大小的持久性卷。OpenShift Ansible openshift_metrics
角色处理 持久性卷声明 的创建。
OpenShift Container Platform 指标还支持动态置备的持久性卷。要将此功能用于 OpenShift Container Platform 指标,需要将 openshift_metrics_cassandra_storage_type
的值设置为 动态
。您可以使用 EBS、GCE 和 Cinder 存储后端 来动态置备持久性卷。
有关配置性能和扩展集群指标 pod 的详情,请参考扩展集群指标主题。
节点数量 | Pod 数 | Cassandra 存储增长速度 | Cassandra 每天增长存储 | 每周增长的 Cassandra 存储 |
---|---|---|---|---|
210 | 10500 | 每小时 500 MB | 15 GB | 75 GB |
990 | 11000 | 每小时 1 GB | 30 GB | 210 GB |
在上个计算中,预计大小大约有 20% 增加了开销,以确保存储要求不会超过计算的值。
如果 METRICS_DURATION
和 METRICS_RESOLUTION
值保持在默认值(7
天和 15
秒),则安全地规划星期的 Cassandra 存储要求。
由于 OpenShift Container Platform 指标使用 Cassandra 数据库作为指标数据的数据存储,如果在指标 设置过程中设置了 USE_THREEISTANT_STORAGE=true
,PV
将位于网络存储中,而 NFS 作为默认数据。不过,不建议将网络存储与 Cassandra 搭配使用,如 Cassandra 文档中所述。
已知问题和限制
测试发现,堆
ster指标组件能够处理最多 25,000 个 Pod。如果 pod 数量超过该数量,Heapster 开始在指标处理后落入,从而不再出现指标图形的可能性。工作正在持续增加 Heapster 可以收集指标的 pod 数量,以及另一 metrics-gathering 解决方案的上游开发。