https://github.com/afbjorklund/buildroot4kubernetes
Minimal linux distribution for running kubernetes ("boot2kubeadm")
https://github.com/afbjorklund/buildroot4kubernetes
buildroot docker kubernetes raspberry-pi
Last synced: 6 months ago
JSON representation
Minimal linux distribution for running kubernetes ("boot2kubeadm")
- Host: GitHub
- URL: https://github.com/afbjorklund/buildroot4kubernetes
- Owner: afbjorklund
- Created: 2020-05-25T21:46:06.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2024-04-01T12:15:45.000Z (over 1 year ago)
- Last Synced: 2025-04-06T10:13:13.473Z (7 months ago)
- Topics: buildroot, docker, kubernetes, raspberry-pi
- Language: Makefile
- Homepage: https://kutter-os.github.io
- Size: 2.14 MB
- Stars: 24
- Watchers: 5
- Forks: 5
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
buildroot4kubernetes
====================Build a minimal environment with Buildroot, enough for running kubeadm for Kubernetes.
So basically the "bigger brother" of boot2docker... Or a smaller version of minikube.iso.
Interface | Implementation | Notes
--------- | -------------- | -----
Container Runtime | docker | `cri-dockerd`*
Container Networking | flannel | VXLAN backend
Container Storage | nfs | ReadWriteMany\* Needed for Kubernetes 1.24 and later only
Written by Anders Björklund (@afbjorklund)
Kernel
* namespaces
* cgroups
* overlayfs
* nat
* bridge
* conntrack
* vxlanUser
* systemd
* glibc (required by systemd)
* docker
* containerd (required by dockerd)
* bash
* iptables
* conntrack (required since 1.18)
Bootable image:
x86_64
```
192M output/disk.img.gz
```Flashable image:
aarch64
```
174M output/sdcard.img.zip
```Kubernetes bin:
```
45M /usr/bin/kubeadm
46M /usr/bin/kubectl
116M /usr/bin/kubelet
```Required images:
```console
$ kubeadm config images list
registry.k8s.io/kube-apiserver:v1.28.8
registry.k8s.io/kube-controller-manager:v1.28.8
registry.k8s.io/kube-scheduler:v1.28.8
registry.k8s.io/kube-proxy:v1.28.8
registry.k8s.io/pause:3.9
registry.k8s.io/etcd:3.5.12-0
registry.k8s.io/coredns/coredns:v1.10.1
```Additional images:
```
docker.io/flannel/flannel:v0.23.0
```
`docker pull` (gzip):
```
33M images/registry.k8s.io/kube-apiserver_v1.28.8
32M images/registry.k8s.io/kube-controller-manager_v1.28.8
18M images/registry.k8s.io/kube-scheduler_v1.28.8
27M images/registry.k8s.io/kube-proxy_v1.28.8
304K images/registry.k8s.io/pause_3.9
54M images/registry.k8s.io/etcd_3.5.12-0
16M images/registry.k8s.io/coredns/coredns_v1.10.1
27M images/docker.io/flannel/flannel_v0.23.0
203M total
````docker save | xz`:
```
139M images.txz
``````
Strms Blocks Compressed Uncompressed Ratio Check Filename
1 41 138,8 MiB 630,0 MiB 0,220 CRC32 images.txz
```Device layout:
| QEMU | File | Media | Device | Used for | Size |
| ---- | ------------- | ----- | -------- | ----------------- | ---- |
| -hda | disk.img | disk | /dev/sda | Persistent `/var` | 20g |
| -hdb | data.img | disk | /dev/sdb | Persistent `/data`| 5g |
| -hdc | buildroot.iso | cdrom | | Buildroot booting | 137m |
| -hdd | images.iso | cdrom | /dev/sdc | Kubernetes images | 160m |Reference board:
`pc` (bios)
```
4.9M output/images/bzImage
84M output/images/rootfs.ext2
````raspberrypi3-64`
```
18M output/images/boot.vfat
75M output/images/rootfs.ext4
```