Setting up Single node Elasticsearch kibana on kubernetes

kubectl create namespace k8s-es

 

elasticsearch.yaml

apiVersion: v1
kind: Service
metadata:
  name: elasticsearch
  namespace: k8s-es
  labels:
    component: elasticsearch
spec:
  type: ClusterIP
  selector:
    component: elasticsearch
  ports:
    - name: http
      port: 9200
      protocol: TCP


---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: elasticsearch
  namespace: k8s-es
spec:
  selector:
    matchLabels:
      component: elasticsearch
  template:
    metadata:
      labels:
        component: elasticsearch
    spec:
      containers:
        - name: elasticsearch
          image: docker.elastic.co/elasticsearch/elasticsearch:7.9.2
          env:
            - name: discovery.type
              value: single-node
          ports:
            - containerPort: 9200
              name: http
              protocol: TCP

  

kibana-config.yaml

apiVersion: v1
kind: ConfigMap
metadata:
  name: kibana-config
  namespace: k8s-es
data:
  kibana.yml: |
    elasticsearch.hosts: ["http://elasticsearch:9200"]
    server.basePath: "/kibana"
    server.host: "0.0.0.0"

  

kibana.yaml

apiVersion: v1
kind: Service
metadata:
  name: kibana
  namespace: k8s-es
  labels:
    run: kibana
spec:
  type: ClusterIP
  selector:
    run: kibana
  ports:
    - name: http
      port: 5601
      protocol: TCP
---
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
  namespace: k8s-es
spec:
  selector:
    matchLabels:
      run: kibana
  template:
    metadata:
      labels:
        run: kibana
    spec:
      containers:
        - name: kibana
          image: docker.elastic.co/kibana/kibana:7.9.2
          ports:
            - containerPort: 5601
              name: http
              protocol: TCP
          volumeMounts:
          - mountPath: /usr/share/kibana/config/
            name: kibana-config

      volumes:
        - name: kibana-config
          configMap:
            name: kibana-config

  

kibana-ingress.yaml

apiVersion: networking.k8s.io/v1beta1
kind: Ingress
metadata:
  name: kibana-ingress
  namespace: k8s-es
  annotations:
    kubernetes.io/ingress.class: "nginx"
    nginx.ingress.kubernetes.io/rewrite-target: /$2
spec:
  rules:
  - http:
      paths:
      - path: /kibana(/|$)(.*)
        backend:
          serviceName: kibana
          servicePort: http

  

参考文档 

https://chekkan.com/setting-up-elasticsearch-cluster-on-kubernetes-part-1/

 

如果想搭建多节点集群,参考文档

https://github.com/pires/kubernetes-elasticsearch-cluster 

posted @ 2020-10-16 09:53  xuchenCN  阅读(391)  评论(0编辑  收藏  举报