Create and administer a local one or multi-node Kubernetes cluster(s) in Docker container(s) with properly configured Helm, Ingress Controller, MetalLB, Metrics Server, and Kubernetes Dashboard with simple interactive commands.
Supported Opt-In Software: Docker Container Registry, and Weave Scope.
To create a local one or multi-node Kubernetes (K8s) cluster(s) - please run:
## extra args are optional.
#
kindadm --nodes=[1-99] --k8s_ver=1.[x].[x] --helm_ver=[2/3].[x].[x]
To purge interactively any created cluster(s):
kindadm --purge
# kindadm -h
Usage:
--all-labelled,-al Set labels on all K8s nodes.
--all-tainted,-at Set taints on all K8s nodes. A different label can be defined.
--create-registry,-cr Create local container registry for K8s cluster(s).
--half-labelled,-hl Set labels on half K8s nodes.
--half-tainted,-ht Set taints on half K8s nodes. A different label can be defined.
--helm_ver,-hv Set Helm version to be installed.
--k8s_ver,-v Set K8s version to be deployed.
--list-oa,-loa List supported optional app(s).
--nodes,-n Set number of K8s nodes to be created.
--opt-apps,-oa Deploy supported optional app(s).
--purge,-p Purge interactively any existing cluster(s) and related resources.
--sys_wide,-sw Install prerequisites system-wide.
--help,-h Prints this message.
Example:
kindadm -n=2 -v=1.19.1 -hl='nodeType=devops' -ht -oa=weave-scope -cr -hv=2 -sw
To access Kubernetes Dashboard from your local workstation, you must create a secure channel to your Kubernetes cluster. Run the following command:
kubectl proxy
Now you can access the dashboard at:
To access Weave Scope (if deployed) from your local workstation, run the following command:
kubectl port-forward -n weave svc/weave-scope-weave-scope 80
Now you can access the Weave Scope Frontend at:
By default kindadm
does the following:
- Checks and advises (no install) on the system-wide prerequisites:
- Linux Docker Container Runtime.
- Checks and installs in a self-contained
.cache
dir:
kubectl
binary.helm
binary.- Helm plugins:
helm-diff
. helmfile
binary.kind
binary.
With --sys_wide
flag the aforementioned binaries will be installed system-wide (in /usr/local/bin
dir).
NOTE: Changes are applied only if needed.
My name is Miroslav Hadzhiev - a Cloud & DevOps Engineer located in Sofia, Bulgaria. I'm glad that you liked my automation.
GNU General Public License v2.0