Kubernetes operators explained: when to use one

Kubedex

9 min read Original article ↗
AutoscalingOsirishttps://github.com/deislabs/osirisAlphaAllowing idling workloads to automatically scale-to-zero and allowing scaled-to-zero workloads to be automatically re-activated on-demand by inbound requests.Big DataAirflowhttps://github.com/GoogleCloudPlatform/airflow-operatorAlphaA Kubernetes operator to manage Apache Airflow.Big DataMXNethttps://github.com/deepinsight/mxnet-operatorAlphaApache MXNet is a modern open-source deep learning framework used to train, and deploy deep neural networks. This operator manages the tools for ML/MXNet on Kubernetes.Big DataSpark (GCP)https://github.com/GoogleCloudPlatform/spark-on-k8s-operatorAlphaKubernetes CRD operator for specifying and running Apache Spark applications idiomatically on Kubernetes.CleanupFeature Branch Janitorhttps://github.com/jw-s/feature-branch-janitorAlphaKubernetes operator used to cleanup feature branch deployments when branch has been deletedColumn DatabaseCassandra (instaclustr)https://github.com/instaclustr/cassandra-operatorAlphaCassandra is a free and open-source distributed wide column store NoSQL database management system designed to handle large amounts of data. This is a Kubernetes operator for Apache Cassandra.Column DatabaseCassandra (vgkowski)https://github.com/vgkowski/cassandra-operatorAlphaCassandra is a free and open-source distributed wide column store NoSQL database management system designed to handle large amounts of data. This ia a Kubernetes operator for Cassandra cluster automation.Column DatabaseDynamoDBhttps://github.com/microdc/k8s-dynamodb-operatorAlphaAmazon DynamoDB is a proprietary NoSQL database service that supports key-value and document data structures. This is a Kubernetes operator for DynamoDBDeploymentChart Operatorhttps://github.com/giantswarm/chart-operatorAlphaThe chart-operator deploys Helm charts by reconciling against a CNR registry.DeploymentHelm Controllerhttps://github.com/rancher/helm-controllerAlphaWatches HelmChart CRD's in a namespace and manages chart installation using Kubernetes jobsDeploymentWavehttps://github.com/pusher/waveAlphaKubernetes configuration tracking controllerDeploymentFaroshttps://github.com/pusher/farosAlphaFaros is a CRD based GitOps controllerDeploymentNamespace Configurationhttps://github.com/redhat-cop/namespace-configuration-operatorAlphaThe namespace configuration operator helps keeping a namespace's configuration aligned with one of more policies specified as a CRs.DeploymentGitlab Operatorhttps://docs.gitlab.com/charts/installation/operator.htmlAlphaGitLab OperatorDeploymentJenkins Operatorhttps://github.com/jenkinsci/kubernetes-operatorAlphaJenkins operator is a Kubernetes native operator which fully manages Jenkins on Kubernetes. It was built with immutability and declarative configuration as code in mind.Document DatabaseCouchDBhttps://github.com/nicolai86/couchdb-operatorAlphaUnknown (damaged historical cell)Document DatabaseMongo (kbst)https://github.com/kbst/mongodbAlphaMongoDB Operator for KubernetesGamesMinecraft Operatorhttps://github.com/stgarf/minecraft-operator-goAlphaA Minecraft Server OperatorIaaSCloudFormationhttps://github.com/linki/cloudformation-operatorAlphaAWS CloudFormation is a service that helps you model and set up your Amazon Web Services resources. Using this operator run and manage CloudFormation stacks and manage AWS resources from Kubernetes.IaaSAWS Service Operator (official)https://github.com/awslabs/aws-service-operatorAlphaAWS Service Operator allows you to create AWS resources using kubectlIaaSGCP Operator (paulczar)https://github.com/paulczar/gcp-cloud-compute-operatorAlphaGCP operator for KubernetesJavaWildFlyhttps://github.com/banzaicloud/wildfly-operatorAlphaWildfly Operator let's you describe and deploy JEE application on Wildfly server by creating a Custom Resource Definitions in Kubernetes.KV DatabaseAerospikehttps://github.com/travelaudience/aerospike-operatorAlphaAerospike is a NoSQL distributed database. This Operator manages Aerospike clusters atop Kubernetes, automating their creation and administration.KV DatabaseConsulhttps://github.com/python/consul-operatorAlphaA Kubernetes operator for consulKV DatabaseInfinispanhttps://github.com/banzaicloud/infinispan-operatorAlphaInfinispan is a distributed in-memory key/value data store. This operator deploys and runs an Infinispan cache cluster.KV DatabaseMemcachedhttps://github.com/ianlewis/memcached-operatorAlphaA Kubernetes operator for memcachedKV DatabaseRedis (spotahome)https://github.com/spotahome/redis-operatorAlphaRedis Operator creates/configures/manages redis clusters atop KubernetesKV DatabaseRedis Clusterhttps://github.com/AmadeusITGroup/Redis-OperatorAlphaA Kubernetes operator for running Redis in Cluster modeLucene DatabaseElasticSearch (Elastic)https://github.com/elastic/cloud-on-k8sAlphaElastic Cloud on Kubernetes automates the deployment, provisioning, management, and orchestration of Elasticsearch and KibanaMobileAndroid SDKhttps://github.com/aerogear/android-sdk-operatorAlphaA Kubernetes operator to manage android sdk packages syncronization in a persistent volumeMonitoringLogging Operatorhttps://github.com/banzaicloud/logging-operatorAlphaLogging operator for Kubernetes based on Fluentd and Fluent-bitMonitoringPrometheus Jmx Exporterhttps://github.com/banzaicloud/prometheus-jmx-exporter-operatorAlphaThis operator using Jmx Exporter enables Java processes running ok Kubernetes Pods to expose metrics collected form mBeans via JMX to Prometheus.MonitoringInfluxDB (official)https://github.com/influxdata/influxdb-operatorAlphaInfluxDB is an open-source time series database. This is the Kubernetes operator for InfluxDB and the TICK stack.MonitoringGrafanahttps://github.com/jelmersnoeck/grafana-operatorAlphaGrafana Operator for KubernetesMonitoringM3DB (official)https://github.com/m3db/m3db-operatorAlphaDistributed TSDB, Aggregator and Query Engine, Prometheus Sidecar, Metrics PlatformNetworkingIPAM Operatorhttps://github.com/inwinstack/ipam-operatorAlphaAn operator to assign IP for Kubernetes Namespace.OtherKube Replayhttps://github.com/lwolf/kubereplayAlphaSeamless integration of goReplay and KubernetesOtherJenkinshttps://github.com/samsung-cnct/jenkins-operatorAlphaKubernetes operator for Jenkins CIOtherJirahttps://github.com/jmckind/jira-operatorAlphaA Kubernetes operator to manage JIRA instances.OtherMailgunhttps://github.com/whyseco/mailgun-operatorAlphaManage mailgun configuration on KubernetesProxyKonghttps://github.com/upmc-enterprises/kong-operatorAlphaManages Kong clusters on Kubernetes.QueueKafka (krallistic)https://github.com/krallistic/kafka-operatorAlphaA Kafka Operator for KubernetesQueueRocketMQhttps://github.com/huanwei/rocketmq-operatorAlphaCreate, operate and scale self-healing Rocketmq clusters on Kubernetes.Relational DatabaseMySQL (grtl)https://github.com/grtl/mysql-operatorAlphaMySQL is an Open Source SQL database management system. This creates a Kubernetes Custom Resource for MySQL.Relational DatabaseMySQL (Oracle)https://github.com/oracle/mysql-operatorAlphaMySQL is an Open Source SQL database management system. This operator creates, operates, and scales self-healing MySQL clusters in KubernetesRelational DatabaseMySQL Operator (Banzai Cloud)https://github.com/banzaicloud/mysql-operatorAlphaCreate, operate and scale self-healing MySQL clusters in Kubernetes.Relational DatabaseRDShttps://github.com/MYOB-Technology/ops-kube-db-operatorAlphaOperator to control RDS DBs in AWSRelational DatabaseTiDB (aliyx)https://github.com/aliyx/tidb-operatorAlphaTidb-operator creates/configures/manages tidb clusters atop KubernetesRelational DatabasePercona XtraDB Clusterhttps://github.com/Percona-Lab/percona-xtradb-cluster-operatorAlphaA Kubernetes operator for Percona XtraDB Cluster based on the Operator SDKSecurityKMS Vault Operatorhttps://github.com/patoarvizu/kms-vault-operatorAlphaManage KMS-encrypted strings to inject them as Vault static secretsSecurityReplicatorhttps://github.com/rodesousa/replicatorAlphaKubernetes operator that copy secrets in all namespacesSecurityDexhttps://github.com/kubic-project/dex-operatorAlphaA Kubernetes operator for DexSecurityFalcohttps://github.com/mumoshu/falco-operatorAlphaKubernetes operator for Sysdig Falco that allows developers to manage rules for detecting intruders and backdoorsSecurityAWS Secret Operatorhttps://github.com/mumoshu/aws-secret-operatorAlphaA Kubernetes operator that automatically creates and updates Kubernetes secrets according to what are stored in AWS Secrets ManagerSecurityExternalconfig Operatorhttps://github.com/ContainerSolutions/externalconfig-operatorAlphaAn operator to fetch configuration data from cloud services and inject it in KubernetesSecurityCertmergehttps://github.com/prune998/certmerge-operatorAlphaa Kubernetes Operator that can merge many TLS secrets inside one Opaque secretsService DiscoveryZooKeeper (Nuance Mobility)https://github.com/Nuance-Mobility/zookeeper-operatorAlphaZooKeeper is a centralized service for maintaining configuration information, naming, providing distributed synchronization, and providing group services. This is an operator for ZooKeeper 3.5.xService DiscoveryZooKeeper (pravega)https://github.com/pravega/zookeeper-operatorAlphaThis operator runs a Zookeeper 3.5 cluster, and uses Zookeeper dynamic reconfiguration to handle node membership.Service DiscoveryConsul Operatorhttps://github.com/python/consul-operatorAlphaA kubernetes operator for consulStorageQuobytehttps://github.com/quobyte/kubernetes/tree/master/operatorAlphaQuobyte’s next-generation file system unifies file, block and object storage for enterprise and scientific applications.StorageRookhttps://github.com/rook/rook/tree/master/cluster/examples/kubernetesAlphaFile, Block, and Object Storage Services for your Cloud-Native EnvironmentStorageGlusterhttps://github.com/gluster/anthillAlphaA Kubernetes/OpenShift operator to manage Gluster clustersStorageMiniohttps://github.com/minio/minio-operatorAlphaMinio Operator for k8sStoragePravegahttps://github.com/pravega/pravega-operatorAlphaPravega Kubernetes OperatorTestingNetperfhttps://github.com/piontec/netperf-operatorAlphaThis is a very simple operator that can be used to test network performance between 2 pods using the netperf tool. It is also a good operator for learning puposes, as the code base is pretty small and it's described in detail in this blog post.TestingKaoshttps://github.com/arnaudmz/kaosAlphaKinda Chaos Monkey for KubernetesSecuritylessorhttps://github.com/lessor/lessorArchivedA Kubernetes Operator for managing multi-tenant workloadsAutoscalingHPA Operatorhttps://github.com/banzaicloud/hpa-operatorBetaHorizontal Pod Autoscaler operator for Kubernetes. Annotate, and let HPA operator do the rest.AutoscalingCluster Autoscalerhttps://github.com/openshift/cluster-autoscaler-operatorBetaManage Kubernetes cluster-autoscaler deploymentsAutoscalingValencehttps://github.com/valencenet/valence-manifestsBetaRightsize and Autoscale Containers Intelligently for Performance and Cost Management in Kubernetes: A SLO AutoscalerAutoscalingDrainohttps://github.com/planetlabs/drainoBetaAutomatically cordon and drain Kubernetes nodes based on node conditionsAutoscalingDeschedulerhttps://github.com/kubernetes-incubator/deschedulerBetaDescheduler, based on its policy, finds pods that can be moved and evicts themAutoscalingSpot Reschedulerhttps://github.com/pusher/k8s-spot-reschedulerBetaHandles SPOT instance schedulingBackupKanisterhttps://github.com/kanisterio/kanisterBetaKanister is an extensible framework for application-level data management on KubernetesBig DataSpark (radanalytics.io)https://github.com/radanalyticsio/spark-operatorBetaConfigMap-based operator for deploying ephemeral Apache Spark clusters and intelligent applications that spawn their own Spark clusters natively on Kubernetes and OpenShift.Big DataTensorflowhttps://github.com/kubeflow/tf-operatorBetaTools for ML/Tensorflow on Kubernetes.Big DataPyTorchhttps://github.com/kubeflow/pytorch-operatorBetaPyTorch on KubernetesCleanupKuredhttps://github.com/weaveworks/kuredBetaNode reboot daemonCleanupPod Reaperhttps://github.com/ptagr/pod-reaperBetaA kubernetes operator that reaps pods that have reached their lifetimeCleanupKube Cleanup Operatorhttps://github.com/lwolf/kube-cleanup-operatorBetaKubernetes Operator to automatically delete completed Jobs and their PodsCleanupDelete NShttps://github.com/agill17/delete-ns-operatorBetaDelete a Kubernetes Namespace thats older than some hoursCleanupJamadarhttps://github.com/stakater/JamadarBetaA kubernetes controller which cleans up cluster left-oversDeploymentKeelhttps://github.com/keel-hq/keelBetaKubernetes Operator to automate Helm, DaemonSet, StatefulSet & Deployment updatesDeploymentFluxhttps://github.com/weaveworks/fluxBetaThe GitOps Kubernetes operatorDeploymentEnvironment Operatorhttps://github.com/pearsontechnology/environment-operatorBetaKubernetes Environment ManagementDeploymentEunomiahttps://github.com/KohlsTechnology/eunomiaBetaGitOps Operator for KubernetesDeploymentQuackhttps://github.com/pusher/quackBetaIn-Cluster templating for Kubernetes manifestsDeploymentKube Applierhttps://github.com/box/kube-applierBetaenables automated deployment and declarative configuration for your Kubernetes cluster.Document DatabaseMongo (ultimaker)https://github.com/Ultimaker/k8s-mongo-operatorBetaMongoDB Operator for MongoDB Replica Sets and BackupsDocument DatabaseMongoDB (Official)https://github.com/mongodb/mongodb-enterprise-kubernetesBetaMongoDB Enterprise Operator for KubernetesDocument DatabaseMongoDB (Percona)https://github.com/Percona-Lab/percona-server-mongodb-operatorBetaA Kubernetes operator for Percona Server for MongoDBDocument DatabaseRethinkDBhttps://github.com/jmckind/rethinkdb-operatorBetaRethinkDB is a free and open-source, distributed document-oriented database. This is a Kubernetes operator to manage RethinkDB instances.Graph DatabaseArangoDBhttps://github.com/arangodb/kube-arangodbBetaArangoDB Kubernetes Operator. Start ArangoDB on Kubernetes in 5min.IaaSsvcathttps://cloud.google.com/kubernetes-engine/docs/how-to/add-on/service-catalog/install-service-catalogBetaService Catalog is a Kubernetes extension API that enables applications running on Kubernetes clusters to connect with service brokers and easily use external managed software offerings. For example, Service Catalog can connect to the Google Cloud Platform (GCP) Service Broker and easily provision GCP services.IaaSKubeVirthttps://github.com/kubevirt/kubevirtBetaKubernetes Virtualization Operator with API and runtime in order to define and manage virtual machinesIaaSOpenStackhttps://github.com/sapcc/kubernetes-operatorsBetaSAP OpenStack operator creates various resources in OpenStackIaaSVPC Peeringhttps://github.com/pickledrick/vpc-peering-operatorBetaA Kubernetes Operator to manage the lifecycle of AWS VPC Peering ConnectionsKV Databaseetcdhttps://github.com/coreos/etcd-operatorBetaetcd is a distributed key-value (k/v) store. This operator manages etcd k/v database clusters on Kubernetes.KV DatabaseRedis (jw-s)https://github.com/jw-s/redis-operatorBetaRedis operator for KubernetesLucene DatabaseElasticSearch (UPMC)https://github.com/upmc-enterprises/elasticsearch-operatorBetaElasticsearch is a distributed, RESTful search and analytics engine. This operator manages one or more elastic search clusters on Kubernetes.MobileUnifiedpushhttps://github.com/aerogear/ups-config-operatorBetaUnifiedPush Server is a server that allows sending push notifications to different (mobile) platformsMonitoringPrometheushttps://github.com/coreos/prometheus-operatorBetaPrometheus, a Cloud Native Computing Foundation project, is a systems and service monitoring system. It collects metrics from configured targets at given intervals, evaluates rule expressions, displays the results, and can trigger alerts if some condition is observed to be true. The Prometheus Operator for Kubernetes provides easy monitoring definitions for Kubernetes services and deployment and management of Prometheus instances.MonitoringSens8https://github.com/hootsuite/sens8BetaKubernetes controller for Sensu checksMonitoringAlerting Ruleshttps://github.com/MYOB-Technology/ops-kube-alerting-rules-operatorBetaKubernetes Operator for teams to create there own alerting rules as CRDsMonitoringChronologisthttps://github.com/hypnoglow/chronologistBetaContinuously annotate Helm releases in GrafanaMonitoringIngress Monitorhttps://github.com/jelmersnoeck/ingress-monitorBetaKubenetes Operator to create external monitors for selected Ingresses e.g. with StatuscakeMonitoringDynatracehttps://github.com/Dynatrace/dynatrace-oneagent-operatorBetaKubernetes/Openshift Operator for managing Dynatrace OneAgent deploymentsNetworkingExternal DNShttps://github.com/kubernetes-incubator/external-dnsBetaConfigure external DNS servers (AWS Route53, Google CloudDNS and others) for Kubernetes Ingresses and ServicesNetworkingFlannelhttps://github.com/giantswarm/flannel-operatorBetaThe flannel-operator handles flannel for Kubernetes clusters running on GiantnetesOtherKubeDBhttps://github.com/kubedb/operatorBetaKubeDB Operator. Managed a lot of major databases on KubernetesOtherHabitathttps://github.com/habitat-sh/habitat-operatorBetaA Kubernetes operator for Habitat servicesOtherMultiCluster-Controllerhttps://github.com/admiraltyio/multicluster-controllerBetaMulticluster-controller is a Go library for building Kubernetes controllers that need to watch resources in multiple clustersOtherService Level Operatorhttps://github.com/spotahome/service-level-operatorBetaManage application's SLI and SLO's easily with the application lifecycle inside a Kubernetes clusterOtherKubechainhttps://github.com/nimrodshn/kubechainBetaA simple blockchain implementation on top of kubernetesOtherOpenFaaShttps://github.com/openfaas-incubator/openfaas-operatorBetaOperator for OpenFaaS Functions on KubernetesOtherRSS Operatorhttps://github.com/beekhof/rss-operatorBetaA Kubernetes Operator for managing and recovering replicated workflowsOtherGiteahttps://github.com/integr8ly/gitea-operatorBetaAn Operator that installs Gitea. ProxyEnvoyhttps://github.com/solo-io/envoy-operatorBetaEnvoy is a Microservice Abstraction Layer (also known as an API Gateway, API Middleware or in some cases Service Mesh)Run and manage Envoy on Kubernetes simply and securely.QueueKafka (strimzi)https://github.com/strimzi/strimzi-kafka-operatorBetaOperator for running Kafka and Kafka Connect on Kubernetes and OpenShiftQueueNATShttps://github.com/nats-io/nats-operatorBetaNATS is an open-source, high-performance, lightweight and secure cloud native messaging system. This operator manages NATS clusters atop Kubernetes, automating their creation and administration.Relational DatabaseMySQL (Presslabs)https://github.com/presslabs/mysql-operatorBetaMySQL is an Open Source SQL database management system. This operator manages all the necessary resources for deploying and managing a highly available MySQL cluster. It provides efortless backups, while keeping the cluster highly-available.Relational DatabaseTiDB (Pingcap)https://github.com/pingcap/tidb-operatorBetaTiDB operator creates and manages TiDB clusters running in KubernetesRelational DatabaseVitesshttps://github.com/vitessio/vitess-operatorBetaVitess Operator provides automation that simplifies the administration of Vitess clusters on KubernetesSecuritycert-managerhttps://github.com/jetstack/cert-managerBetaAutomatically provision and manage TLS certificates in KubernetesSecurityrbacsynchttps://github.com/cruise-automation/rbacsyncBetaAutomatically sync groups in Googkle Cloud into Kubernetes RBACSecurityRBAC Managerhttps://github.com/reactiveops/rbac-managerBetaThis operator simplifies the management of RBAC Role Bindings in Kubernetes.SecurityVault (CoreOS)https://github.com/coreos/vault-operatorBeta*This is now unmaintained*. See https://github.com/coreos/vault-operator/issues/332SecurityVault (Banzai Cloud)https://github.com/banzaicloud/bank-vaultsBetaVault secures, stores, and tightly controls access to tokens, passwords, certificates, API keys, and other secrets. This operator offers a feature rich HA Vault operator with TLS, external API based re/configuration, several/automatic unseal options and more.SecurityGatekeeper (ReplicatedHQ)https://github.com/replicatedhq/gatekeeperBetaKubernetes Operator to manage Dynamic Admission Controllers using Open Policy AgentSecurityGatekeeper (OPA)https://github.com/open-policy-agent/gatekeeperBetaGatekeeper - Policy Controller for KubernetesSecurityNetwork Policyhttps://github.com/bells17/common-network-policy-operatorBetaAuto create common network policy in all namespacesSecurityRegsecrethttps://github.com/mcasimir/regsecret-operatorBetaKubernetes operator to automate imagePullSecrets creationSecurityRandom Secret Operatorhttps://github.com/mikebryant/random-secret-operatorBetaCreates Secrets containing random dataSecurityCert Operatorhttps://github.com/giantswarm/cert-operatorBetacert-operator creates/manages certificates for Kubernetes clusters running on GiantnetesSecuritySealed Secretshttps://github.com/bitnami-labs/sealed-secretsBetaA Kubernetes controller and tool for one-way encrypted SecretsService MeshFlaggerhttps://github.com/stefanprodan/flaggerBetaIstio progressive delivery Kubernetes operatorService MeshIstio Operatorhttps://github.com/banzaicloud/istio-operatorBetaIstio-operator is a Kubernetes operator to deploy and manage Istio resources for a Kubernetes cluster.StoragePVChttps://github.com/banzaicloud/pvc-operatorBetaThis operator helps to use Kubernetes Persistent Volumes easier on cloud providers by dynamically creating the required accounts, classes and more.BackupVelerohttps://velero.io/Productiongit clone https://github.com/bibinwilson/kubernetes-prometheusDocument DatabaseCouchbase (official)https://www.couchbase.com/products/cloud/kubernetesProductionThis is a paid product from CouchbaseIaaSAWS (Giant Swarm)https://github.com/giantswarm/aws-operatorProductionManages Giantnetes Kubernetes clusters running on Amazon Web ServicesIaaSAzure Operator (Giant Swarm)https://github.com/giantswarm/azure-operatorProductionAzure operator manages Kubernetes clusters running in Giantnetes on AzureJavaWebLogichttps://github.com/oracle/weblogic-kubernetes-operatorProductionOracle Weblogic Server Kubernetes OperatorMonitoringIcinga2 Operatorhttps://github.com/appscode/searchlightProductionIcinga is an open source computer system and network monitoring application. This operator provide alerts for KubernetesMonitoringJaeger (official)https://github.com/jaegertracing/jaeger-operatorProductionJaeger Operator for KubernetesMonitoringFluentD Operatorhttps://github.com/vmware/kube-fluentd-operatorProductionAuto-configuration of Fluentd daemon-set based on Kubernetes metadataOtherKVMhttps://github.com/giantswarm/kvm-operatorProductionHandles Kubernetes clusters running on a Kubernetes cluster with workers and masters in KVMs on bare metalRelational DatabasePostgreSQL (Crunchy Data)https://github.com/CrunchyData/postgres-operatorProductionPostgreSQL Operator Creates/Configures/Manages PostgreSQL Clusters on KubernetesRelational DatabasePostgreSQL (Zalando)https://github.com/zalando-incubator/postgres-operatorProductionCreate and manage PostgreSQL HA clusters on Kubernetes using PatroniSecuritySSO Operatorhttps://github.com/jenkins-x/sso-operatorProductionSingle Sign-On Kubernetes operator for Dex identity providerProxyOAuth2 Proxyhttps://github.com/pusher/oauth2_proxyAlphaA reverse proxy that provides authentication with Google, Github, and other OIDC providers