# K8s 部署指南

EMQX Kubernetes Operator (opens new window) 可以帮助您快速在 Kubernetes 的环境上快速创建和管理 EMQX Enterprise 集群。 通过集成滚动更新、自动化伸缩、集群和节点监控等常用功能,EMQX Operator 可以极大简化 EMQX 集群的部署和管理流程,将部署和管理的工作变成一种低成本的、标注化的、可重复性的能力。

环境准备

部署前,确认以下组件已经安装:

软件版本要求
Kubernetes (opens new window)1.24 及以上
Helm (opens new window)3.0.0 及以上
cert-manager (opens new window)1.1.6 及以上

# 部署 EMQX Operator

EMQX 使用 cert-manager (opens new window) 来给 Webhook 服务提供证书。有关如何安装,可参考 cert manager 手册 - 安装部分 (opens new window)

# 安装 EMQX Operator

  1. 通过 Helm 安装 EMQX Operator。

    helm repo add emqx https://repos.emqx.io/charts
    helm repo update
    helm install emqx-operator emqx/emqx-operator --namespace emqx-operator-system --create-namespace
    
    1
    2
    3
  2. 等待 EMQX Operator 控制器就绪。

    $ kubectl get pods -l "control-plane=controller-manager" -n emqx-operator-system
    
    1

    如 EMQX Operator 已就绪,可以看到类似命令返回:

    NAME                                                READY   STATUS    RESTARTS   AGE
    emqx-operator-controller-manager-68b866c8bf-kd4g6   1/1     Running   0          15s
    
    1
    2

# 升级 EMQX Operator

执行下面的命令可以升级 EMQX Operator,若想指定到升级版只需要增加 --version=x.x.x 参数即可。注意:不支持 1.x.x 版本升级到 2.x.x 版本。

helm upgrade emqx-operator emqx/emqx-operator -n emqx-operator-system 
1

# 卸载 EMQX Operator

执行如下命令卸载 EMQX Operator

helm uninstall emqx-operator -n emqx-operator-system
1

# 部署 EMQX

  1. 运行以下命令部署 EMQX。

    cat << "EOF" | kubectl apply -f -
      apiVersion: apps.emqx.io/v2alpha1
      kind: EMQX
      metadata:
        name: emqx
      spec:
        image: emqx/emqx:5.0.20
    EOF
    
    1
    2
    3
    4
    5
    6
    7
    8

    如希望查看完整代码示例,可前往 GitHub 查看 emqx-full.yaml 页面 (opens new window) ;有关每个字段的详细解释,可参考 EMQX Operator - API (opens new window)

  2. 运行以下命令检查 EMQX 集群是否就绪。

    kubectl get pods
    kubectl get emqx emqx -o json | jq ".status.emqxNodes"
    
    1
    2

    由于需要等待所有的 EMQX 节点启动并加入集群,因此需要一定的等待时间,之后可以看到类似如下的代码返回,表示 EMQX 集群已就绪。

    {
      "lastTransitionTime": "2023-02-13T02:38:25Z",
      "lastUpdateTime": "2023-02-13T02:44:19Z",
      "message": "All resources are ready",
      "reason": "ClusterReady",
      "status": "True",
      "type": "Running"
    }
    
    1
    2
    3
    4
    5
    6
    7
    8

至此您已经通过 EMQX Kubernetes Operator 完成了 EMQX 集群的部署。

您可访问以下链接了解如何进行集群参数配置:

EMQX Operator - 通用配置 (opens new window)

配置 EMQX logs 采集 (opens new window)

配置 EMQX Core 和 Replicant 节点 (opens new window)

配置 EMQX TLS 证书 (opens new window)

配置 EMQX License (opens new window)

配置 EMQX 持久化 (opens new window)

# 在公有云平台上部署 EMQX 集群

如希望在公有云 K8s 平台上部署 EMQX 集群,可阅读如下页面:

# 下一步

使用客户端连接到 EMQX,进行消息收发请参考 发布订阅操作