- Notifications
You must be signed in to change notification settings - Fork14
Run kubernetes on Mac or Linux in containers
License
bashtools/mok
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
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/mokchmod +x moksudo mv mok /usr/local/bin/
Create cluster:
mok build image --get-prebuilt-imagemok create cluster myk8s --masters 1 --publishUse cluser:
export KUBECONFIG=/var/tmp/admin-myk8s.confkubectl get nodeskubectl get pods --all-namespaceskubectl run --privileged --rm -ti alpine --image alpine /bin/shDelete cluster:
mok delete cluster myk8sMacOS
- 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.
Usecurl to downloadmok and move it to/usr/local/bin:
curl -O https://raw.githubusercontent.com/bashtools/mok/refs/heads/master/package/mokchmod +x moksudo mv mok /usr/local/bin/
mok build image --get-prebuilt-image
mok create cluster myk8s --masters 1 --publish
For Mac users--publish must be used - but it's optional for Linux users:
Naturally, thekubectl command is needed for this.
export KUBECONFIG=/var/tmp/admin-myk8s.confkubectl get nodeskubectl get pods --all-namespaces# --privileged is required if you want to `ping` a hostkubectl run --privileged --rm -ti alpine --image alpine /bin/shmok -hmok create -hmok build -hmok machine -h# ... etc ...mok delete cluster myk8s
On Mac OS do,mok machine stop, to stop the podman machine and free up resources.
mok machine destroy
Ifmok 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/homebrewFinally, deletemok, with:
sudo rm /usr/local/bin/mok
sudo rm /usr/local/bin/mok# If you used git and make, then delete the git reporm -rf mok/Then delete the podman images that were built bymok 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 ifyou want to use Homebrew outside of Mok, or if you want to run the utilitiesthat 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 (seekthwic)
- In this case the set-up scripts are placed in
mok buildandmok createcan show extensive kubernetes logs with--tailf
FollowMok on BlueSky or give Mok a star.
About
Run kubernetes on Mac or Linux in containers
Topics
Resources
License
Code of conduct
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.
