콘텐츠로 이동

1. 개요

InfluxDB는 현재 널리 사용되는 시계열 데이터베이스입니다. InfluxDB는 Go 언어로 작성되었으며 외부 종속성이 없고 설치 및 구성이 매우 간편하여 대규모 분산 시스템의 모니터링 시스템을 구축하는 데 적합합니다.

주요 기능:

1) 시계열 기반, 시간 관련 함수(최대, 최소, 합계 등) 지원 2) 측정 가능성: 대량의 데이터를 실시간으로 계산 가능 3) 이벤트 기반: 임의의 이벤트 데이터 지원

2. 전제 조건

  • Kubernetes 클러스터가 배포되어 있어야 함
  • OpenEBS 스토리지 플러그인 드라이버

3. 설치 준비

InfluxDB는 리소스를 많이 사용하므로 클러스터 리소스를 전용으로 할당해야 하므로, 사전에 클러스터 스케줄링을 구성해야 합니다.

4. 클러스터 레이블 설정

4.1 명령어 실행으로 클러스터 레이블 지정

# 클러스터 계획에 따라 influxdb 서비스를 배포할 k8s 노드에 레이블을 지정합니다.
# xxx 는 실제 클러스터의 노드를 의미하며, 여러 노드 IP는 공백으로 구분하거나 명령줄 터미널에서 tab 키를 사용하여 자동 완성할 수 있습니다.
kubectl label nodes xxx influxdb=true

4.2 레이블 확인

kubectl get nodes --show-labels  | grep 'influxdb'

5. 클러스터 테인트 설정

5.1 명령어 실행으로 클러스터 테인트 설정

kubectl taint node  xxxx infrastructure=middleware:NoExecute

6. StorageClass 구성

6.1 InfluxDB 전용 스토리지 클래스 생성

# 다음 yaml 내용을 k8s 클러스터에 복사하여 sc-influxdb.yaml 로 저장하고 실제 상황에 맞게 수정한 후 배포합니다.
apiVersion: storage.k8s.io/v1
allowVolumeExpansion: true
kind: StorageClass
metadata:
  annotations:
    cas.openebs.io/config: |
      - name: StorageType
        value: "hostpath"
      - name: BasePath
        value: "/data/influxdb"  # 해당 경로는 실제 상황에 맞게 수정 가능하며, 스토리지 공간이 충분한지 확인하세요.
  name: openebs-influxdb  # 이름은 클러스터 내에서 고유해야 하며, 설치 전에 배포 파일 /etc/kubeasz/guance/infrastructure/yaml/taos.yaml 도 함께 수정해야 합니다.
provisioner: openebs.io/local
reclaimPolicy: Retain
volumeBindingMode: WaitForFirstConsumer

/data/influxdb 디렉터리의 디스크 용량이 충분한지 확인하세요.

6.2 InfluxDB 데이터 스토리지 공간 구성

# /etc/kubeasz/guance/infrastructure/yaml/influxdb.yaml 로 이동하여 필요에 따라 수정
---
apiVersion: v1
kind: PersistentVolumeClaim
metadata:
  name: influx-data
spec:
  accessModes:
  - ReadWriteOnce
  resources:
    requests:
      storage: 10Gi  # 실제 필요에 따라 스토리지 크기 구성
  volumeMode: Filesystem
  storageClassName: openebs-hostpath

7. 설치

# 기본 관리자 계정: admin
# 기본 로그인 비밀번호: "B8vBISUItYEH4uhk"
# 비밀번호를 변경하려면 설치 전에 /etc/kubeasz/guance/infrastructure/yaml/influxdb.yaml 을 수정하세요.

# 네임스페이스 생성
kubectl  create  ns middleware
# influxdb 서비스 배포
kubectl  apply  -f /etc/kubeasz/guance/infrastructure/yaml/influxdb.yaml  -n middleware

8. 배포 확인

# 기본 관리자 계정: admin
# 기본 로그인 비밀번호: "B8vBISUItYEH4uhk"
[root@k8s-node01 ~]# kubectl  get pods -n middleware
NAME                        READY   STATUS    RESTARTS   AGE
influxdb-7ff9db677f-v4877   1/1     Running   0          3m42s

[root@k8s-node01 ~]# kubectl  exec -it -n middleware  influxdb-xxxx influx
kubectl exec [POD] [COMMAND] is DEPRECATED and will be removed in a future version. Use kubectl exec [POD] -- [COMMAND] instead.
Connected to http://localhost:8086 version 1.7.8
InfluxDB shell version: 1.7.8
> auth
username: admin
password:
> show databases;
name: databases
name
----
_internal
>

문서 평가

이 페이지가 도움이 되었나요?