Default kubernetes version: 1.33.1
Available kubernetes versions:
| Minor version | versions |
|---|---|
| 1.31.x | not supported |
| 1.32.x | 1.32.0, 1.32.1, 1.32.2, 1.32.3, 1.32.4 |
| 1.33.x | 1.33.0, 1.33.1 |
Install:
curl -O https://raw.githubusercontent.com/bashtools/mok/refs/heads/master/package/mok
chmod +x mok
sudo mv mok /usr/local/bin/Create cluster:
mok build image --get-prebuilt-image
mok create cluster myk8s --masters 1 --publish
Use cluser:
export KUBECONFIG=/var/tmp/admin-myk8s.conf
kubectl get nodes
kubectl get pods --all-namespaces
kubectl run --privileged --rm -ti alpine --image alpine /bin/sh
Delete cluster:
mok delete cluster myk8s
MacOS
- Mok will will install any required packages using Homebrew, and will prompt you before doing so.
- To see exactly how and what will be installed, see
src/macos.sh.
Fedora Desktop or Server
- Install Podman.
Use curl to download mok and move it to /usr/local/bin:
curl -O https://raw.githubusercontent.com/bashtools/mok/refs/heads/master/package/mok
chmod +x mok
sudo mv mok /usr/local/bin/mok build image --get-prebuilt-imagemok create cluster myk8s --masters 1 --publishFor Mac users --publish must be used - but it's optional for Linux users:
Naturally, the kubectl command is needed for this.
export KUBECONFIG=/var/tmp/admin-myk8s.conf
kubectl get nodes
kubectl get pods --all-namespaces# --privileged is required if you want to `ping` a host
kubectl run --privileged --rm -ti alpine --image alpine /bin/shmok -h
mok create -h
mok build -h
mok machine -h
# ... etc ...mok delete cluster myk8sOn Mac OS do, mok machine stop, to stop the podman machine and free up resources.
mok machine destroyIf mok installed Homebrew, then remove homebrew and all its installed packages with:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)"
Then to completely remove any left over directories run:
sudo rm -rf /opt/homebrew
Finally, delete mok, with:
sudo rm /usr/local/bin/moksudo rm /usr/local/bin/mok
# If you used git and make, then delete the git repo
rm -rf mok/Then delete the podman images that were built by mok build.
- With multiple master nodes only the first master is set up
- Currently only single node clusters can be stopped and restarted
- For Mac, if you installed Homebrew with
mokthen you should run/opt/homebrew/bin/brew doctorand follow the instructions shown there if you want to use Homebrew outside of Mok, or if you want to run the utilities that mok installed (podman for example).
-
Podman Desktop is not required
-
On Mac OS all the required packages are installed for you
-
On Mac OS it uses a non-default podman machine, so won't mess up your existing podman installation
-
Builds kubernetes master and worker nodes in containers
-
Very simple to use without need for YAML files
-
After creating the image a single node cluster builds in under 60 seconds
-
For multi-node clusters the 'create cluster' command returns only when kubernetes is completely ready, with all nodes and pods up and ready.
-
Can skip setting up kubernetes on the master and/or worker node (good for learning!)
- In this case the set-up scripts are placed in
/rootin the containers and can be run by hand - Can do kubernetes the hard way (see kthwic)
- In this case the set-up scripts are placed in
-
mok buildandmok createcan show extensive kubernetes logs with--tailf
Follow Mok on BlueSky or give Mok a star.
