Prepare a Local Kubernetes Environment#

The following tutorial uses kind to prepare/set up a local 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.

  4. Optional. Create a directory for your kind configuration and go to that directory.

  5. Create a kind-config.yaml file:

    cat <<EOF > kind-config.yaml
    kind: Cluster
    apiVersion: kind.x-k8s.io/v1alpha4
    name: my-local-kind
    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
    

    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:

    kind create cluster --config=kind-config.yaml
    
  7. Enable Ingress controller:

    kubectl apply -f https://raw.githubusercontent.com/kubernetes/ingress-nginx/main/deploy/static/provider/kind/deploy.yaml
    
  8. Enable Certificate management controller:

    kubectl apply -f https://github.com/jetstack/cert-manager/releases/latest/download/cert-manager.yaml
    
  9. 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. See Installation for details.

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