# 使用 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
Copied!
这里我们用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
Copied!
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证书终结问题