README_zh.md 5.1 KB

Kuiper 可以通过 Helm chart 部署在 k3s / k8s 集群上。 下面以 k3s 为例演示如何部署 Kuiper:

Prepare:

## K8S 可以跳过这一步 $ export KUBECONFIG=/etc/rancher/k3s/k3s.yaml


## 通过 Helm 部署 Kuiper

+ 获取项目代码

$ git clone https://github.com/emqx/kuiper $ cd kuiper/deploy/chart/kuiper


+ 可以通过编辑 `values.yaml` 文件修改部署配置

  ##### Kuiper Helm Chart 配置项

  | 参数                        | 描述                                                         | Default Value            |
  | --------------------------- | ------------------------------------------------------------ | ------------------------ |
  | `replicaCount`              | 部署kuiper数量                                               | 1                        |
  | `image.repository`          | 拉取镜像名称                                                 | emqx/kuiper              |
  | `image.pullPolicy`          | 拉取镜像策略                                                 | IfNotPresent             |
  | `persistence.enabled`       | 是否启用 PVC                                                 | false                    |
  | `persistence.storageClass`  | Storage class 名称                                           | `nil`                    |
  | `persistence.existingClaim` | PV 名称                                                      | ""                       |
  | `persistence.accessMode`    | PVC 访问模式                                                 | ReadWriteOnce            |
  | `persistence.size`          | PVC 容量                                                     | 20Mi                     |
  | `resources`                 | CPU/内存资源                                                 | {}                       |
  | `nodeSelector`              | 节点选择                                                     | {}                       |
  | `tolerations`               | 污点容忍                                                     | []                       |
  | `affinity`                  | 节点亲和性                                                   | {}                       |
  | `mqtt.servers`              | mqtt服务器的代理地址                                         | `[tcp://127.0.0.1:1883]` |
  | `mqtt.qos`                  | 消息转发的服务质量                                           | 1                        |
  | `mqtt.sharedSubscription`   | 是否使用共享订阅                                             | true                     |
  | `mqtt.username`             | 连接用户名                                                   |                          |
  | `mqtt.password`             | 连接密码                                                     |                          |
  | `mqtt.certificationPath`    | 证书路径。可以为绝对路径,也可以为相对路径。如果指定的是相对路径,那么父目录为执行`server`命令的路径。比如,如果你在`/var/kuiper` 中运行 `bin/server` ,那么父目录为 `/var/kuiper`; 如果运行从`/var/kuiper/bin`中运行`./server`,那么父目录为 `/var/kuiper/bin`。 |                          |
  | `mqtt.privateKeyPath`       | 私钥路径。可以为绝对路径,也可以为相对路径。更详细的信息,请参考 `certificationPath`. |                          |

#### 快速部署Kuiper

+ 使用 Helm 部署 Kuiper

$ helm install my-kuiper . NAME: my-kuiper LAST DEPLOYED: Mon Dec 9 09:56:32 2019 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None


+ 部署成功

$ kubectl get pods NAME READY STATUS RESTARTS AGE my-kuiper-0 1/1 Running 0 19s


#### 部署持久化的 Kuiper

+ Kuiper 通过 创建 PVC 资源挂载 `/kuiper/data` 目录实现持久化 `pods`,**在部署 Kuiper 之前,用户需要自行在 Kubernetes 中创建 PVC 资源或 Storage Classes 资源**

+ 编辑 `values.yaml` 文件,设置 `persistence.enabled=true`

  + 如果用户部署了 PVC 资源,那么设置 `persistence.existingClaim=your_pv_name`
+ 如果用户部署了 Storage Classes 资源,那么设置`persistence.storageClass=your_storageClass_name`
  
+ 使用 Helm 部署 Kuiper

$ helm install my-kuiper . NAME: my-kuiper LAST DEPLOYED: Mon Dec 9 09:56:32 2019 NAMESPACE: default STATUS: deployed REVISION: 1 TEST SUITE: None


+ 部署成功

$ kubectl get pods NAME READY STATUS RESTARTS AGE my-kuiper-0 1/1 Running 0 19s ```