搜索

第 3 章 推荐的主机实践

download PDF

3.1. OpenShift Container Platform Master 主机的推荐做法

除了 pod 流量外,OpenShift Container Platform 基础架构中最常用的数据路径也介于 OpenShift Container Platform master 主机和 etcd 之间。OpenShift Container Platform API 服务器(master 二进制的一部分)在节点状态、网络配置、secret 等方面咨询 etcd。

通过以下方法优化此流量路径:

  • 在 master 主机上运行 etcd。默认情况下,etcd 在所有 master 主机上的静态 pod 中运行。
  • 确保 master 主机之间有一个不协调、低延迟 LAN 通信链接。

OpenShift Container Platform master 会积极缓存资源的反序列化版本,以简化 CPU 负载。但是,如果较小的 pod 集群小于 1000 个 pod,这个缓存可能会浪费大量内存用于微小的 CPU 负载。默认缓存大小为 50,000 个条目,它根据资源的大小,可以将 cupy 1 增加到 2 GB 内存。使用 /etc/origin/master/master-config.yaml 中的以下设置可以减少这个缓存大小:

kubernetesMasterConfig:
  apiServerArguments:
    deserialization-cache-size:
    - "1000"

发送到 API 服务器的客户端请求或 API 调用数量由每秒的 Queries(QPS)值和 API 服务器处理的并发请求数决定。客户端可能会过量 QPS 速率发出的请求数量取决于突发值,这对具有极限的应用程序来说非常有用,并可执行不监管的请求数量。当 API 服务器处理大量并发请求时,对请求的响应时间,特别是大型和/或高密度的集群。建议您监控 Prometheus 中的 apiserver_request_count 速率指标,并相应地调整 maxRequestsInFlightQPS

更改默认值时,需要有一个很好的平衡,因为 API 服务器的 CPU 和内存消耗,etcd IOPS 会在并行处理更多请求时增加。另请注意,大量非watch 请求可能会在固定 60 秒超时后取消 API 服务器过载,客户端开始重试。

API 服务器系统中提供了足够的 CPU 和内存资源,API 服务器请求过载问题可安全地缓解这个问题。通过考虑以上提到的因素并浏览了 maxRequestsInFlight、API qps 和 burst 值 *_/etc/origin/master/master-config.yaml

masterClients:
  openshiftLoopbackClientConnectionOverrides:
    burst: 600
    qps: 300
servingInfo:
  maxRequestsInFlight: 500
注意

以上 maxRequestsInFlight、qps 和 burst 值是 OpenShift Container Platform 的默认值。如果请求的用时小于秒,则 qps 可以大于 maxRequestsInFlight 值。如果 'maxRequestsInFlight' 设为零,则服务器可以处理的并发请求数没有限制。

Red Hat logoGithubRedditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

© 2024 Red Hat, Inc.