Elasticsearch & Kibana 部署安装 (Kubernetes)

为什么要使用 Kuberentes 来部署 Elasticsearch 和 Kibana 呢,在实际的生产环境中,大部分都是使用 Kubernetes 来进行应用的托管,因为通过 Kuberentes 的一些高级功能,很轻易的实现服务发现,故障自愈,水平扩容等等的好处。

在这里插入图片描述

Elasticsearch
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: elasticsearch
  name: elasticsearch-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: elasticsearch
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: elasticsearch
    spec:
      containers:
        - name: elasticsearch-deployment
          image: 'docker.elastic.co/elasticsearch/elasticsearch:7.9.2'
          env:
            - name: discovery.type
              value: 'single-node'
          volumeMounts: 
            - mountPath: /usr/share/elasticsearch/config/elasticsearch.yml
              name: volume-configmap
              subPath: elasticsearch.yml
            - mountPath: /usr/share/elasticsearch/data
              name: volume-pvc
      volumes:
        - name: volume-configmap
          configMap:
            name: elasticsearch-configmap
            defaultMode: 420
        - name: volume-pvc
          persistentVolumeClaim:
            claimName: elasticsearch-pvc
---
apiVersion: v1
kind: Service
metadata:
  name: elasticsearch-service
spec:
  ports:
    - name: elasticsearch-service-9200
      port: 9200
      protocol: TCP
      targetPort: 9200
    - name: elasticsearch-service-9300
      port: 9300
      protocol: TCP
      targetPort: 9300
  selector:
    app: elasticsearch
  type: ClusterIP
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: elasticsearch-ingress
spec:
  rules:
    - host: elasticsearch
      http:
        paths:
          - backend:
              serviceName: elasticsearch-service
              servicePort: 9200
            path: /
---
apiVersion: v1
data:
  elasticsearch.yml: |-
    cluster.name: "docker-cluster"
    network.host: 0.0.0.0
    http.cors.enabled: true
    http.cors.allow-origin: "*"
    xpack.security.enabled: true
kind: ConfigMap
metadata:
  name: elasticsearch-configmap
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  annotations:
    volume.beta.kubernetes.io/storage-provisioner: alicloud/disk
  finalizers:
    - kubernetes.io/pvc-protection
  name: elasticsearch-pvc
spec:
  accessModes:
    - ReadWriteOnce
  resources:
    requests:
      storage: 20Gi
  storageClassName: hongkong-disk-efficiency

在这里插入图片描述

kibana
apiVersion: apps/v1
kind: Deployment
metadata:
  labels:
    app: kibana
  name: kibana-deployment
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kibana
  strategy:
    rollingUpdate:
      maxSurge: 25%
      maxUnavailable: 25%
    type: RollingUpdate
  template:
    metadata:
      labels:
        app: kibana
    spec:
      containers:
        - name: kibana-deployment
          image: 'kibana:7.9.2'
          volumeMounts: 
            - mountPath: /usr/share/kibana/config/kibana.yml
              name: volume-configmap
              subPath: kibana.yml
      volumes:
        - configMap:
            defaultMode: 420
            name: kibana-configmap
          name: volume-configmap
---
apiVersion: v1
kind: Service
metadata:
  name: kibana-service
spec:
  ports:
    - name: kibana-service-5601
      port: 5601
      targetPort: 5601
  selector:
    app: kibana
  type: ClusterIP
---
apiVersion: v1
data:
  kibana.yml: |-
    server.name: kibana
    server.host: "0"
    monitoring.ui.container.elasticsearch.enabled: true
    elasticsearch.hosts: [ "http://elasticsearch-service:9200" ]
    xpack.security.enabled: true
    elasticsearch.username: elastic
    elasticsearch.password: mGxKyd51dStI3KEj0MhU
kind: ConfigMap
metadata:
  name: kibana-configmap
---
apiVersion: extensions/v1beta1
kind: Ingress
metadata:
  name: kibana-ingress
  annotations:
    kubernetes.io/ingress.class: nginx
spec:
  rules:
    - host: kibana
      http:
        paths:
          - backend:
              serviceName: kibana-service
              servicePort: 5601
            path: /
  • 4
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值