Git Product home page Git Product logo

emqx-operator's Introduction

EMQX Operator

Visit emqx.io for the full documentation, examples and guides.

GitHub Release Docker Pulls codecov

Overview

The EMQX Operator provides Kubernetes native deployment and management of EMQX, including EMQX Broker and EMQX Enterprise. The purpose of this project is to simplify and automate the configuration of the EMQX cluster.

The EMQX Operator includes, but is not limited to, the following features:

  • Simplified Deployment EMQX: Declare EMQX clusters with EMQX custom resources and deploy them quickly. For more details, please check Getting Started.

  • Manage EMQX Cluster: Automate operations and maintenance for EMQX, including cluster upgrades, runtime data persistence, updating Kubernetes resources based on the status of EMQX, etc. For more details, please check Manage EMQX.

EMQX and EMQX Operator compatibility

EMQX Enterprise

EMQX Enterprise Version EMQX Operator Version APIVersion Kind
4.3.x (included) ~ 4.4 1.2.1, 1.2.2, 1.2.3 apps.emqx.io/v1beta3 EmqxEnterprise
4.4.6 (included) ~ 4.4.8 1.2.5 apps.emqx.io/v1beta3 EmqxEnterprise
4.4.8 (included) ~ 4.4.14 1.2.6, 1.2.7, 1.2.8, 2.0.0, 2.0.1, 2.0.2, 2.0.3 apps.emqx.io/v1beta3 EmqxEnterprise
4.4.14 (included) or higher 4.4.x 2.1.0, 2.1.1 apps.emqx.io/v1beta4 EmqxEnterprise
5.0.0 (included) ~ 5.0.23 2.0.0, 2.0.1, 2.0.2, 2.0.3, 2.1.0, 2.1.1 apps.emqx.io/v2alpha1 EMQX
5.1.1 or higher 2.2.0 apps.emqx.io/v2beta1 EMQX

EMQX Open Source

EMQX Open Source Version EMQX Operator Version APIVersion Kind
4.3.x (included) ~ 4.4 1.2.1, 1.2.2, 1.2.3 apps.emqx.io/v1beta3 EmqxBroker
4.4.6 (included) ~ 4.4.8 1.2.5 apps.emqx.io/v1beta3 EmqxBroker
4.4.8 (included) ~ 4.4.14 1.2.6, 1.2.7, 1.2.8, 2.0.0, 2.0.1, 2.0.2, 2.0.3 apps.emqx.io/v1beta3 EmqxBroker
4.4.14 or higher 4.4.x 2.1.0, 2.1.1 apps.emqx.io/v1beta4 EmqxBroker
5.0.6 (included) ~ 5.0.8 2.0.0, 2.0.1, 2.0.3 apps.emqx.io/v2alpha1 EMQX
5.0.8 (included) ~ 5.0.14 2.0.2 apps.emqx.io/v2alpha1 EMQX
5.0.14 (included) ~ 5.0.23 2.1.0, 2.1.1 apps.emqx.io/v2alpha1 EMQX
5.1.1 or higher 2.2.0 apps.emqx.io/v2beta1 EMQX

How to selector Kubernetes version

The EMQX Operator requires a Kubernetes cluster of version >=1.24.

Kubernetes Versions EMQX Operator Compatibility Notes
1.24 or higher All functions supported
1.22 (included) ~ 1.23 Supported, except MixedProtocolLBService EMQX cluster can only use one protocol in LoadBalancer type of Service, for example TCP or UDP.
1.21 (included) ~ 1.22 Supported, except pod-deletion-cost When using EMQX Core + Replicant mode cluster, updating the EMQX cluster cannot accurately delete Pods.
1.20 (included) ~ 1.21 Supported, manual .spec.ports[].nodePort assignment required if using NodePort type of Service For more details, please refer to Kubernetes changelog.
1.16 (included) ~ 1.20 Supported, not recommended due to lack of testing
Lower than 1.16 Not supported apiextensions/v1 APIVersion is not supported.

CustomResourceDefinitions

A core feature of the EMQX Operator is to monitor the Kubernetes API server for changes to specific objects and ensure that the running EMQX deployments match these objects. The Operator acts on the following custom resource definitions (CRDs).

For more details on EMQX, please check the reference document.

The EMQX Operator automatically detects changes on any of the above custom resource objects and ensures that running deployments are kept in sync with the changes.

Getting Start

For more information on getting started, see the getting started.

Public Cloud Platform Deployment Guide

Public Cloud Platform Deployment Guide
AWS Deploy EMQX on Amazon Elastic Kubernetes Service
Azure Deploy EMQX on Azure Kubernetes Service
Google Cloud Deploy EMQX on Google Cloud GKE
Alibaba Cloud Deploy EMQX on Alibaba Cloud ACK
Huawei Cloud Deploy EMQX on Huawei Cloud CCE
Tencent Cloud Deploy EMQX on Tencent Cloud TKE

Development

Prerequisites

  • Golang environment
  • docker (used for creating container images, etc.)
  • Kubernetes cluster
  • teleperence

Install Teleperence for once

make telepresence

Connect to cluster

./bin/telepresence connect

Contributing

Many files (API, config, controller, hack,...) in this repository are auto-generated. Before proposing a pull request:

  1. Commit your changes.
  2. make and make manifests
  3. Commit the generated changes.

Troubleshooting

Check the troubleshooting documentation for common issues and frequently asked questions (FAQ).

emqx-operator's People

Contributors

rory-z avatar gala-r avatar kiragoo avatar jacky-xbb avatar logo306142054 avatar swilder-m avatar yinbo3 avatar dependabot[bot] avatar jaxwood avatar lenalenapan avatar dshmatov avatar wuxingzhong avatar magichan avatar josex2r avatar rouke-broersma avatar l-607 avatar jbrejnholt avatar daadu avatar chunyilyu avatar alessandroros avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.