整体架构与方案选型

快速落地 EFK 堆栈
apiVersion: v1kind: Servicemetadata:name: elasticsearchnamespace: loggingspec:ports:- port: 9200clusterIP: Noneselector:app: elasticsearchapiVersion: apps/v1kind: Deploymentmetadata:name: elasticsearchnamespace: loggingspec:replicas: 1selector:matchLabels:app: elasticsearchtemplate:metadata:labels:app: elasticsearchspec:containers:- name: elasticsearchimage: docker.elastic.co/elasticsearch/elasticsearch:7.12.1ports:- containerPort: 9200- containerPort: 9300apiVersion: apps/v1kind: DaemonSetmetadata:name: fluentdnamespace: kube-systemspec:selector:matchLabels:app: fluentdtemplate:metadata:labels:app: fluentdspec:serviceAccountName: fluentdcontainers:- name: fluentdimage: fluent/fluentd-kubernetes-daemonset:v1-debian-elasticsearchenv:- name: FLUENT_ELASTICSEARCH_HOSTvalue: "elasticsearch.logging.svc.cluster.local"- name: FLUENT_ELASTICSEARCH_PORTvalue: "9200"apiVersion: v1kind: Servicemetadata:name: kibananamespace: loggingspec:type: NodePortports:- port: 5601targetPort: 5601nodePort: 31000selector:app: kibanaapiVersion: apps/v1kind: Deploymentmetadata:name: kibananamespace: loggingspec:replicas: 1selector:matchLabels:app: kibanatemplate:metadata:labels:app: kibanaspec:containers:- name: kibanaimage: docker.elastic.co/kibana/kibana:7.12.1ports:- containerPort: 5601env:- name: ELASTICSEARCH_HOSTSvalue: "http://elasticsearch.logging.svc.cluster.local:9200"替代方案 Loki + Grafana
日志轮换与节点侧维护
{"log-driver": "json-file","log-opts": {"max-size": "100m","max-file": "3"}}安全与运维最佳实践