# Prepare a Local Kubernetes Environment

The following tutorial uses [**kind**](https://kind.sigs.k8s.io/) to [prepare/set up a local **Kubernetes** environment](https://docs.inrupt.com/ess/2.5/installation/..#kubernetes-environment) for a local ESS standalone deployment on Linux.

1. Start **`Docker`** if it is not already running.\
   The below steps have been tested with Docker CPU setting of **`6`**.
2. Open a **`Terminal`** window.
3. [Install **kind**](https://kind.sigs.k8s.io/docs/user/quick-start#installing-from-release-binaries)**.**
4. Optional. Create a directory for your **`kind`** configuration and go to that directory.
5. Create a **`kind-config.yaml`** file:

   <pre class="language-sh"><code class="lang-sh"> cat &#x3C; kind-config.yaml
    kind: Cluster
    apiVersion: kind.x-k8s.io/v1alpha4
   <strong> name: my-local-kind
   </strong> nodes:
    - role: control-plane
      kubeadmConfigPatches:
      - |
        kind: InitConfiguration
        nodeRegistration:
          kubeletExtraArgs:
            node-labels: "ingress-ready=true"
      extraPortMappings:
      - containerPort: 80
        hostPort: 80
        protocol: TCP
      - containerPort: 443
        hostPort: 443
        protocol: TCP
    EOF
   </code></pre>

   This example configuration specifies the cluster name of **`my-local-kind`** . You can specify a different name for the cluster.
6. Create a cluster, specifying your **`kind-config.yaml`** file:

   ```sh
   kind create cluster --config=kind-config.yaml
   ```

7\. Enable [Certificate management controller](https://cert-manager.io/docs/installation/) :

```

kubectl apply -f https://github.com/jetstack/cert-manager/releases/2.5/download/cert-manager.yaml

```

8\. Wait for successful setup and rollout of the cert manager and ingress controller.

```

kubectl -n cert-manager wait --for condition=established --timeout=60s customresourcedefinition.apiextensions.k8s.io/certificates.cert-manager.io
kubectl -n cert-manager rollout status deployment/cert-manager-webhook
kubectl -n ingress-nginx rollout status deployment/ingress-nginx-controller

```

Upon successful completion, this local Kubernetes environment can be used for a [standalone ESS deployment](https://docs.inrupt.com/ess/2.5/installation/..#installation) . See [Installation](https://docs.inrupt.com/ess/2.5/installation) for details.

For more information on **kind**, see <https://kind.sigs.k8s.io/> .
