# Overview
This project provides an operator for managing EMQX clusters on Kubernetes.
Note: EMQX Operator Controller requires Kubernetes v1.20.0 and up.
# Running the Operator
# Prepare
We use a cert-manager (opens new window) for provisioning the certificates for the webhook server. You can follow the cert-manager documentation (opens new window) to install it.
# Install EMQX Operator
- Install by 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
2
3
- Wait EMQX Operator Controller running
$ 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
2
3
# Deploy the EMQX
# Deploy EMQX 5
Deploy EMQX Custom Resource
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
8Full example please check
emqx-full.yaml
(opens new window).Detailed explanation of each field please check v2alpha1-reference
Check EMQX Custom Resource status
$ kubectl get pods $ kubectl get emqx emqx -o json | jq ".status.emqxNodes"
1
2
# Deploy EMQX 4
Deploy EMQX Custom Resource
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
9Full example please check
emqxbroker-full.yaml
(opens new window).Detailed explanation of each field please check v1beta3-reference
Check EMQX Custom Resource status
$ kubectl get pods $ kubectl get emqxbroker emqx -o json | jq ".status.emqxNodes"
1
2
# Deploy EMQX Enterprise 4
Deploy EMQX Custom Resource
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
9Full example please check
emqxenterprise-full.yaml
(opens new window).Detailed explanation of each field please check v1beta3-reference
Check EMQX Custom Resource status
$ kubectl get pods $ kubectl get emqxenterprise emqx-ee -o json | jq ".status.emqxNodes"
1
2