2.5 KiB
2.5 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.
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
- Flashing
- Upgrading
- Getting shell access to the host
- UART. The thing you did in first time flashing.
- Install an ssh pod (Recommended)
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
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)