- kind
- Hardware requirements
- OS Supported
- Features
- Dependencies
- Creating your kind clusters
- Get ingresses
- Cleanup / Uninstall
KinD (Kubernetes in Docker) with extra tools for development environments.
- Attention:
Despite the name, the developers of this project did not create the kind tool. We just automate the creation of a Kubernetes cluster using
kind
and deploy some useful services to the development/test environment.
A cluster with 2 nodes requires (not counting the amount of hardware resources needed to run the applications you intend to deploy on the cluster).
- CPU: 1vCPU with 2 GHz
- Memory: 2 GB
- HD: 20 GB
Tested with the following Operating Systems (OS):
- Red Hat/Centos/Fedora
- Debian/Ubuntu
- Calico CNI
- OpenEBS for Dynamic Volume Provisioning
- MetalLB for LoadBalancing
- Ingress NGINX with default backend
- Linkerd for Service Discovery and service mesh with dashboard
- Istio for Service Discovery and service mesh with dashboard
- Example pod with installed ingress entrypoint
Install dependecies following the instructions on the REQUIREMENTS.md file.
- jq - Command line JSON processor
- openssl - Command line SSL/TLS tool
- kubectl
- docker
- kind
- helm
- linkerd
- istio
Create a kind cluster using the following commands:
Linkerd for Service Discovery and Service Mesh
chmod +x createCluster.sh
./createCluster.sh
Istio for Service Discovery and Service Mesh
chmod +x ./istio/createClusterWithIstio.sh
./istio/createClusterWithIstio.sh
Wait a few minutes (about 10 to 15 minutes) while the cluster is being created and services are being deployed.
Get the addresses of the applications to be accessed in the browser:
kubectl get ingress -A
Linkerd default username and password:
user: admin
password: admin
If using'createClusterWithIstio.sh ' to access the application, just through the IP provided by metallb.
To get the addresses of the applications, just find the IP:
kubectl get services --namespace istio-system istio-ingressgateway --output jsonpath='{.status.loadBalancer.ingress[0].ip}'
Ex: curl https://172.18.0.130/productpage
Get the list of clusters created with kind:
kind get clusters
Remove a kind cluster:
kind delete clusters <clusterName>
Remove all clusters created with kind:
kind delete clusters $(kind get clusters)