Skip to content

Deploy a Local Demo Kubernetes Cluster

If you don't have access to a managed Kubernetes cluster you can deploy one on your local machine or VM. This document describes deploying a cluster with kind. Use the kind site directly to find additional configuration.

Demo Use Only

The instructions in this document are for testing and learning, and not intended for use in production.

Prerequisites

Docker System Resources

Docker on linux is typically installed with root privileges and thus has access to the full resources of the machine. Docker for Mac and Windows has a UI to set the resources allocated to docker. Our test Docker for Mac is running with 3 CPUs and 6 GB Memory. Adjust as necessary to meet your needs.

Steps

  1. Install kind on your platform.

  2. Create a kind cluster with our sample .yaml file to enable ingress (application network exposure). Source yaml available here

    kind create cluster --config=kind.yaml
    
  3. Test cluster health by running the following command:

    kubectl cluster-info
    kubectl version
    kubectl get nodes
    
  4. Next, install the nginx-ingress-controller for kind. Source yaml available here

    kubectl apply -f kind-nginx.yaml
    
  5. Once the nginx deployment is in a healthy state, run:

    kubectl wait --namespace ingress-nginx \
      --for=condition=ready pod \
      --selector=app.kubernetes.io/component=controller \
      --timeout=90s
    
  6. Verify nginx-ingress-controller is working:

    curl localhost
    
    <html>
    <head><title>404 Not Found</title></head>
    <body>
    <center><h1>404 Not Found</h1></center>
    <hr><center>nginx</center>
    </body>
    </html>
    

Our examples will use the domain *ping-local.com for accessing applications. You can add all expected hosts to /etc/hosts:

echo '127.0.0.1 myping-pingaccess-admin.ping-local.com myping-pingaccess-engine.ping-local.com myping-pingauthorize.ping-local.com myping-pingauthorizepap.ping-local.com myping-pingdataconsole.ping-local.com myping-pingdelegator.ping-local.com myping-pingdirectory.ping-local.com myping-pingdatagovernance.ping-local.com myping-pingdatagovernancepap.ping-local.com myping-pingfederate-admin.ping-local.com myping-pingfederate-engine.ping-local.com' | sudo tee -a /etc/hosts > /dev/null

Setup is complete.

Your local Kubernetes environment should be ready to deploy our Helm examples