コンテンツにスキップ

1. 概要

InfluxDB は、現在広く使われている時系列データベースです。InfluxDB は Go 言語で記述されており、外部依存関係がなく、インストールと設定が非常に簡単で、大規模な分散システムの監視システムの構築に適しています。

主な機能:

1)時系列に基づき、時間に関連する関数(最大値、最小値、合計など)をサポートします。

2)メトリクス機能:大量のデータをリアルタイムで計算できます。

3)イベントベース:任意のイベントデータをサポートします。

2. 前提条件

  • Kubernetes クラスターがデプロイされていること
  • OpenEBS ストレージプラグインがインストールされていること

3. インストールの準備

influxdb はリソース消費が大きいため、クラスターリソースを専有する必要があります。事前にクラスターのスケジューリングを設定する必要があります。

4. クラスターのラベル設定

4.1 コマンドを実行してクラスターにラベルを付与

# クラスター計画に従い、influxdb サービスをデプロイする k8s ノードにラベルを付与します
# xxx は実際のクラスター内のノードを表します。複数のノード IP はスペースで区切るか、コマンドラインでタブキーを使用して自動補完します
kubectl label nodes xxx influxdb=true

4.2 ラベルの確認

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

5. クラスターの Taint 設定

5.1 コマンドを実行してクラスターに Taint を設定

kubectl taint node  xxxx infrastructure=middleware:NoExecute

6. StorageClass の設定

6.1 influxdb 専用の StorageClass を作成

# 以下の 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
>

フィードバック

このページは役に立ちましたか?