3.3.3. 为日志存储配置 CPU 和内存请求
每个组件规格都允许调整 CPU 和内存请求。您应该无需手动调整这些值,因为 Elasticsearch Operator 会设置适当的值以满足环境的要求。
注意
在大型集群中,Elasticsearch 代理容器的默认内存限值可能不足,从而导致代理容器被 OOMKilled。如果您遇到这个问题,请提高 Elasticsearch 代理的内存请求和限值。
每个 Elasticsearch 节点都可以在较低的内存设置下运行,但在生产部署中不建议这样做。对于生产环境,为每个 pod 应该分配的数量应不少于默认的 16Gi。最好为每个 pod 分配不超过 64Gi 的尽量多的数量。
先决条件
- 必须安装 Cluster Logging 和 Elasticsearch。
流程
编辑
openshift-logging
项目中的ClusterLogging
自定义资源(CR):$ oc edit ClusterLogging instance
apiVersion: "logging.openshift.io/v1" kind: "ClusterLogging" metadata: name: "instance" .... spec: logStore: type: "elasticsearch" elasticsearch: resources: 1 limits: memory: "16Gi" requests: cpu: "1" memory: "16Gi" proxy: 2 resources: limits: memory: 100Mi requests: memory: 100Mi
如果调整了 Elasticsearch 内存量,您必须同时更改请求值和限制值。
例如:
resources: limits: memory: "32Gi" requests: cpu: "8" memory: "32Gi"
Kubernetes 一般遵循节点配置,不允许 Elasticsearch 使用指定的限值。为 请求(request)
和 限值(limit)
设置相同的值可确保 Elasticsearch 可以使用您想要的内存,假设节点具有可用内存。