An Operator represents human operational knowledge in software, to reliably manage an application. They are methods of packaging, deploying, and managing a Kubernetes application.
The goal of an Operator is to put operational knowledge into software. Previously this knowledge only resided in the minds of administrators, various combinations of shell scripts or automation software like Ansible. It was outside of your Kubernetes cluster and hard to integrate. With Operators, CoreOS changed that.
Operators implement and automate common Day-1 (installation, configuration, etc) and Day-2 (re-configuration, update, backup, failover, restore, etc.) activities in a piece of software running inside your Kubernetes cluster, by integrating natively with Kubernetes concepts and APIs. We call this a Kubernetes-native application. With Operators you can stop treating an application as a collection of primitives like Pods, Deployments, Services or ConfigMaps, but instead as a single object that only exposes the knobs that make sense for the application.
Cluster Admins, Site Reliability Engineers, Software Engineers, and DevOps Engineers encapsulate their shared knowledge into an operator, offering a resilient and robust solution that manages an application in a native Kubernetes way available everywhere OLM is installed.
Go to Operator SDKAdmins, Developers, SREs.
Cluster Admins extend the Kubernetes API by installing an operator. Kubernetes Users with appropriate RBAC may then take advantage features offered by the operator using its APIs. End Users may then interact directly with the applications installed by the operator.
Go to OperatorHub.ioAdmins, Developers, Users.
Automated application provisioning and configuration management
Patch and minor version upgrades supported
App lifecycle, storage lifecycle (backup, failure recovery)
Metrics, alerts, log processing and workload analysis
Horizontal/vertical scaling, auto config tuning, abnormal detection, scheduling tuning
Operators come in different maturity levels in regards to their lifecycle management capabilities for the application or workload they deliver. The capability models aims to provide guidance in terminology to express what features users can expect from an Operator.
Learn More About The Capability Model