CentOS7系统在kubernete 12015 上部署 ELK采集 pod 日志采用yaml方式kibana以 nodeport 暴露端口。
以下是在 CentOS7 系统上部署 ELK,采集 pod 日志,采用 yaml 方式,Kibana 以 NodePort 暴露端口的步骤:
- 安装 Docker 和 Kubernetes
在 CentOS7 系统上安装 Docker 和 Kubernetes,具体步骤可以参考官方文档。
- 安装 Elasticsearch
部署 Elasticsearch,可以采用 yaml 文件方式,具体内容如下:
apiVersion: apps/v1
kind: StatefulSet
metadata:
name: elasticsearch
labels:
app: elasticsearch
spec:
serviceName: elasticsearch
replicas: 1
selector:
matchLabels:
app: elasticsearch
template:
metadata:
labels:
app: elasticsearch
spec:
containers:
- name: elasticsearch
image: docker.elastic.co/elasticsearch/elasticsearch:7.13.3
ports:
- containerPort: 9200
name: rest
- containerPort: 9300
name: inter-node
env:
- name: discovery.type
value: single-node
volumeMounts:
- name: data
mountPath: /usr/share/elasticsearch/data
volumes:
- name: data
hostPath:
path: /data/elasticsearch
在 Kubernetes 集群中执行以下命令来创建 Elasticsearch:
kubectl apply -f elasticsearch.yaml
- 安装 Logstash
部署 Logstash,可以采用 yaml 文件方式,具体内容如下:
apiVersion: v1
kind: ConfigMap
metadata:
name: logstash-config
data:
logstash.conf: |
input {
tcp {
port => 5000
codec => json
}
}
output {
elasticsearch {
hosts => ["elasticsearch:9200"]
}
}
---
apiVersion: apps/v1
kind: Deployment
metadata:
name: logstash
spec:
replicas: 1
selector:
matchLabels:
app: logstash
template:
metadata:
labels:
app: logstash
spec:
containers:
- name: logstash
image: docker.elastic.co/logstash/logstash:7.13.3
volumeMounts:
- name: config
mountPath: /usr/share/logstash/pipeline/logstash.conf
subPath: logstash.conf
ports:
- containerPort: 5000
volumes:
- name: config
configMap:
name: logstash-config
在 Kubernetes 集群中执行以下命令来创建 Logstash:
kubectl apply -f logstash.yaml
- 安装 Kibana
部署 Kibana,可以采用 yaml 文件方式,具体内容如下:
apiVersion: apps/v1
kind: Deployment
metadata:
name: kibana
spec:
replicas: 1
selector:
matchLabels:
app: kibana
template:
metadata:
labels:
app: kibana
spec:
containers:
- name: kibana
image: docker.elastic.co/kibana/kibana:7.13.3
env:
- name: ELASTICSEARCH_HOSTS
value: http://elasticsearch:9200
ports:
- containerPort: 5601
---
apiVersion: v1
kind: Service
metadata:
name: kibana
spec:
selector:
app: kibana
type: NodePort
ports:
- name: http
port: 5601
targetPort: 5601
在 Kubernetes 集群中执行以下命令来创建 Kibana:
kubectl apply -f kibana.yaml
部署完成后,可以通过 NodePort 访问 Kibana。在浏览器中输入 http://<Node_IP>:<NodePort> 即可访问 Kibana。在 Kibana 中配置 Index Pattern,即可查看采集到的 pod 日志。
原文地址: https://www.cveoy.top/t/topic/bHBO 著作权归作者所有。请勿转载和采集!