A Kubernetes Operator is an application-specific controller that automates deployment and management of a specialized application. It encodes operational knowledge that basic StatefulSets cannot provide, such as reconfiguring a MongoDB replica set after scaling and responding to node failures. section 16.4
An Operator extends the Kubernetes API with custom object types. You create an instance of that custom resource; the Operator then creates the Deployments, StatefulSets, Pods, and supporting objects required to run the application. section 16.4 section 16.5
Figure 16.10 Managing an application through custom resources and operators
The lifecycle relationship is: a custom resource represents the desired application, and the Operator reconciles it by creating the underlying Kubernetes objects. section 16.4
Installing the MongoDB Community Operator
Install the CustomResourceDefinition for the MongoDBCommunity kind, apply the supporting security manifests, and create the Operator Deployment in the mongodb namespace. Verify it with `kubectl get pods -n mongodb`; a Running Operator is ready to manage MongoDB, but does not deploy MongoDB until you create a MongoDBCommunity object. section 16.4.1






