# 使用 EMQX Operator 在华为 CCE 上部署 EMQX 集群
# 名词解释
EMQX: The most scalable open-source MQTT broker for IoT. 详见:EMQX文档 (opens new window)
EMQX Operator: A Kubernetes Operator for EMQX. 详见:EMQX Operator文档 (opens new window)
CCE: 云容器引擎(Cloud Container Engine,简称CCE)提供高度可扩展的、高性能的企业级 Kubernetes 集群。详见:CCE文档 (opens new window)
# 创建CCE集群
登录华为 CCE控制台,购买“Turbo集群”或者“CCE集群”,EMQX Operator 要求Kubernetes 版本>=1.20.0 ,因此我们在此选择 Kubernetes 选择 1.21,网络与其他资源信息根据自身需求来制定。另外需要添加节点。细节请参考 (opens new window)
注意: 这里添加的节点必须可以访问外网(可以通过加NAT网关解决) 节点安装的操作系统建议是Ubuntu,否则有可能会缺少必要的库(socat)
# 访问 Kubernetes 集群
# StorageClass 配置
查看当前的StroageClass
kubectl get sc
这里我们用csi-disk
, 其他 StorageClass 参考 (opens new window)
# 使用EMQX Operator 部署EMQX集群
Operator 安装参考 (opens new window)
Operator 安装完成后,使用以下yaml 在 CCE 上进行部署 EMQX 集群
cat << "EOF" | kubectl apply -f -
apiVersion: apps.emqx.io/v1beta3
kind: EmqxEnterprise
metadata:
name: emqx-ee
labels:
"foo": "bar"
spec:
persistent:
storageClassName: csi-disk
resources:
requests:
storage: 1Gi
accessModes:
- ReadWriteOnce
emqxTemplate:
image: emqx/emqx-ee:4.4.8
serviceTemplate:
metadata:
annotations:
kubernetes.io/elb.pass-through: "true"
kubernetes.io/elb.class: union
kubernetes.io/elb.autocreate:
'{
"type": "public",
"name": "emqx",
"bandwidth_name": "cce-emqx",
"bandwidth_chargemode": "bandwidth",
"bandwidth_size": 5,
"bandwidth_sharetype": "PER",
"eip_type": "5_bgp"
}'
spec:
type: LoadBalancer
EOF
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
这里 service type采用LoadBalancer
elb参数说明
- bandwidth_chargemode
带宽付费模式。 bandwidth:按带宽计费 traffic:按流量计费 默认类型:bandwidth
- bandwidth_size
带宽大小,默认1Mbit/s~2000Mbit/s,请根据Region带宽支持范围设置。
- bandwidth_sharetype
带宽共享方式。 PER:独享带宽
- eip_type
弹性公网IP类型 5_telcom:电信 5_union:联通 5_bgp:全动态BGP 5_sbgp:静态BGP
annotations的说明参考 (opens new window)
# 关于LoadBalancer终结TLS
由于华为ELB不支持TCP证书,所以请参考这篇文档 (opens new window)解决TCP证书终结问题