elasticsearch k8s - jupark33/Spring GitHub Wiki

  • ElasticSearch를 K8S에 설치할 때 Helm을 사용하면 편리하지만 설치되는 노드수가 많아서 메모리와 cpu가 많이 필요하다.
  • Docker를 이용하여 ElasticSearch를 설치하면 컨테이너 하나로 설치가 되므로, 해당 컨테이너를 POD로 생성할 수 있을 것 같다.
  • ElasticSearch 설치
  • Kibana 설치

https://expertbeacon.com/deploying-elasticsearch-on-kubernetes-with-helm-the-complete-guide/

https://www.elastic.co/guide/en/cloud-on-k8s/current/k8s-deploy-elasticsearch.html

es k8s

apiVersion: apps/v1
kind: Deployment
metadata: 
  name: esTest 
spec: 
  replicas: 1 
  selector: 
    matchLabels: 
      app: esTest 
  template: 
    metadata: 
      labels: 
        app: esTest 
    spec: 
      containers: 
      - name: esTest 
        image: elasticsearch:7.1.1 
        ports:
        - containerPort: 9200
          protocol: TCP
        - containerPort: 9300
          protocol: TCP
        env: 
        - name: discovery.type 
          value: "single-node"

apiVersion: apps/v1
kind: Deployment
metadata:
  name: elasticsearch
  labels:
    app: elasticsearch
spec:
  replicas: 1
  selector:
    matchLabels:
      app: elasticsearch
  template:
    metadata:
      labels:
        app: elasticsearch
    spec:
      containers:
      - name: elasticsearch
        image: docker.elastic.co/elasticsearch/elasticsearch:7.1.1
        ports:
        - containerPort: 9200
        - containerPort: 9300
        env:
        - name: discovery.type
          value: single-node
---
apiVersion: v1
kind: Service
metadata:
  name: elasticsearch
spec:
  selector:
    app: elasticsearch
  ports:
  - protocol: TCP
    port: 9200
    targetPort: 9200
  - protocol: TCP
    port: 9300
    targetPort: 9300

apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
  labels:
    app: kibana
spec:
  replicas: 1
  selector:
    matchLabels:
      app: kibana
  template:
    metadata:
      labels:
        app: kibana
    spec:
      containers:
      - name: kibana
        image: docker.elastic.co/kibana/kibana:7.1.1
        ports:
        - containerPort: 5601
        env:
        - name: ELASTICSEARCH_HOSTS
          value: http://elasticsearch:9200
---
apiVersion: v1
kind: Service
metadata:
  name: kibana
spec:
  selector:
    app: kibana
  ports:
  - protocol: TCP
    port: 5601
    targetPort: 5601

kubectl apply -f es-7.1.1.yaml --namespace=elastic
kubectl apply -f kibana.yaml --namespace=elastic