公司内网k8s部署elk
时间: 2023-09-21 10:05:01 浏览: 180
您好!部署 ELK(Elasticsearch, Logstash, Kibana)在 Kubernetes 上的方式有多种,以下是一种常见的方法:
1. 创建命名空间:
```
kubectl create namespace elk
```
2. 部署 Elasticsearch:
首先,创建一个 Elasticsearch 的配置文件 `elasticsearch.yaml`,示例如下:
```yaml
apiVersion: elasticsearch.k8s.elastic.co/v1
kind: Elasticsearch
metadata:
name: my-elasticsearch
spec:
version: 7.13.2
nodeSets:
- name: default
count: 1
config:
node.store.allow_mmap: false
```
然后,使用该配置文件进行部署:
```
kubectl apply -f elasticsearch.yaml -n elk
```
3. 部署 Logstash:
首先,创建一个 Logstash 的配置文件 `logstash.yaml`,示例如下:
```yaml
apiVersion: v1
kind: ConfigMap
metadata:
name: logstash-config
namespace: elk
data:
logstash.conf: |
input {
# 配置输入来源,如日志文件、Kafka、Redis等
}
filter {
# 可选的过滤器,对输入进行处理
}
output {
elasticsearch {
hosts => ["http://elasticsearch-master:9200"]
index => "logs-%{+YYYY.MM.dd}"
}
}
---
apiVersion: apps/v1
kind: DaemonSet
metadata:
name: logstash
namespace: elk
labels:
app: logstash
spec:
selector:
matchLabels:
app: logstash
template:
metadata:
labels:
app: logstash
spec:
containers:
- name: logstash
image: docker.elastic.co/logstash/logstash:7.13.2
volumeMounts:
- name: config
mountPath: /usr/share/logstash/pipeline
ports:
- containerPort: 5044
resources:
limits:
memory: 1Gi
cpu: 500m
requests:
memory: 512Mi
cpu: 100m
volumes:
- name: config
configMap:
name: logstash-config
```
然后,使用该配置文件进行部署:
```
kubectl apply -f logstash.yaml -n elk
```
4. 部署 Kibana:
首先,创建一个 Kibana 的配置文件 `kibana.yaml`,示例如下:
```yaml
apiVersion: kibana.k8s.elastic.co/v1
kind: Kibana
metadata:
name: my-kibana
spec:
version: 7.13.2
count: 1
elasticsearchRef:
name: my-elasticsearch
```
然后,使用该配置文件进行部署:
```
kubectl apply -f kibana.yaml -n elk
```
以上是一种简单的部署 ELK 在 Kubernetes 的方法,您可以根据实际需求进行适配和调整。希望对您有帮助!如有需要进一步了解,请告诉我。
阅读全文