Introducing open-source Kubernetes Operator for OpenSearch
The OpenSearch Operator is a fully open-source Kubernetes Operator, licensed as Apache 2.0, and is used for automating the deployment, provisioning, management, and orchestration of OpenSearch clusters and OpenSearch dashboards.
The Operator enables high-level API use for easily running advanced OpenSearch operations on Kubernetes.
With this release, the Operator allows for management of multiple OpenSearch clusters and OpenSearch dashboards. Using the Operator makes scaling up and down, version upgrades, rolling restarts, adjustment of memory and disk resources on the nodes, securing deployments, and managing certificates simplified and streamlined.
In the future releases, it would also allow for advanced shard allocation strategies, monitoring with Prometheus and Grafana, control of shard balancing and allocation (For example, based on AZ/rack awareness, hot/warm) and auto scaling based on usage load and resources.
The Operator is available here.
Step 1: Installation
In order to install the Operator, you can use two methods:
- Helm chart installation.
- Local installation
Helm chart installation
Artifact Hub is a web-based application that enables finding, installing, and publishing packages and configurations for CNCF projects, including publicly available distributed charts Helm charts. The deployment process is very simple with Artifact Hub, you can follow these instructions to pull and install the OpenSearch Operator under opensearch-operator-system namespace.
- Clone the repo.
make build manifeststo build the controller binary and the manifests.
- Start a Kubernetes cluster (e.g, with k3d or minikube) and make sure your
~/.kube/configpoints to it.
make installto create the CustomResourceDefinition (CRD) in the Kubernetes cluster.
There is no special recommendation on which method to use; both of them will install the OpenSearch Operator deployment and CRD on your kubernetes cluster. If you would like to explore the source code, you can use method #2.
Step 2: Deploying a new OpenSearch cluster
opensearch-operator and use
opensearch-cluster.yaml as a starting point to define your cluster.
Note that the
clusterName is also the namespace that the new cluster will reside in. Then run:
kubectl apply -f opensearch-cluster.yaml
The current installation deploys with the default demo certificate provided by OpenSearch, which is ideal for demo purposes but not safe for production use. We recommend replacing the demo certificates with trusted certificate authority (CA)-provided certificates for any production use.
Step 3: Deleting an OpenSearch cluster
In order to delete the cluster, please delete your OpenSearch cluster resource; this will delete the cluster namespace and all its resources.
kubectl get opensearchclusters --all-namespaces
kubectl delete opensearchclusters my-cluster -n <namespace>
The joint team is hard at work further developing the Operator and adding even more powerful capabilities. In the meantime, please feel free to test the Operator, contribute feedback, or contribute to the development of the Operator. If there are more features you’d like to see or contribute, please feel free to create an issue.
Opster’s products and services optimize the performance of Elasticsearch and OpenSearch deployments, improve stability, and reduce hardware costs.