本文介绍在Kubernetes集群上的名称空间设置Kibana的过程

Namespace

kubectl create ns log-system

Configmap

# es-out 是es集群的headless svc
apiVersion: v1
kind: ConfigMap
metadata:
name: kibana
namespace: log-system
data:
kibana.yml: |
server.name: kibana.twf.com
server.host: "0.0.0.0"
elasticsearch.hosts: ["http://es-out:9200/"]

Deployment

apiVersion: apps/v1
kind: Deployment
metadata:
name: kibana
namespace: log-system
spec:
replicas: 1
selector:
matchLabels:
app: kibana
template:
metadata:
labels:
app: kibana
spec:
volumes:
- name: kibana-config
configMap:
name: kibana
containers:
- name: kibana
image: kibana:7.2.0
imagePullPolicy: IfNotPresent
ports:
- containerPort: 5601
volumeMounts:
- mountPath: /usr/share/kibana/config
name: kibana-config
env:
- name: CLUSTER_NAME
value: es-cluster

Service

apiVersion: v1
kind: Service
metadata:
name: kibana
namespace: log-system
spec:
type: NodePort
selector:
app: kibana
ports:
- port: 80
targetPort: 5601

测试

通过node ip:nodeport 方式访问