From 2125175514c283936bcc6531072544dff8b87206 Mon Sep 17 00:00:00 2001 From: mohin7 Date: Tue, 14 Nov 2023 17:23:41 +0600 Subject: [PATCH] Add openSearch operator article Signed-off-by: mohin7 --- .../hero.jpg | Bin 0 -> 79550 bytes .../index.md | 300 ++++++++++++++++++ 2 files changed, 300 insertions(+) create mode 100644 content/articles/deploy-opensearch-via-kubernetes-opensearch-operator/hero.jpg create mode 100644 content/articles/deploy-opensearch-via-kubernetes-opensearch-operator/index.md diff --git a/content/articles/deploy-opensearch-via-kubernetes-opensearch-operator/hero.jpg b/content/articles/deploy-opensearch-via-kubernetes-opensearch-operator/hero.jpg new file mode 100644 index 0000000000000000000000000000000000000000..60b32d9c086dea4fca48cc6df064c34703bd1f64 GIT binary patch literal 79550 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 literal 0 HcmV?d00001 diff --git a/content/articles/deploy-opensearch-via-kubernetes-opensearch-operator/index.md b/content/articles/deploy-opensearch-via-kubernetes-opensearch-operator/index.md new file mode 100644 index 0000000000..7a6c552246 --- /dev/null +++ b/content/articles/deploy-opensearch-via-kubernetes-opensearch-operator/index.md @@ -0,0 +1,300 @@ +--- +title: Deploy OpenSearch via Kubernetes OpenSearch Operator +Description: Explore a simplified, step-by-step guide for deploying OpenSearch on Kubernetes using the Kubernetes OpenSearch operator. +alt: OpenSearch Operator +date: "2023-11-03" +--- + +# Deploy OpenSearch via Kubernetes OpenSearch Operator + +![Kubernetes OpenSearch](./hero.jpg "OpenSearch Operator") + +In the current landscape of containerized applications and orchestration, the efficient deployment and upkeep of databases like OpenSearch require a versatile and efficient approach. The **Kubernetes OpenSearch Operator** streamlines the process of configuring, sustaining, and scaling OpenSearch databases within a Kubernetes environment. This guide delves into the fundamentals of installing OpenSearch databases using the OpenSearch Kubernetes Operator, examining its benefits, features, and step-by-step guidelines. By adopting this solution, you can achieve enhanced flexibility and automation in the provisioning and administration of your OpenSearch databases, all while adhering to best practices for containerized infrastructure. + +Kubernetes is a groundbreaking open-source platform that streamlines the entire workflow for containerized applications. It emphasizes that Kubernetes provides the capability to easily deploy, scale, and manage applications, whether they are running on a single machine or distributed across a multi-cloud environment. + +Kubernetes streamlines the administration of multiple containers by automating critical functions such as load balancing, dynamic scaling, and ensuring application robustness with automatic recovery mechanisms. When introducing a new version of your application, Kubernetes takes charge of the update process, minimizing downtime and mitigating the risk of errors. + +With a simple declarative configuration, you can specify your desired application behavior, and Kubernetes ensures it follows those specifications. This allows you to concentrate on developing exceptional applications, while Kubernetes guarantees their reliable and efficient operation. Now, you can simplify the provisioning and troubleshooting process and empowering you to confidently tackle the complexity of application deployment. + +## Why OpenSearch in Kubernetes +OpenSearch, an open-source and exceptionally scalable search engine explicitly created for processing extensive volumes of data. It has many features, including full-text search, structured search, analytics, and logging, OpenSearch proves versatile and applicable across a diverse array of applications and use scenarios. Particularly advantageous for enterprises dealing with substantial real-time data management and search requirements, OpenSearch stands out for its ability to deliver rapid and precise search results. + +OpenSearch facilitates horizontal scaling across multiple nodes, ensuring efficient handling of large data loads while maintaining continuous accessibility. Alongside its distributed design, OpenSearch accommodates a versatile data format, allowing the storage and indexing of diverse data types, such as text, numerical data, and geospatial information, whether structured or unstructured. + +Integrating OpenSearch within a Kubernetes environment offers a powerful combination that brings a host of advantages. It allows for the seamless management of OpenSearch clusters at scale, ensuring optimal resource utilization and high availability, all within the robust orchestration framework of Kubernetes. Kubernetes simplifies the deployment and scaling of OpenSearch instances, making it easier to adapt to evolving data demands. Additionally, it provides a unified platform for handling both application and data infrastructure, streamlining operations and reducing complexity. This integration enhances the overall efficiency and resilience of OpenSearch deployments, facilitating real-time data processing and search capabilities within Kubernetes clusters, making it a formidable solution for modern data-driven applications. + +## Deploying OpenSearch on Kubernetes +### Pre-requisites +We have to set up the environment to deploy OpenSearch on Kubernetes using a Kubernetes OpenSearch operator. A running Kubernetes cluster and a fundamental understanding of OpenSearch are required to conduct this tutorial. Here, we are going to create our kubernetes cluster using [Kind](https://kubernetes.io/docs/tasks/tools/#kind). Additionally, you need to install [Helm](https://helm.sh/docs/intro/install/) to your Kubernetes cluster. + +In this article, We will use the Kubernetes OpenSearch operator [KubeDB](https://kubedb.com/) to deploy OpenSearch on Kubernetes. We must have KubeDB installed in our Kubernetes cluster. KubeDB provides supports for the official Elasticsearch by [Elastic](https://www.elastic.co/) and [OpenSearch](https://opensearch.org/) by AWS, but also other open source distributions like [SearchGuard](https://search-guard.com/) and [OpenDistro](https://opendistro.github.io/for-elasticsearch/). **KubeDB provides all of these distribution’s support under the Elasticsearch CR of KubeDB**. To set up KubeDB in our Kubernetes cluster, we require a license. Through the [Appscode License Server](https://license-issuer.appscode.com/), we can get a free enterprise license. We must provide our Kubernetes cluster ID to obtain a license. Run the following command below to get the cluster ID. + +```bash +$ kubectl get ns kube-system -o jsonpath='{.metadata.uid}' +6c08dcb8-8440-4388-849f-1f2b590b731e +``` + +The license server will email us with a "license.txt" file attached after we provide the necessary data. Run the following commands listed below to install KubeDB. + +```bash +$ helm repo add appscode https://charts.appscode.com/stable/ +$ helm repo update +$ helm install kubedb appscode/kubedb \ + --version v2023.11.2 \ + --namespace kubedb --create-namespace \ + --set kubedb-provisioner.enabled=true \ + --set kubedb-ops-manager.enabled=true \ + --set kubedb-autoscaler.enabled=true \ + --set kubedb-dashboard.enabled=true \ + --set kubedb-schema-manager.enabled=true \ + --set-file global.license=/path/to/the/license.txt +``` + +Verify the installation by the following command, + +```bash +$ kubectl get pods --all-namespaces -l "app.kubernetes.io/instance=kubedb" +NAMESPACE NAME READY STATUS RESTARTS AGE +kubedb kubedb-kubedb-autoscaler-8685b5f5f8-kwh9r 1/1 Running 0 2m38s +kubedb kubedb-kubedb-dashboard-677448dff8-ggrz6 1/1 Running 0 2m38s +kubedb kubedb-kubedb-ops-manager-f4d869f54-xbtd7 1/1 Running 0 2m38s +kubedb kubedb-kubedb-provisioner-778795d79-zbn74 1/1 Running 0 2m38s +kubedb kubedb-kubedb-schema-manager-64f9cc9445-vwfsk 1/1 Running 0 2m38s +kubedb kubedb-kubedb-webhook-server-85cb5f5fdb-jtpgt 1/1 Running 0 2m38s +``` +We can go on to the next stage if every pod status is running. + +## Create a Namespace +Now we'll create a new namespace in which we will deploy OpenSearch. To create a namespace, we can use the following command: + +```bash +$ kubectl create namespace os-demo +namespace/os-demo created +``` + +## Deploy OpenSearch via Kubernetes OpenSearch operator +We need to create a yaml configuration to deploy OpenSearch on Kubernetes. And we will apply this yaml below, + +```yaml +apiVersion: kubedb.com/v1alpha2 +kind: Elasticsearch +metadata: + name: os-cluster + namespace: os-demo +spec: + enableSSL: true + version: opensearch-2.8.0 + storageType: Durable + topology: + master: + replicas: 2 + resources: + storage: + storageClassName: "standard" + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + data: + replicas: 2 + resources: + storage: + storageClassName: "standard" + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + ingest: + replicas: 2 + resources: + storage: + storageClassName: "standard" + accessModes: + - ReadWriteOnce + resources: + requests: + storage: 1Gi + terminationPolicy: WipeOut +``` + +You can see the detailed yaml specifications in the [Kubernetes OpenSearch](https://kubedb.com/docs/latest/guides/elasticsearch/quickstart/overview/opensearch/) documentation. + +We will save this yaml configuration to `os-cluster.yaml`. Then create the above OpenSearch object. + +```bash +$ kubectl apply -f os-cluster.yaml +elasticsearch.kubedb.com/os-cluster created +``` + +If all the above steps are handled correctly and the OpenSearch is deployed, you will see that the following objects are created: + + +```bash +$ kubectl get all -n os-demo +NAME READY STATUS RESTARTS AGE +pod/os-cluster-data-0 1/1 Running 0 4m37s +pod/os-cluster-data-1 1/1 Running 0 2m39s +pod/os-cluster-ingest-0 1/1 Running 0 4m47s +pod/os-cluster-ingest-1 1/1 Running 0 2m42s +pod/os-cluster-master-0 1/1 Running 0 4m42s +pod/os-cluster-master-1 1/1 Running 0 2m36s + +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +service/os-cluster ClusterIP 10.96.99.212 9200/TCP 4m55s +service/os-cluster-master ClusterIP None 9300/TCP 4m55s +service/os-cluster-pods ClusterIP None 9200/TCP 4m55s + +NAME READY AGE +statefulset.apps/os-cluster-data 2/2 4m37s +statefulset.apps/os-cluster-ingest 2/2 4m47s +statefulset.apps/os-cluster-master 2/2 4m42s + +NAME TYPE VERSION AGE +appbinding.appcatalog.appscode.com/os-cluster kubedb.com/elasticsearch 2.8.0 4m37s + +NAME VERSION STATUS AGE +elasticsearch.kubedb.com/os-cluster opensearch-2.8.0 Ready 4m55s +``` + +We have successfully deployed OpenSearch to Kubernetes via the Kubernetes OpenSearch operator. Now, we will connect to the OpenSearch database to insert some sample data and verify whether our OpenSearch is usable or not. First, check the database status, + +```bash +$ kubectl get es -n os-demo os-cluster +NAME VERSION STATUS AGE +os-cluster opensearch-2.8.0 Ready 4m59s +``` +## Insert sample data to the OpenSearch database + +Now, we will create few indexes in OpenSearch. The Kubernetes OpenSearch operator establishes a governing service with the name of the OpenSearch object itself when OpenSearch yaml is deployed. Using this service, we will port-forward to the database from our local workstation and establish a connection. After that, we'll add some data to OpenSearch. + +## Port-forward the Service +KubeDB will create few Services to connect with the database. Let’s see the Services created by KubeDB for our OpenSearch, + +```bash +$ kubectl get service -n os-demo -l=app.kubernetes.io/instance=os-cluster +NAME TYPE CLUSTER-IP EXTERNAL-IP PORT(S) AGE +os-cluster ClusterIP 10.96.220.157 9200/TCP 5m +os-cluster-master ClusterIP None 9300/TCP 5m +os-cluster-pods ClusterIP None 9200/TCP 5m +``` +Here, we are going to use the `os-cluster` Service to connect with the database. Now, let’s port-forward the `os-cluster` Service. + +```bash +$ kubectl port-forward -n os-demo svc/os-cluster 9200 +Forwarding from 127.0.0.1:9200 -> 9200 +Forwarding from [::1]:9200 -> 9200 +``` +## Export the Credentials +Kubernetes OpenSearch operator will create some Secrets for the database. Let’s list the Secrets for our `os-cluster`. + +```bash +$ kubectl get secret -n os-demo -l=app.kubernetes.io/instance=os-cluster +NAME TYPE DATA AGE +os-cluster-admin-cert kubernetes.io/tls 3 5m +os-cluster-admin-cred kubernetes.io/basic-auth 2 5m +os-cluster-ca-cert kubernetes.io/tls 2 5m +os-cluster-client-cert kubernetes.io/tls 3 5m +os-cluster-config Opaque 3 5m +os-cluster-http-cert kubernetes.io/tls 3 5m +os-cluster-kibanaro-cred kubernetes.io/basic-auth 2 5m +os-cluster-kibanaserver-cred kubernetes.io/basic-auth 2 5m +os-cluster-logstash-cred kubernetes.io/basic-auth 2 5m +os-cluster-readall-cred kubernetes.io/basic-auth 2 5m +os-cluster-snapshotrestore-cred kubernetes.io/basic-auth 2 5m +os-cluster-transport-cert kubernetes.io/tls 3 5m +``` +Now, we can connect to the database with any of these secret that have the prefix `cred`. Here, we will use `os-cluster-admin-cred` which contains the admin level credentials to connect with the database. + +```bash +$ kubectl get secret -n os-demo os-cluster-admin-cred -o jsonpath='{.data.username}' | base64 -d +admin +$ kubectl get secret -n os-demo os-cluster-admin-cred -o jsonpath='{.data.password}' | base64 -d +t;gmkX(o!4DuU6XP +``` +We will now use curl to post some sample data into OpenSearch. Use the -k flag to disable attempts to verify self-signed certificates for testing purposes. + +```bash +$ curl -XPOST -k --user 'admin:t;gmkX(o!4DuU6XP' "https://localhost:9200/music/_doc?pretty" -H 'Content-Type: application/json' -d' + { + "Artist": "Backstreet Boys", + "Song": "Show Me The Meaning" + } + ' +{ + "_index" : "music", + "_id" : "MRIPuYsBGygDWO9F_G9o", + "_version" : 1, + "result" : "created", + "_shards" : { + "total" : 2, + "successful" : 2, + "failed" : 0 + }, + "_seq_no" : 0, + "_primary_term" : 1 +} +``` +Now, let’s verify that the index has been created successfully. + +```bash +$ curl -XGET -k --user 'admin:t;gmkX(o!4DuU6XP' "https://localhost:9200/_cat/indices?v&s=index&pretty" +health status index uuid pri rep docs.count docs.deleted store.size pri.store.size +green open .opendistro_security MtD1G8t7SCKHdRdgESbglw 1 1 10 0 120.8kb 75.4kb +green open .opensearch-observability 5miOoG23QQ2tQKJYDlDV1A 1 1 0 0 416b 208b +green open kubedb-system cL0sZYAaTEa7MeE_OYVXcg 1 1 1 270 1.3mb 706.3kb +green open music 7jmr68IFT9S5s0W_2IaP1g 1 1 1 0 9.3kb 4.6kb +green open security-auditlog-2023.11.10 EbBSYaTATuaiE7efHLFaKA 1 1 12 0 346.9kb 173.2kb +``` +Also, let’s verify the data in the indexes: + +```bash +$ curl -XGET -k --user 'admin:t;gmkX(o!4DuU6XP' "https://localhost:9200/music/_search?pretty" +{ + "took" : 93, + "timed_out" : false, + "_shards" : { + "total" : 1, + "successful" : 1, + "skipped" : 0, + "failed" : 0 + }, + "hits" : { + "total" : { + "value" : 1, + "relation" : "eq" + }, + "max_score" : 1.0, + "hits" : [ + { + "_index" : "music", + "_id" : "MRIPuYsBGygDWO9F_G9o", + "_score" : 1.0, + "_source" : { + "Artist" : "Backstreet Boys", + "Song" : "Show Me The Meaning" + } + } + ] + } +} +``` + +We’ve successfully Deploy OpenSearch to Kubernetes via **Kubernetes OpenSearch Operator** KubeDB and insert some sample data into it. + +## OpenSearch on Kubernetes: Best Practices +To ensure the robustness and reliability of your application when leveraging OpenSearch on Kubernetes through the Kubernetes OpenSearch operator, there are some best practices that you should follow: + +* **Dashboard Integration:** Deploy OpenSearch Dashboards alongside your OpenSearch cluster to access real-time performance insights and efficient data visualization. Secure OpenSearch Dashboards by implementing access controls and encryption. Leverage the dashboard features to monitor the health of your OpenSearch cluster and extract valuable performance insights for your application. + +* **High Availability:** Ensuring high availability by leveraging OpenSearch's built-in data replication capabilities. Distribute data across multiple nodes to ensure redundancy and resilience. Implement load balancing to evenly distribute traffic among nodes. + +* **Backup and Recovery:** Give precedence to backup and recovery protocols by consistently generating data backups using OpenSearch snapshots or alternative compatible backup tools. Safeguard backups by storing them in distinct locations or employing cloud storage, simulate the effectiveness of disaster recovery capabilities. Regularly assess the reliability of data restoration procedures to ensure their effectiveness in crucial scenarios. + +* **Monitoring & Security:** Implement a robust monitoring strategy using tools such as Prometheus, Grafana, or OpenSearch's native monitoring features. Keep a close eye on cluster health and performance metrics to proactively address potential issues. Strengthen security by incorporating Role-Based Access Control (RBAC) and robust authentication mechanisms. Enforce Kubernetes network policies to secure communication between OpenSearch pods and maintain a resilient security posture. + +## Conclusion +OpenSearch is a robust open-source search and analytics engine known for its capability to handle extensive and varied datasets with speed and accuracy. You have now successfully deployed an OpenSearch database on Kubernetes using the Kubernetes OpenSearch operator, a versatile solution suitable for various applications. Additional details can be found in the official [OpenSearch documentation](https://opensearch.org/). Managing databases, whether they are located on-premises or in cloud environments, demands a substantial understanding and ongoing commitment. KubeDB provides a full support solution to ensure that your database management fulfills performance and uptime requirements. Regardless of whether your database infrastructure is localized on-site, spread across diverse geographical regions, or relies on cloud services or database-as-a-service providers, KubeDB offers indispensable support in managing the complete process within a production-grade environment. +