要在Kubernetes上部署EFK(Elasticsearch, Fluentd, Kibana)日志堆栈,可以按照以下步骤进行操作:
安装Elasticsearch:
- 创建一个命名空间:
kubectl create namespace efk - 添加Helm Chart仓库:
helm repo add elastic https://helm.elastic.co - 更新Chart仓库:
helm repo update - 安装Elasticsearch Helm Chart:
helm install elasticsearch elastic/elasticsearch \ --namespace efk \ --set replicas=1 \ --set esJavaOpts="-Xmx512m -Xms512m" \ --set resources.requests.cpu="100m" \ --set resources.requests.memory="512Mi"
- 创建一个命名空间:
安装Fluentd:
- 在命名空间efk中创建ServiceAccount、ClusterRole和ClusterRoleBinding:
kubectl create serviceaccount fluentd-es-namespace --namespace efk kubectl apply -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-service-account.yaml kubectl apply -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-role.yaml kubectl apply -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/fluent-bit-role-binding.yaml - 创建ConfigMap来配置Fluentd的输入、过滤和输出插件。你可以自定义该ConfigMap以适应你的需求。
- 创建DaemonSet以在集群中的每个节点上运行Fluentd容器:
kubectl apply -f https://raw.githubusercontent.com/fluent/fluent-bit-kubernetes-logging/master/output/elasticsearch/fluent-bit-ds.yaml
- 在命名空间efk中创建ServiceAccount、ClusterRole和ClusterRoleBinding:
安装Kibana:
- 安装Kibana Helm Chart:
helm install kibana elastic/kibana \ --namespace efk \ --set replicas=1 \ --set resources.requests.cpu="100m" \ --set resources.requests.memory="512Mi"
- 安装Kibana Helm Chart:
等待所有组件部署完成后,你可以使用
kubectl port-forward命令将Kibana服务暴露到本地端口,并通过浏览器访问Kibana的界面来查看和搜索日志。
这是一个大致的步骤指引,请根据实际情况和需求进行适配和调整。详细的操作步骤和配置方式可以参考Elastic官方文档和Helm Chart仓库。
内容由零声教学AI助手提供,问题来源于学员提问




