Go to file
2026-04-16 10:44:42 +08:00
2026-04-20 02:51:02 +08:00
2026-04-17 02:42:27 +08:00
2026-04-17 02:42:27 +08:00
2026-04-06 02:20:41 +08:00
2026-04-14 03:58:23 +08:00
2026-03-25 06:29:07 +08:00
2026-04-14 03:58:23 +08:00
2026-04-01 19:28:42 +08:00
2026-03-28 20:28:22 +08:00
2026-04-17 03:16:27 +08:00
2026-03-20 14:55:16 +00:00
2026-03-25 01:15:39 +08:00
2026-04-20 02:51:02 +08:00

monok8s

An Alpine-based Kubernetes cluster image for Mono's Gateway Development Kit https://docs.mono.si/gateway-development-kit/getting-started

Features

  • A/B deployment
  • Read-only RootFS
  • k8s style OS upgrade (see Upgrading)

DISCLAIMER

  • This is not your everyday linux image! It is best suited for users that is already familiar with k8s. For first-timers, you may want to try the default config that gives you a ready-to-use cluster and get yourself started from there

  • USE AT YOUR OWN RISKS. I leverage ChatGPT heavily for this.

Current Status

Boostrapping

  • initramfs
  • booting into alpine
  • k8s control-plane
  • k8s worker node

Kubernetes

  • OSUpgrade
    • Control Plane - kubeadm upgrade apply
    • Upgrade chain
      • 1.33.3 -> 1.33.10
      • 1.33.10 -> 1.34.6
      • 1.34.6 -> 1.35.3
    • Worker node - kubeadm upgrade node
  • CNI
    • default bridge-cni
    • Cilium

Network Traffics

  • VPP Pod
    • fmc - works? But no way to test it yet
    • vpp - does not work

Table of Contents

  1. Flashing
  2. Upgrading
  3. Getting shell access to the host

Build

Prerequisites

  • make
  • Docker
make release

The default configuration will boot as a first time control-plane.

For control-plane

make cluster-config \
  MKS_HOSTNAME=monok8s-master \
  MKS_CLUSTER_ROLE=control-plane \
  MKS_INIT_CONTROL_PLANE=true \
  MKS_MGMT_ADDRESS=10.0.0.10/24 \
  MKS_APISERVER_ADVERTISE_ADDRESS=10.0.0.10

For worker

make cluster-config \
  MKS_HOSTNAME=monok8s-worker \
  MKS_CLUSTER_ROLE=worker \
  MKS_INIT_CONTROL_PLANE=no \
  MKS_MGMT_ADDRESS=10.0.0.10/24 \
  MKS_APISERVER_ADVERTISE_ADDRESS=10.0.0.10 \
  MKS_API_SERVER_ENDPOINT=10.0.0.1:6443 \
  MKS_CNI_PLUGIN=none \
  MKS_BOOTSTRAP_TOKEN=abcd12.ef3456789abcdef0 \
  MKS_DISCOVERY_TOKEN_CA_CERT_HASH=sha256:9f1c2b3a4d5e6f7890abc1234567890abcdef1234567890abcdef1234567890ab

Check inside configs/cluster.env.default for configuration details

Description
Kubernetes image for Mono Gateway Development Kit https://docs.mono.si/gateway-development-kit/getting-started
Readme MIT 1,005 KiB
Languages
Go 67.7%
Shell 17.3%
Dockerfile 9.9%
Makefile 5.1%