Installing OpenShift
Note: This is part of a series. Make sure you started here: Building a Portable Kubernetes Home Lab with OpenShift - OKD4
We are now ready to fire up our OpenShift cluster
-
Deploy the configuration in preparation for the install:
labcli --deploy -c -d=dev
-
Disconnect the lab domain from the internet:
labcli --disconnect -d=dev
-
Start the bootstrap node:
labcli --start -b -d=dev
-
KVM Based Control-Plane:
Start the control-plane nodes:
labcli --start -m -d=dev
-
Bare Metal Cluster or SNO:
Hit the power button on the control-plane NUCs
-
Monitor the bootstrap process:
labcli --monitor -b -d=dev
Note: This command does not affect to install process. You can stop and restart it safely. It is just for monitoring the bootstrap.
If you want to watch logs for issues:
ssh core@okd4-bootstrap.${SUB_DOMAIN}.${LAB_DOMAIN} "journalctl -b -f -u release-image.service -u bootkube.service"
-
You will see the following, when the bootstrap is complete:
INFO Waiting up to 20m0s for the Kubernetes API at https://api.okd4.dev.my.awesome.lab:6443... DEBUG Still waiting for the Kubernetes API: an error on the server ("") has prevented the request from succeeding INFO API v1.20.0-1085+01c9f3f43ffcf0-dirty up INFO Waiting up to 30m0s for bootstrapping to complete... DEBUG Bootstrap status: complete INFO It is now safe to remove the bootstrap resources DEBUG Time elapsed per stage: DEBUG Bootstrap Complete: 11m16s DEBUG API: 3m5s INFO Time elapsed: 11m16s
-
When the bootstrap process is complete, remove the bootstrap node:
labcli --destroy -b -d=dev
This script shuts down and then deletes the Bootstrap VM. Then it removes the bootstrap entries from the HA Proxy configuration.
-
Monitor the installation process:
labcli --monitor -i -d=dev
-
Fix for a stuck MCO
In some recent versions of OKD, the Machine Config Operator cannot complete the installation because it is looking for a non-existent machine config.
See: https://github.com/openshift/okd/issues/963
labenv -k oc delete mc 99-master-okd-extensions 99-okd-master-disable-mitigations
This will force a recreation of the control plane machine configs, and will allow the install to complete.
-
Installation Complete:
DEBUG Cluster is initialized INFO Waiting up to 10m0s for the openshift-console route to be created... DEBUG Route found in openshift-console namespace: console DEBUG OpenShift console route is admitted INFO Install complete! INFO To access the cluster as the system:admin user when using 'oc', run 'export KUBECONFIG=/Users/yourhome/okd-lab/okd-install-dir/auth/kubeconfig' INFO Access the OpenShift web-console here: https://console-openshift-console.apps.okd4.dev.my.awesome.lab INFO Login to the console with user: "kubeadmin", and password: "AhnsQ-CGRqg-gHu2h-rYZw3" DEBUG Time elapsed per stage: DEBUG Cluster Operators: 13m49s INFO Time elapsed: 13m49s
-
Post Install:
labcli --post -d=dev
-
Add Users:
Note: Make sure that the htpasswd command is installed on your system. It should be included by default on Mac OS. For Fedora, RHEL, or CentOS:
dnf install httpd-tools
Add a cluster-admin user:
labcli --user -i -a -u=admin -d=dev
Note: You can ignore the warning:
Warning: User 'admin' not found
Add a non-privileged user:
labcli --user -u=devuser -d=dev
Grow Your Lab
Add Worker Nodes
Add worker nodes to OpenShift cluster with OKD