관리 메뉴

피터의 개발이야기

[kubernetes] Elasticsearch Data 노드 메모리 증설 본문

Kubernetes/Infra작업

[kubernetes] Elasticsearch Data 노드 메모리 증설

기록하는 백앤드개발자 2022. 7. 14. 13:15
반응형

 

 ㅁ 개요 

 ㅇ 7월정기반영에 ES Data 노드 증설작업이 있었고, 그 과정을 정리하였다.

 ㅇ Elasticsearch Data 노드의 메모리 사용률이 100% 발생하여 OOM을 방지 하기 위해 증설하는 과정을 정리하였다.

 ㅇ 메모리 증설 후 EFK 재기동 방법도 함께 정리함.

 

 

ㅁ ES 메모리 설정 변경  

kubectl edit statefulset elasticsearch-data

 ㅇ ES_JAVA_OPTS 메모리 기존 + 1기가 증설 처리
 ㅇ resources limits memory 기존 + 1기가 증설 처리

 

   .. 생략..
          containers:
          - env:
            - name: discovery.seed_hosts
              value: elasticsearch-master.default.svc.cluster.local
            - name: ES_JAVA_OPTS
              value: -Xms6000m -Xmx6000m

  .. 생략..

            resources:
              limits:
                memory: 7Gi
            terminationMessagePath: /dev/termination-log
            terminationMessagePolicy: File

  .. 생략..


   

ㅁ elasticsearch-data 서비스 재기동 여부 확인

kubectl get pod | grep elasticsearch-data



ㅁ 자동으로 재기동 안될 경우 아래 명령어 수행

kubectl delete pod elasticsearch-data-0
kubectl delete pod elasticsearch-data-1



ㅁ EFK 재기동 방법

ㅇ EFK 서비스 내리기

kubectl scale statefulset elasticsearch-data --replicas=0
kubectl scale statefulset elasticsearch-master --replicas=0
kubectl patch daemonset fluent-bit -p '{"spec": {"template": {"spec": {"nodeSelector": {"non-existing": "true"}}}}}'
kubectl scale deployment kibana --replicas=0

 

 

ㅇ 서비스 중단 여부 확인

kubectl get pod | egrep 'elasticsearch|fluent|kibana'

 

 

ㅇ EFK 서비스 재시작

kubectl scale statefulset elasticsearch-data --replicas=2
kubectl scale statefulset elasticsearch-master --replicas=3
kubectl patch daemonset fluent-bit --type json -p='[{"op": "remove", "path": "/spec/template/spec/nodeSelector/non-existing"}]'
kubectl scale deployment kibana --replicas=1

 

반응형
Comments