来自AI助手的总结
ECK通过Kubernetes声明式管理Elastic Stack,简化日志系统部署运维。

一、云原生日志框架ECK介绍
官网链接:Elastic Cloud on Kubernetes | Elastic Docs
Elastic Cloud on Kubernetes(CCK)是Elastic官方提供的Kubernetes Operator,用于简化在Kubernetes环境中部署、管理和扩展Elastic Stack的全方位组件。
ECK基于Kubernetes的Custom Resource Definitions(CRDs),可以让用户以声明式的方式定义和管理Elastic Stack组件,比如创建一个Elasticsearch的集群只需要像创建一个Deployment声明一个Yaml,然后创建即可。
ECK核心资源:
-
Elasticsearch:用于管理和部署Elasticsearch集群
-
Elasticsearch:用于管理和部署Elasticsearch集群
-
Kibana:用于管理和部署Kibana服务
-
Beat:用于管理和部署Filebeat服务
-
Logstash:用户管理和部署logstash服务
1.1 ECK核心资源Elasticsearch配置详解
ECK核心资源Elasticsearch配置示例:
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: es-cluster
spec:
# ES版本
version: 8.14.3
image: registry.cn-beijing.aliyuncs.com/dotbalo/elasticsearch:8.14.3
nodeSets:
#节点组名称,全局唯一
- name: default
#当前节点组的节点数量
count: 3
config:
# node.roles: "master"
# 节点自定义配置,禁用内存映射
node.store.allow_mmap: false
# no persistent(pod相关配置)
podTemplate:
spec:
volumes:
- name: elasticsearch-data
emptyDir: {}
1.2 ECK核心资源Kibana配置详解
ECK核心资源Kibana配置示例:
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: kibana
spec:
version: 8.14.3
image: registry.cn-beijing.aliyuncs.com/dotbalo/kibana:8.14.3
count: 1
# ES集群配置,ECK部署的ES集群名字
elasticsearchRef:
name: es-cluster
http:
service:
spec:
# 默认是ClusterIP
type: NodePort
tls:
selfSignedCertificate:
disabled: true
1.3 ECK核心资源Logstash配置详解
ECK核心资源Logstash配置示例:
apiVersion: logstash.k8s.elastic.co/v1alpha1
kind: Logstash
metadata:
name: logstash # Logstash实例名称
spec:
version: 8.14.3 # 版本与ES/Kibana保持一致
image: registry.cn-beijing.aliyuncs.com/dotbalo/logstash:8.14.3 # 阿里云定制镜像
count: 1 # 实例数量(生产建议≥3)
elasticsearchRef:
name: es-cluster # 关联已创建的ES集群(必填)
pipelines:
- pipeline.id: main
# 内联配置(生产建议外部挂载configmap)
config: |
input {
beats {
port => 5044
}
}
filter {
grok {
match => { "message" => "%{COMBINEDAPACHELOG}" }
}
}
output {
elasticsearch {
hosts => ["es-cluster-http:9200"]
index => "logs-%{+YYYY.MM.dd}"
}
}
# Pod级配置(资源/存储/安全)
podTemplate:
spec:
volumes:
- name: logstash-data
emptyDir: {} # 临时存储(开发测试用)
containers:
- name: logstash
resources:
requests:
cpu: 500m # 最小CPU(根据日志量调整)
memory: 1Gi # 最小内存
limits:
memory: 2Gi # 内存硬限制
# env: 可添加环境变量(如LS_JAVA_OPTS="-Xmx1g -Xms1g")
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END






暂无评论内容