# Installation

Bindplane is fully supported on Kubernetes.

### Prerequisites

#### Helm

Bindplane is deployed with [Helm](https://helm.sh/). Make sure you have Helm installed on your workstation.

The Bindplane Helm Chart source can be found [here](https://github.com/observIQ/bindplane-op-helm).

#### Supported Distributions

The following Kubernetes distributions are officially supported:

* Google Kubernetes Engine (GKE)
* Amazon Elastic Kubernetes Service (EKS)
* Azure Kubernetes Service (AKS)
* OpenShift 4.x

Self-managed Kubernetes clusters are supported. See the [System Requirements](/deployment/kubernetes/server/installation/single-instance.md) section for details.

### Installation

Bindplane supports two architectures for Kubernetes. Single instance ([StatefulSet](/deployment/kubernetes/server/installation/single-instance.md)) and high availability ([Deployment](/deployment/kubernetes/server/installation/high-availability.md)).

The StatefulSet supports running Bindplane as a single pod without dependencies. It does not require a dedicated database or event bus. The StatefulSet is suitable for simple environments where Bindplane can be scaled vertically and 100% uptime is not a requirement.

The Deployment supports running Bindplane with multiple pods. Providing resiliency and load balancing among the Bindplane instances. When using the Deployment architecture, a dedicated database and event bus are required. The Deployment is suitable for environments where horizontal scaling and uptime are requirements.

* [Installation Guide](/deployment/kubernetes/server/installation/single-instance.md)
* [High Availability Installation Guide](/deployment/kubernetes/server/installation/high-availability.md)

### Usage

Once Bindplane Server is deployed, it can be reached by the remote URL endpoint. By default, the remote URL is set to the service endpoint.

```
BINDPLANE_REMOTE_URL=http://bindplane.bindplane.svc.cluster.local:3001
```

This remote URL is suitable for deploying collectors within the cluster. If you would like to reach Bindplane from outside of the cluster, see the [Next Steps](#next-steps) section.

When not exposing Bindplane with ingress, you can use port forwarding to connect to the web interface.

```bash
kubectl \
    -n bindplane \
    port-forward service/bindplane 3001:3001
```

Navigate to [http://localhost:3001](http://localhost:3001/) on your workstation.

### Next Steps

#### Collector Installation

With Bindplane deployed, you can move on to installing collectors to your cluster. See the [Kubernetes Agent Installation](/deployment/kubernetes/collector/install.md) documentation for details.

#### Ingress

If you would like to reach Bindplane from outside of the cluster (web interface, agent connections, etc), follow the [Bindplane Server Ingress](/deployment/kubernetes/server/components/kubernetes-ingress.md) documentation.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.bindplane.com/deployment/kubernetes/server/installation.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
