# 4. EFK 스택구축 - Kibana 배포

empty·2021년 1월 4일

EFK-STACK

목록 보기
5/6
post-thumbnail

Kibana 배포 워크로드

Kibana도 Fluentd와 마찬가지로 상태를 유지할 필요가 없다. 따라서 Statefulset으로는 배포하지 않고 Deployment로 배포한다. 이유는 Fluentd와는 달리 각 노드에 균등하게 해당 서비스가 올라갈 필요는 없기 때문이다.

  • Service

    # Kibana의 대시보드에 접근해서 다양한 데이터를 시각화를 해야하기 때문에 LoadBalancer로 노출시킨다.

  • Deployment

매니페스트 정의

> kibana-deploy.yaml

# Kibana에 접근가능한 외부 IP 노출
apiVersion: v1
kind: Service
metadata:
  name: kibana
  namespace: efk-stack
  labels:
    app: kibana
spec:
  ports:
    - port: 5601
  selector:
    app: kibana
  type: LoadBalancer
---
# Kibana 배포
apiVersion: apps/v1
kind: Deployment
metadata:
  name: kibana
  namespace: efk-stack
  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.10.1
          resources:
            limits:
              cpu: 1000m
            requests:
              cpu: 100m
          env:
            - name: ELASTICSEARCH_HOSTS
              value: http://elasticsearch:9200
          ports:
            - containerPort: 5601
  • Kibana의 6.60 버전 이후부터 환경변수에 ELASTICSEARCH_HOSTS 를 사용하기 시작함. 따라서 이전버전에서 사용하던 ELASTICSEARCH_URL을 사용하면 'Kibana server is not ready yet' 이라는 문구가 출력된다.

배포확인

배포가 되었으면 모든 리소스가 배포되었는지 확인하자.

> k get deployments.apps -n efk-stack
NAME     READY   UP-TO-DATE   AVAILABLE   AGE
kibana   1/1     1            1           29m

> k get pod -n efk-stack
NAME                      READY   STATUS    RESTARTS   AGE
fluentd-4hfwj             1/1     Running   0          41m
fluentd-knrrw             1/1     Running   0          41m
kibana-59d8858b66-dd6f2   1/1     Running   0          29m
shin-es-0                 1/1     Running   0          45m
shin-es-1                 1/1     Running   0          44m
shin-es-2                 1/1     Running   0          44m

# 프로비저닝 된 로드밸런서
> k get svc -n efk-stack
NAME            TYPE           CLUSTER-IP      EXTERNAL-IP                                                                    PORT(S)             AGE
elasticsearch   ClusterIP      10.100.90.64    <none>                                                                         9200/TCP,9300/TCP   43m
kibana          LoadBalancer   10.100.58.246   aef640133d80a4909817fec9a29e1478-1291526549.ap-northeast-2.elb.amazonaws.com   5601:31662/TCP      27m

Kibana 웹페이지 접속

이제 프로비저닝 된 로드밸런서의 주소로 Kibana로 접근해보자 포트는 5601이다.

  • aef640133d80a4909817fec9a29e1478-1291526549.ap-northeast-2.elb.amazonaws.com:5601

접속이 잘 되는모습이다. 이제 다음장에서는 EFK를 실제 프로덕션 환경에서는 어떻게 사용하고 있는지 직접 해당되는 메트릭값들을 설정해보겠습니다. ^^*

0개의 댓글