百科.dev
全部条目AI 编程趋势榜开源项目技术资讯提交条目
登录
< 返回工具列表
E

es-operator

> 数据库
开源

Kubernetes Elasticsearch 运行程序

352 stars0 点赞0 次浏览
访问官网GitHub

工具介绍

Kubernetes Elasticsearch 运行程序

Elasticsearch Operator

This is an operator for running Elasticsearch in Kubernetes with focus on operational aspects, like safe draining and offering auto-scaling capabilities for Elasticsearch data nodes, rather than just abstracting manifest definitions.

License

Starting with v0.1.3 the ES-Operator is dual-licensed under MIT and Apache-2.0 license. You can choose between one of them if you use this work.

SPDX-License-Identifier: MIT OR Apache-2.0

Compatibility

The ES-Operator has been tested with Elasticsearch 8.x and 9.x. Previously, we have also tested ES-Operator with Elasticsearch 6.x and 7.x, and while they still may be working, please consider support for these versions to be dropped.

How it works

The operator works by managing custom resources called ElasticsearchDataSets (EDS). They are basically a thin wrapper around StatefulSets. One EDS represents a common group of Elasticsearch data nodes. When applying an EDS manifest the operator will create and manage a corresponding StatefulSet.

Do not operate manually on the StatefulSet. The operator is supposed to own this resource on your behalf.

Key features

  • It can scale in two dimensions, shards per node and number of replicas for the indices on that dataset.
  • It works within scaling dimensions known to and long-term tested by teams in Zalando.
  • Target CPU ratio is a safe and well-known metric to scale on in order to avoid latency spikes caused by Garbage Collection.
  • In case of emergency, manual scaling is possible by disabling the auto-scaling feature.

Getting Started

For a quick tutorial how to deploy the ES Operator look at our Getting Started Guide.

Custom Resource

Full Example

…

Custom resource properties

Key Description Type
spec.replicas Initial size of the StatefulSet. If auto-scaling is disabled, this is your desired cluster size. Int
spec.excludeSystemIndices Enable or disable inclusion of system indices like '.kibana' when calculating shard-per-node ratio and scaling index replica counts. Those are usually managed by Elasticsearch internally. Default is false for backwards compatibility Boolean
spec.skipDraining Allows the ES Operator to terminate an Elasticsearch node without re-allocating its data. This is useful for persistent disk setups, like EBS volumes. Beware that the ES Operator does not verify that you have more than one copy of your indices and therefore wouldn't protect you from potential data loss. (default=false) Boolean
spec.scaling.enabled Enable or disable auto-scaling. May be necessary to enforce manual scaling. Boolean
spec.scaling.minReplicas Minimum Pod replicas. Lower bound (inclusive) when scaling down. Int
spec.scaling.maxReplicas Maximum Pod replicas. Upper bound (inclusive) when scaling up. Int
spec.scaling.minIndexReplicas Minimum index replicas. Lower bound (inclusive) when reducing index copies. (reminder: total copies is replicas+1 in Elasticsearch) Int
spec.scaling.maxIndexReplicas Maximum index replicas. Upper bound (inclusive) when increasing index copies. Int
spec.scaling.minShardsPerNode Minimum shard per node ratio. When reached, scaling up also requires adding more index replicas. Int
spec.scaling.maxShardsPerNode Maximum shard per node ratio. Boundary for scaling down. Int
spec.scaling.scaleUpCPUBoundary (Median) CPU consumption/request ratio to consistently exceed in order to trigger scale up. Int
spec.scaling.scaleUpThresholdDurationSeconds Duration in seconds required to meet the scale-up criteria before scaling. Int
spec.scaling.scaleUpCooldownSeconds Minimum duration in seconds between two scale up operations. Int
spec.scaling.scaleDownCPUBoundary (Median) CPU consumption/request ratio to consistently fall below in order to trigger scale down. Int
spec.scaling.scaleDownThresholdDurationSeconds Duration in seconds required to meet the scale-down criteria before scaling. Int
spec.scaling.scaleDownCooldownSeconds Minimum duration in seconds between two scale-down operations. Int
spec.scaling.diskUsagePercentScaledownWatermark If disk usage on one of the nodes exceeds this threshold, scaling down will be prevented. Float
spec.experimental.draining.maxRetries MaxRetries specifies the maximum number of attempts to drain a node. Int
spec.experimental.draining.maximumWaitTimeDurationSeconds MaximumWaitTimeDurationSeconds specifies the maximum wait time in seconds between retry attempts after a failed node drain. Int
spec.experimental.draining.minimumWaitTimeDurationSeconds MMinimumWaitTimeDurationSeconds specifies the minimum wait time in seconds between retry attempts after a failed node drain. Int
status.lastScaleUpStarted Timestamp of start of last scale-up activity Timestamp
status.lastScaleUpEnded Timestamp of end of last scale-up activity Timestamp
status.lastScaleDownStarted Timestamp of start of last scale-down activity Timestamp
status.lastScaleDownEnded Timestamp of end of last scale-down activity

Issues· 0 开放

查看全部 Issues在 GitHub 打开

暂无开放 Issues,或尚未同步最近议题。

> 标签

Goelasticsearchelasticsearch-operatorkuberneteskubernetes-operator

暂无评论,来聊聊你的看法吧

> 工具信息

发布日期2026年8月1日
最后更新2026年9月17日
分类数据库
定价开源

> 相关工具

P
PostgreSQL
功能强大的开源关系型数据库
R
Redis
内存数据结构存储,常用作缓存与队列
M
MySQL
广泛使用的开源关系型数据库