Files
monok8s/README.md
2026-04-06 05:47:34 +08:00

2.2 KiB

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.

Table of Contents

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

Build

Prerequisites

  • make
  • Docker
  • curl (downloading dependency packages, kubelet, crio, etc)
  • go (building clitools, control-agent)
  • git (cloning uboot repo because uboot does not provide direct downloads)
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

Making sub stages

make build-base # The image that builds the kernel and everything
make kernel     # Builds our kernel from NXP
make initramfs
make itb        # Builds out/board.itb (contains the kernel and the initramfs)