|NO.Z.00282|——————————|^^ 部署 ^^|——|KuberNetes&运维.V04|——|EFK架构.v04|部署Kibana|
一、部署Kibana
### --- 创建Kibana-service.yaml文件
[root@k8s-master01 EFK]# cat kibana-service.yaml
apiVersion: v1
kind: Service
metadata:
name: kibana-logging
namespace: public-service
labels:
k8s-app: kibana-logging
kubernetes.io/cluster-service: "true"
addonmanager.kubernetes.io/mode: Reconcile
kubernetes.io/name: "Kibana"
spec:
ports:
- port: 5601
protocol: TCP
targetPort: ui
selector:
k8s-app: kibana-logging
type: NodePort
二、创建Kibana-service
### --- 创建Kibana-service
[root@k8s-master01 EFK]# kubectl create -f kibana-service.yaml
service/kibana-logging created
### --- 查看创建的kibana-service
[root@k8s-master01 EFK]# kubectl get svc -n public-service -owide
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
elasticsearch-logging ClusterIP 10.107.157.176 <none> 9200/TCP 3h39m k8s-app=elasticsearch-logging
kibana-logging NodePort 10.97.92.222 <none> 5601:30495/TCP 147m k8s-app=kibana-logging
### --- 查看创建的kibana-ep
[root@k8s-master01 EFK]# kubectl get ep -n public-service -owide
NAME ENDPOINTS AGE
elasticsearch-logging 172.27.14.195:9200 3h38m
kibana-logging 172.17.125.6:5601 146m
三、创建Kibana-deployment.yaml资源文件
### --- 创建Kibana-deployment的配置文件
[root@k8s-master01 EFK]# cat kibana.yaml
apiVersion: apps/v1
kind: Deployment
metadata:
name: kibana-logging
namespace: public-service
labels:
k8s-app: kibana-logging
addonmanager.kubernetes.io/mode: Reconcile
spec:
replicas: 1
selector:
matchLabels:
k8s-app: kibana-logging
template:
metadata:
labels:
k8s-app: kibana-logging
annotations:
seccomp.security.alpha.kubernetes.io/pod: 'docker/default'
spec:
containers:
- name: kibana-logging
image: docker.elastic.co/kibana/kibana-oss:7.2.0
resources:
# need more cpu upon initialization, therefore burstable class
limits:
cpu: 1000m
requests:
cpu: 100m
env:
- name: ELASTICSEARCH_HOSTS
value: http://elasticsearch-logging:9200
- name: SERVER_NAME
value: kibana-logging
#- name: SERVER_BASEPATH
# value: /api/v1/namespaces/public-service/services/kibana-logging/proxy
- name: SERVER_REWRITEBASEPATH
value: "false"
ports:
- containerPort: 5601
name: ui
protocol: TCP
livenessProbe:
httpGet:
path: /api/status
port: ui
initialDelaySeconds: 5
timeoutSeconds: 10
readinessProbe:
httpGet:
path: /api/status
port: ui
initialDelaySeconds: 5
timeoutSeconds: 10
### --- 注:
~~~ # 注释一:副本数量为1
spec:
replicas: 1
selector:
matchLabels:
k8s-app: kibana-logging
~~~ # 注释二:es地址
~~~ kibana连接es的地址;若是外部地址的话,可以将外部和地址映射到service上,
~~~ 然后写上service地址即可
env:
- name: ELASTICSEARCH_HOSTS
value: http://elasticsearch-logging:9200
~~~ # 注释三:安装路径
~~~ 此环境是通过service访问的,需要把这行内容注销掉,不然他会通过这个地址去访问
#- name: SERVER_BASEPATH
# value: /api/v1/namespaces/public-service/services/kibana-logging/proxy
四、创建Kibana-deployment
### --- 创建Kibana-deployment
[root@k8s-master01 EFK]# kubectl create -f kibana.yaml
deployment.apps/kibana-logging created
### --- 查看创建的Kibana
[root@k8s-master01 EFK]# kubectl get po -n public-service -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
elasticsearch-logging-0 1/1 Running 0 63m 172.27.14.195 k8s-node02 <none> <none>
fluentd-es-v3.0.1-xprsz 1/1 Running 2 48m 172.17.125.4 k8s-node01 <none> <none>
kibana-logging-75ff847f8c-lg9lg 0/1 Running 0 14s 172.25.244.200 k8s-master01
### --- 查看创建的Kibana的端口号
[root@k8s-master01 EFK]# kubectl get po,svc,ep -n public-service -owide
NAME READY STATUS RESTARTS AGE IP NODE NOMINATED NODE READINESS GATES
pod/elasticsearch-logging-0 1/1 Running 0 3h41m 172.27.14.195 k8s-node02 <none> <none>
pod/fluentd-es-v3.0.1-xprsz 1/1 Running 3 3h26m 172.17.125.4 k8s-node01 <none> <none>
pod/kibana-logging-7cf6dc4687-blrks 1/1 Running 0 144m 172.17.125.6 k8s-node01 <none> <none>
NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE SELECTOR
service/elasticsearch-logging ClusterIP 10.107.157.176 <none> 9200/TCP 3h42m k8s-app=elasticsearch-logging
service/kibana-logging NodePort 10.97.92.222 <none> 5601:30495/TCP 150m k8s-app=kibana-logging
NAME ENDPOINTS AGE
endpoints/elasticsearch-logging 172.27.14.195:9200 3h42m
endpoints/kibana-logging 172.17.125.6:5601 150m
Walter Savage Landor:strove with none,for none was worth my strife.Nature I loved and, next to Nature, Art:I warm'd both hands before the fire of life.It sinks, and I am ready to depart
——W.S.Landor
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了