以下是 Elasticsearch 配置文件(elasticsearch.yml
) 中各参数的详细解释:
1. 集群相关参数
cluster.name
- 说明: 集群的名称,用于标识该 Elasticsearch 集群。
- 当前值:
es-795e6273
- 用途: 同一集群的所有节点必须具有相同的
cluster.name
。
cluster.routing.allocation.awareness.attributes
- 说明: 用于分片分配的感知属性,通常用来根据物理或逻辑条件(如节点名称或区域)分布分片。
- 当前值:
k8s_node_name
- 用途:
- 分片会根据
k8s_node_name
这一属性均匀分布。 - 防止所有分片被分配到同一个节点或区域。
- 分片会根据
2. 节点发现和网络相关参数
discovery.seed_providers
- 说明: 节点发现的种子提供者,用于指定节点如何发现其他节点。
- 当前值:
file
- 用途: 使用
file
模式读取静态节点配置。
http.publish_host
- 说明: 用于其他节点与客户端访问该节点的 HTTP 公开地址。
- 当前值:
${POD_NAME}.${HEADLESS_SERVICE_NAME}.${NAMESPACE}.svc
- 用途: 在 Kubernetes 环境中动态配置服务访问地址。
network.host
- 说明: 指定网络接口绑定的地址。
- 当前值:
"0"
- 用途: 绑定到所有网络接口地址。
network.publish_host
- 说明: 节点之间通信的网络地址。
- 当前值:
${POD_IP
- 用途: 动态绑定为 Kubernetes 中的 Pod IP。
3. 节点角色与属性
node.name
- 说明: 节点名称,用于唯一标识 Elasticsearch 节点。
- 当前值:
${POD_NAME
- 用途: Kubernetes 中根据 Pod 名称动态设置节点名称。
node.roles
- 说明: 指定节点的角色。
- 当前值:
data
: 处理数据存储。master
: 参与集群管理。ingest
: 执行数据预处理(如管道)。
https://weread.qq.com/web/reader/2a532390813ab8882g016839kaab325601eaab3238922e53
node.attr.k8s_node_name
- 说明: 自定义属性
k8s_node_name
。 - 当前值:
${NODE_NAME
- 用途: 用于分片分配感知。
4. 数据路径和日志路径
path.data
- 说明: 数据存储路径。
- 当前值:
/usr/share/elasticsearch/data
- 用途: 保存索引、分片数据。
path.logs
- 说明: 日志存储路径。
- 当前值:
/usr/share/elasticsearch/logs
- 用途: 保存日志文件。
path.repo
- 说明: 快照仓库路径。
- 当前值:
/mnt/backup/es-795e6273
/mnt/backup/es-c6a76f44
- 用途: 定义快照备份的存储位置。
5. X-Pack 安全和认证
xpack.license.upload.types
- 说明: 支持的许可证类型。
- 当前值:
trial
enterprise
- 用途: 限制许可证上传类型。
xpack.security.authc.realms
- 说明: 配置认证方式。
- 当前值:
file
: 从文件中加载用户信息。native
: 从内部存储中加载用户信息。
- 用途: 配置多种认证方式和优先级。
xpack.security.authc.reserved_realm.enabled
- 说明: 是否启用保留的认证域(默认用于超级用户)。
- 当前值:
"false"
- 用途: 禁用内置的保留认证域。
xpack.security.enabled
- 说明: 是否启用 X-Pack 安全功能。
- 当前值:
"true"
- 用途: 启用认证和加密功能。
6. HTTP 和传输层加密
xpack.security.http.ssl
- 说明: 配置 HTTP 层的 SSL/TLS 加密。
- 当前值:
certificate
: 证书路径。certificate_authorities
: 证书颁发机构路径。enabled
:false
(当前未启用)。key
: 私钥路径。
xpack.security.transport.ssl
- 说明: 配置节点间传输的 SSL/TLS 加密。
- 当前值:
certificate
: 节点传输证书路径。certificate_authorities
: CA 证书路径。key
: 私钥路径。enabled
:"true"
(启用加密)。verification_mode
:certificate
(严格验证)。
总结
这份配置文件是为 Kubernetes 环境 优化的 Elasticsearch 配置,重点在于:
- 动态网络配置(通过 Pod 环境变量)。
- 分片分配策略优化 (基于
k8s_node_name
属性)。 - 安全功能启用(包括认证与加密)。
- 支持快照仓库和多种节点角色。
如果需要进一步调整或优化,可以根据实际的资源和业务需求进行微调。