# 产品概览
该项目提供了一个 Operator,用于在 Kubernetes 上管理 EMQX 集群。
注意: EMQX Operator 控制器需要 Kubernetes v1.20.11 或者以上。
# 部署 Operator 控制器
# 准备
我们使用 cert-manager (opens new window)来给 webhook 服务提供证书。你可以通过 cert manager 文档 (opens new window)来安装。
# 安装
- 通过 Helm 安装
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
3
- 等待 EMQX Operator 控制器就绪
$ kubectl get pods -l "control-plane=controller-manager" -n emqx-operator-system
NAME READY STATUS RESTARTS AGE
emqx-operator-controller-manager-68b866c8bf-kd4g6 1/1 Running 0 15s
1
2
3
2
3
# 部署 EMQX
# 部署 EMQX 5
部署 EMQX 自定义资源
cat << "EOF" | kubectl apply -f - apiVersion: apps.emqx.io/v2alpha1 kind: EMQX metadata: name: emqx spec: image: emqx/emqx:5.0.9 EOF
1
2
3
4
5
6
7
8完整的例子请查看
emqx-full.yaml
(opens new window)每个字段的详细解释,请参考 v2alpha1-reference (opens new window)
检查 EMQX 自定义资源状态
$ kubectl get pods $ kubectl get emqx emqx -o json | jq ".status.emqxNodes"
1
2
# 部署 EMQX 4
部署 EMQX 自定义资源
cat << "EOF" | kubectl apply -f - apiVersion: apps.emqx.io/v1beta3 kind: EmqxBroker metadata: name: emqx spec: emqxTemplate: image: emqx/emqx:4.4.9 EOF
1
2
3
4
5
6
7
8
9完整的例子请查看
emqxbroker-full.yaml
(opens new window)每个字段的详细解释,请参考 v1beta3-reference (opens new window)
检查 EMQX 自定义资源状态
$ kubectl get pods $ kubectl get emqxbroker emqx -o json | jq ".status.emqxNodes"
1
2
# 部署 EMQX Enterprise 4
部署 EMQX 自定义资源
cat << "EOF" | kubectl apply -f - apiVersion: apps.emqx.io/v1beta3 kind: EmqxEnterprise metadata: name: emqx-ee spec: emqxTemplate: image: emqx/emqx-ee:4.4.9 EOF
1
2
3
4
5
6
7
8
9完整的例子请查看
emqxenterprise-full.yaml
(opens new window)每个字段的详细解释,请参考 v1beta3-reference (opens new window)
检查 EMQX 自定义资源状态
$ kubectl get pods $ kubectl get emqxenterprise emqx-ee -o json | jq ".status.emqxNodes"
1
2
# 备注
- 在 Kubernetes 1.24 及以上默认开启
MixedProtocolLBService
特性,其文档可以参考: MixedProtocolLBService (opens new window)。MixedProtocolLBService
特性允许在同一LoadBalancer
类型的 Service 实例中使用不同的协议。因此如果用户在 Kubernetes 上部署 EMQX 集群,并且使用LoadBalancer
类型的 Service,Service 里面同时存在 TCP 和 UDP 两种协议,请注意升级 Kubernetes 版本到 1.24及以上,否则会导致 Service 创建失败。
← 部署要求 部署 EMQX 插件 →