Skip to content

Prerequisites

What Will You Do

In this part, you will provision a lightweight Kubernetes cluster in your laptop/desktop

Estimated Time

Estimated time burden for this part is 10 minutes.


Kubernetes on Laptop

You can provision and import any Kubernetes cluster as long as it is upstream Kubernetes compliant. We have validated the following options.


Microk8s

MicroK8s is a low-ops, minimal production Kubernetes distribution well suited for workstations and desktops. Ensure you use the stable channel for a reliable outcome.

Important

The k8s mgmt operator is currently only supported on laptops/desktops based on Intel/AMD processors

Install

Follow the installation process for the operating system you are installing on. High level instructions are described below.

microk8s install --channel=1.24/stable

You should see something like the following

Launched: microk8s-vm
2022-09-26T20:17:27-07:00 INFO Waiting for automatic snapd restart...
microk8s (1.24/stable) v1.24.4 from Canonical✓ installed
microk8s-integrator-macos 0.1 from Canonical✓ installed
MicroK8s is up and running. See the available commands with `microk8s --help`.

Enable DNS

This service is required to supply address resolution services to Kubernetes. Without this service, the k8s management operator pods will not be able to reach the SaaS controller.

microk8s enable dns

You should see something like the following.

Infer repository core for addon dns
Enabling DNS
Applying manifest
serviceaccount/coredns created
configmap/coredns created
deployment.apps/coredns created
service/kube-dns created
clusterrole.rbac.authorization.k8s.io/coredns created
clusterrolebinding.rbac.authorization.k8s.io/coredns created
Restarting kubelet
DNS is enabled

Enable RBAC

MicroK8s is inherently multi-user capable. It is always desirable to have a degree of user-isolation, e.g. when multiple users are accessing a MicroK8s cluster.

microk8s enable rbac

You should see something like the following.

Infer repository core for addon rbac
Enabling RBAC
Reconfiguring apiserver
RBAC is enabled

Verify

Once installation and configuration is complete, verify if everything is in order.

microk8s kubectl get po -A

You should see something like the following.

NAMESPACE     NAME                                      READY   STATUS    RESTARTS   AGE
kube-system   coredns-7f9c69c78c-jmdkx                  1/1     Running   0          36m
kube-system   calico-kube-controllers-f7868dd95-c295x   1/1     Running   0          37m
kube-system   calico-node-qq6hr                         1/1     Running   0          37m

Important

For microk8s, you need to prefix kubectl commands with microk8s.


Docker Desktop

Docker Desktop includes a standalone Kubernetes cluster that runs locally within your Docker instance. The Kubernetes cluster runs within a Docker container on your local system, and is only for local testing.

Resources

Ensure you have sufficient resources allocated to Docker Desktop to test and experience all parts of this exercise.

Resources for Docker Desktop

Enable Kubernetes

Enabling Kubernetes in Docker Desktop literally just requires "checking a box".

Docker Desktop with Kubernetes

Verify

Once enabled, ensure you are able to kubectl to the Kubernetes cluster running in Docker Desktop. In the example below, we are running Kubernetes v1.21.4.

kubectl get node -o wide

NAME             STATUS   ROLES                  AGE   VERSION   INTERNAL-IP    EXTERNAL-IP   OS-IMAGE         KERNEL-VERSION     CONTAINER-RUNTIME
docker-desktop   Ready    control-plane,master   22h   v1.21.4   192.168.65.4   <none>        Docker Desktop   5.10.47-linuxkit   docker://20.10.8

Recap

Congratulations! At this point, you have successfully provisioned a Kubernetes cluster on your laptop. You are ready to progress to Part-1.