> ## Documentation Index
> Fetch the complete documentation index at: https://notes.kodekloud.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Analytics Quickwit

> Guide to installing and configuring Quickwit search and analytics as a namespaced Glasskube package, covering S3 storage setup, deployment steps, and verifying the web UI

Welcome back.

This lesson covers Quickwit — a high-performance, cloud-object-storage-optimized search and analytics engine — and shows how to install it as a namespaced package with Glasskube. We'll explain what Quickwit is, which values you must configure, how to prepare your cluster (namespace), and how to deploy and verify Quickwit using Glasskube.

Quickwit is designed for fast, scalable search and analytics over large datasets by leveraging an optimized file format and intelligent scheduling. It externalizes data to S3 or S3-compatible object stores for cost-effective, scalable storage.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/9wfunwr4SxNjNTYq/images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/kubernetes-single-node-cluster-diagram.jpg?fit=max&auto=format&n=9wfunwr4SxNjNTYq&q=85&s=fa056b303a062afae18a718985f43615" alt="The image shows a diagram of a single-node Kubernetes cluster with components divided into &#x22;Cluster Scoped&#x22; and &#x22;Namespace Scoped&#x22; categories, including database, observability, continuous deployment, and analytics tools." width="1920" height="1080" data-path="images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/kubernetes-single-node-cluster-diagram.jpg" />
</Frame>

## Package overview

* Scope: Namespace-scoped package (Quickwit requires an existing namespace).
* Configuration: Several values must be supplied (see Required values).
* UI: Quickwit exposes a web-based UI (Glasskube provides an entry point to open it).
* Dependencies: None — Glasskube will not install additional packages for Quickwit.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/9wfunwr4SxNjNTYq/images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/sub-second-search-analytics-engine-cloud.jpg?fit=max&auto=format&n=9wfunwr4SxNjNTYq&q=85&s=e52bb05ebee3964530e0acb57fedc73e" alt="The image describes features of a sub-second search and analytics engine on cloud storage, highlighting attributes like &#x22;Namespace scoped,&#x22; &#x22;Multiple value definitions,&#x22; &#x22;Has an entry point,&#x22; and &#x22;No dependencies.&#x22;" width="1920" height="1080" data-path="images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/sub-second-search-analytics-engine-cloud.jpg" />
</Frame>

## Architecture and storage

Quickwit deploys a small set of components into the target namespace (indexer, searcher, janitor, control plane, metastore). A core design decision is that Quickwit externalizes object storage: indexes and metadata are stored in S3 or an S3-compatible object store. This approach enables high scalability and cost-efficient analytics at scale.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/9wfunwr4SxNjNTYq/images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/kubernetes-single-node-cluster-structure.jpg?fit=max&auto=format&n=9wfunwr4SxNjNTYq&q=85&s=e15dd47dec2913d35beb0704b42ea76a" alt="The image illustrates a single-node cluster structure for a Kubernetes setup, showcasing components like analytics, a database cluster, and connections to external object storage." width="1920" height="1080" data-path="images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/kubernetes-single-node-cluster-structure.jpg" />
</Frame>

## Required values (high level)

For most installations (including the demo) you will supply the following core values:

| Value               | Purpose                                                                  | Example                                    |
| ------------------- | ------------------------------------------------------------------------ | ------------------------------------------ |
| `defaultIndexUri`   | S3 URI used as the default index storage location                        | `s3://quickwit-indexes`                    |
| `metastoreUri`      | Metastore URI (can point to the same S3 bucket as the index)             | `s3://quickwit-indexes`                    |
| `s3AccessKeyId`     | S3 access key ID (or temporary/IAM-backed credentials)                   | `AKIA...`                                  |
| `s3SecretAccessKey` | S3 secret access key                                                     | `wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY` |
| `s3Region`          | AWS region for the S3 bucket (or region for your S3-compatible provider) | `us-east-1`                                |

Optional values commonly used:

* `s3Endpoint` — set for non-AWS S3-compatible endpoints (e.g., MinIO, Ceph).
* `s3Flavor` — choose the S3 flavor if your provider requires special handling.
* Custom Quickwit domain or ingress settings for production-grade exposure.

Glasskube’s Configure button for namespaced packages lets you supply these values before installation and edit them later.

<Callout icon="lightbulb" color="#1CB2FE">
  You must create the target namespace in your cluster before installing a namespaced package like Quickwit. Glasskube does not auto-create the namespace for you.
</Callout>

<Callout icon="warning" color="#FF6B6B">
  Treat S3 credentials as secrets. Do not commit access keys to version control. In production, prefer IAM roles, temporary credentials, or Kubernetes secrets referenced by the package configuration.
</Callout>

## Quickwit quickstart (local / binary / Docker)

You can validate Quickwit locally before deploying to Kubernetes.

Install or check the binary:

```bash theme={null}
# Install via Quickwit install script (downloads a release)
curl -L https://install.quickwit.io | sh
cd ./quickwit-*
./quickwit --version
```

Run the Quickwit container to check version:

```bash theme={null}
# Run the Quickwit container locally
mkdir -p qwdata
docker run --rm quickwit/quickwit --version

# On Apple Silicon or other multi-arch hosts, force linux/amd64
docker run --rm --platform linux/amd64 quickwit/quickwit --version
```

For a guided quickstart and more examples, see Quickwit's official quickstart: [https://quickwit.io/docs/quickstart/](https://quickwit.io/docs/quickstart/)

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/9wfunwr4SxNjNTYq/images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/quickwit-homepage-search-analytics-engine.jpg?fit=max&auto=format&n=9wfunwr4SxNjNTYq&q=85&s=533cc706b03bdfdf32abe84bc67310b6" alt="This image shows the homepage of quickwit.io, highlighting features of a search and analytics engine on cloud storage, with options to try it and book a demo." width="1920" height="1080" data-path="images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/quickwit-homepage-search-analytics-engine.jpg" />
</Frame>

## Installing Quickwit with Glasskube

1. Open the Glasskube UI and go to the Packages tab. Locate the Quickwit package (namespaced) and click it to open the configuration form.

2. Create the namespace if it doesn't exist. For this lesson we create `quickwit-kodekloud`.

Example: list and create the namespace:

```bash theme={null}
# List namespaces
kubectl get ns

# Create the Quickwit namespace
kubectl create namespace quickwit-kodekloud
# namespace/quickwit-kodekloud created
```

3. In Glasskube’s package configuration form:
   * Select the namespace: `quickwit-kodekloud`.
   * Set the deployment name (for example: `quickwit`).
   * Provide `defaultIndexUri` and `metastoreUri` (e.g., `s3://quickwit-indexes`).
   * Enter `s3AccessKeyId` and `s3SecretAccessKey` (use temporary credentials or an IAM-backed mechanism if possible).
   * Set `s3Region` (e.g., `us-east-1`).
   * Leave optional fields blank unless needed (e.g., `s3Endpoint` for MinIO).

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/9wfunwr4SxNjNTYq/images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/quickwit-dashboard-installation-configuration.jpg?fit=max&auto=format&n=9wfunwr4SxNjNTYq&q=85&s=979637f7a81f7ec7e51ef49c0bedaf45" alt="This image appears to show a dashboard interface for installing &#x22;quickwit&#x22; with configuration options, such as version selection, namespace, name, and several URI fields. It includes a section for configuring default index and metastore URIs among other settings." width="1920" height="1080" data-path="images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/quickwit-dashboard-installation-configuration.jpg" />
</Frame>

4. Click Install. Deployment usually completes within 1–2 minutes depending on cluster resources.

Monitor pods in the namespace:

```bash theme={null}
kubectl get pods -n quickwit-kodekloud
# Example output while pods are starting
NAME                                               READY   STATUS      RESTARTS   AGE
quickwit-quickwit-control-plane-5d9dc9b99f-761th   0/1     ContainerCreating   0          10s
quickwit-quickwit-indexer-0                        0/1     ContainerCreating   0          10s
quickwit-quickwit-janitor-56864c9b77-6sfwc         0/1     ContainerCreating   0          10s
quickwit-quickwit-metadata-cd49886bf-z8jrh         0/1     ContainerCreating   0          10s
quickwit-quickwit-searcher-0                       0/1     ContainerCreating   0          10s
```

Wait a short time and re-run the command; pods should move to Running/Ready:

```bash theme={null}
kubectl get pods -n quickwit-kodekloud
# Example output when ready
NAME                                               READY   STATUS    RESTARTS   AGE
quickwit-quickwit-control-plane-5d9dc9b99f-761th   1/1     Running   0          1m
quickwit-quickwit-indexer-0                        1/1     Running   0          1m
quickwit-quickwit-janitor-56864c9b77-6sfwc         1/1     Running   0          1m
quickwit-quickwit-metadata-cd49886bf-z8jrh         1/1     Running   0          1m
quickwit-quickwit-searcher-0                       1/1     Running   0          1m
```

Once pods are running, use Glasskube’s entry point to open the Quickwit web UI.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/9wfunwr4SxNjNTYq/images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/quickwit-ui-indexes-query-editor-screenshot.jpg?fit=max&auto=format&n=9wfunwr4SxNjNTYq&q=85&s=b584104081a6dd3da698eaecf20d8037" alt="The image shows a screenshot of the Quickwit UI featuring an &#x22;Indexes panel&#x22; with a list of indexes and a &#x22;Query editor&#x22; section for selecting and querying indexes." width="1920" height="1080" data-path="images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/quickwit-ui-indexes-query-editor-screenshot.jpg" />
</Frame>

## Using the Quickwit web UI

From the Quickwit web UI you can:

* Create and manage indexes.
* Run queries using the Query editor.
* Inspect cluster and node status.
* Use the HTTP API for ingestion and queries.

The demo environment typically provides pre-provisioned S3 credentials and example indexes so you can explore the UI without an AWS account.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/9wfunwr4SxNjNTYq/images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/quickwit-ui-interface-table-indexes.jpg?fit=max&auto=format&n=9wfunwr4SxNjNTYq&q=85&s=a3838949fd3aa2597e66fb1a4c0f0489" alt="The image shows a Quickwit UI interface displaying a table with two index entries, each with an ID, URI, creation date, and source count. The sidebar offers navigation options such as Query editor, Indexes, Cluster, Node info, and API." width="1920" height="1080" data-path="images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/quickwit-ui-interface-table-indexes.jpg" />
</Frame>

## Verification and next steps

* Confirm pods are Running and Ready in the `quickwit-kodekloud` namespace.
* Open the Quickwit web UI via Glasskube to create or query indexes.
* For production use, secure credentials via Kubernetes Secrets, consider an S3 lifecycle policy for index retention, and configure ingress/ingress TLS or a custom domain.

<Frame>
  <img src="https://mintcdn.com/kodekloud-c4ac6d9a/9wfunwr4SxNjNTYq/images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/glasskube-interface-installed-packages-diagram.jpg?fit=max&auto=format&n=9wfunwr4SxNjNTYq&q=85&s=8bb4e889f6212685d879a1df0662a9ff" alt="The image shows a Glasskube interface displaying installed and available packages, with quickwit installed and ingress-nginx available for installation." width="1920" height="1080" data-path="images/Kubernetes-Administration-Package-Management-with-Glasskube/Package-Installation/Analytics-Quickwit/glasskube-interface-installed-packages-diagram.jpg" />
</Frame>

## References

* Quickwit Quickstart — [https://quickwit.io/docs/quickstart/](https://quickwit.io/docs/quickstart/)
* Quickwit Documentation — [https://quickwit.io/docs/](https://quickwit.io/docs/)
* Kubernetes Documentation — [https://kubernetes.io/docs/](https://kubernetes.io/docs/)
* Glasskube — check your platform docs or Glasskube UI for package-specific instructions

Wrapping up

You now know the essentials for installing Quickwit as a namespaced package with Glasskube: required configuration values, namespace creation, installation steps, and basic verification. Try the hands-on exercise: follow the steps and install Quickwit in your cluster. Have fun and good luck!

<CardGroup>
  <Card title="Watch Video" icon="video" cta="Learn more" href="https://learn.kodekloud.com/user/courses/k8s-administration-package-management-with-glasskube/module/c3806869-7f9e-4cc2-8dc5-aa10304e3d1c/lesson/84ca0040-df39-4160-b462-a1e4b6ceb8aa" />

  <Card title="Practice Lab" icon="flask-conical" cta="Learn more" href="https://learn.kodekloud.com/user/courses/k8s-administration-package-management-with-glasskube/module/c3806869-7f9e-4cc2-8dc5-aa10304e3d1c/lesson/7d24f4ad-94fb-4099-b2a2-c0a8ee1837f8" />
</CardGroup>
