ECK简介
https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-quickstart.html
Elastic Cloud on Kubernetes (ECK) 是一个官方提供的用于在 Kubernetes 集群中简化部署、管理和操作 Elastic Stack(包括 Elasticsearch 和 Kibana)的扩展。
ECK 是一个 Kubernetes Operator,它管理和自动化 Elastic Stack 的生命周期。通过使用 ECK,可以在 Kubernetes 环境中快速实现以下功能:
- 部署和管理 Elasticsearch 和 Kibana 实例,包括创建、删除、扩展和升级。
- 配置和调整 Elastic Stack 组件以满足特定需求。
- 自动处理故障检测、恢复和备份。
- 保护 Elasticsearch 集群,通过安全配置、证书管理和安全通信来确保数据安全。
- 监控 Elastic Stack 的性能和资源使用,从而优化集群性能。
支持的版本
- Kubernetes 1.26-1.30(ECK2.14.0,低版本可以支持低版本的K8S,请自行到官网查看。)
- Elasticsearch, Kibana, APM Server: 6.8+, 7.1+, 8+
- Beats: 7.0+, 8+
- Logstash: 8.7+
部署 operator
kubectl create -f https://download.elastic.co/downloads/eck/2.14.0/crds.yaml
kubectl apply -f https://download.elastic.co/downloads/eck/2.14.0/operator.yaml
部署 ES
部署版本:
- 7.17.24
部署模式:
- 3master节点,master,data共用节点。
- HTTP模式
- basic认证
- hostNetwork
- local-path
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: casslogs
namespace: elastic-system
spec:
version: 7.17.24
http:
tls:
selfSignedCertificate:
disabled: true
nodeSets:
- name: data
count: 3
# 禁用认证需要增加以下配置
#config:
# xpack.security.authc:
# anonymous:
# username: anonymous
# roles: superuser
# authz_exception: false
podTemplate:
spec:
initContainers:
- name: sysctl
securityContext:
privileged: true
runAsUser: 0
command: ['sh', '-c', 'sysctl -w vm.max_map_count=262144']
containers:
- name: elasticsearch
env:
- name: ES_JAVA_OPTS
value: "-Xms16g -Xmx16g"
- name: ES_SETTING_CLUSTER_MAX__SHARDS__PER__NODE
value: '90000'
- name: ES_SETTING_HTTP_MAX__CONTENT__LENGTH
value: 300MB
- name: ES_SETTING_HTTP_MAX__INITIAL__LINE__LENGTH
value: 20KB
- name: ES_SETTING_HTTP_MAX__HEADER__SIZE
value: 32KB
- name: ES_