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