Kind
Kind is a tool for running local Kubernetes clusters using Docker container "nodes". Kind was primarily designed for testing Kubernetes itself, but it can also be used to deploy Kubernetes applications. To install or set up kind, refer to the Kind documentation.
Requirements
- kind command-line tool installed
- docker Docker Engine installed
- kubectl command-line tool configured to communicate with your cluster
opensslandcurlcommand-line tools installed (required only when installing via kubectl)
Create kind cluster
Run the following command to create the cluster:
kind create cluster --wait 5m
The
--wait 5mflag instructs Kind to block until the control plane node reports aReadystatus, up to a maximum of five minutes.
The following output should appear on stdout:
Creating cluster "kind" ...
â Ensuring node image (kindest/node:v1.35.0) đŧ
â Preparing nodes đĻ
â Writing configuration đ
â Starting control-plane đšī¸
â Installing CNI đ
â Installing StorageClass đž
â Waiting ⤠5m0s for control-plane = Ready âŗ
âĸ Ready after 24s đ
Set kubectl context to "kind-kind"
You can now use your cluster with:
kubectl cluster-info --context kind-kind
Thanks for using kind! đ
Run the install bash script
curl -sL https://raw.githubusercontent.com/abcdesktopio/conf/main/kubernetes/install-4.4.sh |bash
show details
[INFO] abcdesktop install script namespace=abcdesktop
[OK] kubectl version
[OK] openssl version
[OK] kubectl create namespace abcdesktop
writing RSA key
writing RSA key
[OK] abcdesktop_jwt_desktop_payload keys create
writing RSA key
[OK] abcdesktop_jwt_desktop_signing keys create
writing RSA key
[OK] abcdesktop_jwt_user_signing keys create
[OK] create secret generic abcdesktopjwtdesktoppayload
[OK] create secret generic abcdesktopjwtdesktopsigning
[OK] create secret generic abcdesktopjwtusersigning
[OK] label secret abcdesktopjwtdesktoppayload
[OK] label secret abcdesktopjwtdesktopsigning
[OK] label secret abcdesktopjwtusersigning
[OK] mongod key file create
######################################################################## 100.0%
[OK] downloaded source https://raw.githubusercontent.com/abcdesktopio/conf/main/kubernetes/abcdesktop-4.4.yaml
######################################################################## 100.0%
[OK] downloaded source https://raw.githubusercontent.com/abcdesktopio/conf/main/reference/od.config.4.4
[OK] kubectl create configmap abcdesktop-config --from-file=od.config -n abcdesktop
[OK] label configmap abcdesktop-config abcdesktop/role=pyos.config
[OK] default account is created
[OK] role.rbac.authorization.k8s.io/pyos-role created
rolebinding.rbac.authorization.k8s.io/pyos-rbac created
serviceaccount/pyos-serviceaccount created
configmap/version-config created
configmap/configmap-mongodb-scripts created
secret/secret-mongodb created
configmap/abcdesktop-passwd-templatefile created
configmap/abcdesktop-group-templatefile created
configmap/abcdesktop-shadow-templatefile created
configmap/abcdesktop-gshadow-templatefile created
statefulset.apps/mongodb-od created
deployment.apps/memcached-od created
deployment.apps/router-od created
deployment.apps/nginx-od created
deployment.apps/speedtest-od created
deployment.apps/pyos-od created
deployment.apps/console-od created
deployment.apps/openldap-od created
service/desktop created
service/memcached created
service/mongodb created
service/speedtest created
service/pyos created
service/console created
service/http-router created
service/website created
service/openldap created
[OK] pyos-serviceaccount account is created
[INFO] waiting for deployment/console-od available
[OK] deployment.apps/console-od condition met
[INFO] waiting for deployment/memcached-od available
[OK] deployment.apps/memcached-od condition met
[INFO] waiting for deployment/nginx-od available
[OK] deployment.apps/nginx-od condition met
[INFO] waiting for deployment/openldap-od available
[OK] deployment.apps/openldap-od condition met
[INFO] waiting for deployment/pyos-od available
[OK] deployment.apps/pyos-od condition met
[INFO] waiting for deployment/router-od available
[OK] deployment.apps/router-od condition met
[INFO] waiting for deployment/speedtest-od available
[OK] deployment.apps/speedtest-od condition met
[INFO] waiting for pod/console-od-7789497dcf-d24rb Ready
[OK] pod/console-od-7789497dcf-d24rb condition met
[INFO] waiting for pod/memcached-od-54cdf9d684-rsqkg Ready
[OK] pod/memcached-od-54cdf9d684-rsqkg condition met
[INFO] waiting for pod/mongodb-od-0 Ready
[OK] pod/mongodb-od-0 condition met
[INFO] waiting for pod/nginx-od-6bf5fd7c7-54k7p Ready
[OK] pod/nginx-od-6bf5fd7c7-54k7p condition met
[INFO] waiting for pod/openldap-od-5c4646dc7f-bjsh9 Ready
[OK] pod/openldap-od-5c4646dc7f-bjsh9 condition met
[INFO] waiting for pod/pyos-od-6f88895f4d-g4cdm Ready
[OK] pod/pyos-od-6f88895f4d-g4cdm condition met
[INFO] waiting for pod/router-od-647b77455d-nk677 Ready
[OK] pod/router-od-647b77455d-nk677 condition met
[INFO] waiting for pod/speedtest-od-7d7c95d754-dmt5j Ready
[OK] pod/speedtest-od-7d7c95d754-dmt5j condition met
[INFO] list all pods in namespace abcdesktop
NAME READY STATUS RESTARTS AGE
console-od-7789497dcf-d24rb 1/1 Running 0 4m38s
memcached-od-54cdf9d684-rsqkg 1/1 Running 0 4m38s
mongodb-od-0 2/2 Running 0 4m38s
nginx-od-6bf5fd7c7-54k7p 1/1 Running 0 4m38s
openldap-od-5c4646dc7f-bjsh9 1/1 Running 0 4m38s
pyos-od-6f88895f4d-g4cdm 1/1 Running 0 4m38s
router-od-647b77455d-nk677 1/1 Running 0 4m38s
speedtest-od-7d7c95d754-dmt5j 1/1 Running 0 4m38s
[INFO] Setup done
[INFO] Checking the service url on http://localhost:30443
[INFO] service status is down
[INFO] Looking for a free tcp port from 30443
[OK] get a free tcp port from 30443
[INFO] If you're using a cloud provider
[INFO] Forwarding abcdesktop service for you on port=30443
[INFO] For you setup is running the command 'kubectl port-forward router-od-647b77455d-nk677 --address 0.0.0.0 30443:80 -n abcdesktop'
[OK] Please open your web browser and connect to
[INFO] http://192.168.7.119:30443/
How to Connect
The install bash script sets up a kubectl port-forward tunnel, mapping TCP port 30443 on the local host to TCP port 80 on the router pod:
kubectl port-forward router-od-647b77455d-nk677 --address 0.0.0.0 30443:80 -n abcdesktop
[OK] Please open your web browser and connect to
[INFO] http://192.168.7.119:30443/
Open the URL returned by the install bash script. In this example:
http://192.168.7.119:30443/

Your web browser displays the abcdesktop service home page.

The user Philip J. Fry is connected to the abcdesktop service.
Open the URL returned by the install bash script. In this example:
http://192.168.7.119:30443/
abcdesktop has been successfully installed using Kind, and the service home page is now accessible from your web browser.
Delete cluster
To uninstall, run the kind delete cluster command:
kind delete cluster