为什么要使用 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
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
- 80
- 81
- 82
- 83
- 84
- 85
- 86
- 87
- 88
- 89
- 90
- 91
- 92
- 93
- 94
- 95
- 96
- 97
- 98
- 99
- 100
- 101
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: /
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
文章来源: yekangming.blog.csdn.net,作者:叶康铭,版权归原作者所有,如需转载,请联系作者。
原文链接:yekangming.blog.csdn.net/article/details/109075902