在 Kubernetes 上通过 helm 部署

本文档描述了如何使用我们提供的 helm chart 来运行 HStreamDB kubernetes。该文档假设读者 有基本的 kubernetes 知识。在本节结束时,你将拥有一个完全运行在 kubernetes 上的 HStreamDB 集群,它已经准备就绪,可以接收读/写,处理数据,等等。

建立你的 Kubernetes 集群

第一步是要有一个正在运行的 kubernetes 集群。你可以使用一个托管的集群(由你的云提 供商提供),一个自我托管的集群或一个本地的 kubernetes 集群,比如 minikube。请确 保 kubectl 指向你计划使用的任何集群。

另外,你需要一个存储类,你可以通过 “kubectl “创建。或者通过你的云服务提供商的网页来创建,如果它有的话。 minikube 默认提供一个名为 standard 的存储类,helm chart 默认使用此存储类。

通过 Helm 部署 HStreamDB

Clone 代码并获取 helm 依赖

  1. git clone https://github.com/hstreamdb/hstream.git
  2. cd hstream/deploy/chart/hstream/
  3. helm dependency build .

通过 Helm 部署 HStreamDB

  1. helm install my-hstream .

Helm chart 还提供了 value.yaml 文件,你可以在这个文件中修改你的配置,比如当你希望使用其他的存储类来部署集群时,你可以修改 value.yaml 中的 logdevice.persistence.storageClasszookeeper.persistence.storageClass,并使用 helm install my-hstream -f values.yaml . 来署。

检查集群状态

helm install 命令会部署 zookeeper 集群、logdevice 集群和 hstream 集群,这可能会花费一定的时间,你可以通过 kubectl get pods 来检查集群的状况,在集群部署的过程中,会有一些 ErrorCrashLoopBackOff 的状态,这些状态会在一定时间后消失,最终你会看到类似如下的内容:

  1. NAME READY STATUS RESTARTS AGE
  2. my-hstream-0 1/1 Running 3 (16h ago) 16h
  3. my-hstream-1 1/1 Running 2 (16h ago) 16h
  4. my-hstream-2 1/1 Running 0 16h
  5. my-hstream-logdevice-0 1/1 Running 3 (16h ago) 16h
  6. my-hstream-logdevice-1 1/1 Running 3 (16h ago) 16h
  7. my-hstream-logdevice-2 1/1 Running 0 16h
  8. my-hstream-logdevice-3 1/1 Running 0 16h
  9. my-hstream-logdevice-admin-server-6867fd9494-bk5mf 1/1 Running 3 (16h ago) 16h
  10. my-hstream-zookeeper-0 1/1 Running 0 16h
  11. my-hstream-zookeeper-1 1/1 Running 0 16h
  12. my-hstream-zookeeper-2 1/1 Running 0 16h

你可以通过 hadmin server 命令来检查 HStreamDB 集群的状态。

  1. kubectl exec -it hstream-1 -- bash -c "hadmin server status"
  2. +---------+---------+------------------+
  3. | node_id | state | address |
  4. +---------+---------+------------------+
  5. | 100 | Running | 172.17.0.4:6570 |
  6. | 101 | Running | 172.17.0.10:6570 |
  7. | 102 | Running | 172.17.0.12:6570 |
  8. +---------+---------+------------------+

管理存储集群

现在你可以运行 hadmin store 来管理这个集群

  1. kubectl exec -it my-hstream-0 -- bash -c "hadmin store --help"

要检查 store 集群的状态,你可以运行:

  1. kubectl exec -it my-hstream-0 -- bash -c "hadmin store --host my-hstream-logdevice-admin-server status"
  2. +----+------------------------+----------+-------+--------------+----------+
  3. | ID | NAME | PACKAGE | STATE | UPTIME | LOCATION |
  4. +----+------------------------+----------+-------+--------------+----------+
  5. | 0 | my-hstream-logdevice-0 | 99.99.99 | ALIVE | 16 hours ago | |
  6. | 1 | my-hstream-logdevice-1 | 99.99.99 | DEAD | 16 hours ago | |
  7. | 2 | my-hstream-logdevice-2 | 99.99.99 | DEAD | 16 hours ago | |
  8. | 3 | my-hstream-logdevice-3 | 99.99.99 | DEAD | 16 hours ago | |
  9. +----+------------------------+----------+-------+--------------+----------+
  10. +---------+-------------+---------------+------------+---------------+
  11. | SEQ. | DATA HEALTH | STORAGE STATE | SHARD OP. | HEALTH STATUS |
  12. +---------+-------------+---------------+------------+---------------+
  13. | ENABLED | HEALTHY(1) | READ_WRITE(1) | ENABLED(1) | HEALTHY |
  14. | ENABLED | HEALTHY(1) | READ_WRITE(1) | ENABLED(1) | HEALTHY |
  15. | ENABLED | HEALTHY(1) | READ_WRITE(1) | ENABLED(1) | HEALTHY |
  16. | ENABLED | HEALTHY(1) | READ_WRITE(1) | ENABLED(1) | HEALTHY |
  17. +---------+-------------+---------------+------------+---------------+
  18. Took 16.727s