This project provides a unified container image that bundles the core Kubernetes control plane components (kube-apiserver, kube-controller-manager, and kube-scheduler) into a single, lightweight Alpine-based image.
The Kubernetes Control Plane Container offers:
- Unified packaging: All core control plane components in one container
- Multi-architecture support: Built for both
linux/amd64
andlinux/arm64
- Version tracking: Automated daily builds for all stable Kubernetes releases
- Minimal footprint: Based on Alpine Linux for a smaller image size
- Non-root execution: Runs as a non-privileged user for enhanced security
Images are published to the GitHub Container Registry:
ghcr.io/loft-sh/kubernetes:v1.x.y
Where v1.x.y
corresponds to the Kubernetes version.
You can pull the image using:
docker pull ghcr.io/loft-sh/kubernetes:v1.28.0
- Docker with buildx support
- Make
Build the image locally:
make build
Build for a specific Kubernetes version:
make build K8S_VERSION=v1.29.0
Push to a registry:
make push REGISTRY=myregistry.io/ IMAGE_NAME=kubernetes
The build process can be customized with the following variables:
Variable | Description | Default |
---|---|---|
K8S_VERSION | Kubernetes version to build | v1.28.0 |
PLATFORMS | Target architectures | linux/amd64,linux/arm64 |
IMAGE_NAME | Name of the container image | kubernetes-control-plane |
REGISTRY | Container registry prefix | (empty) |
A GitHub Actions workflow runs daily to:
- Identify all stable Kubernetes releases
- Check for missing versions in the container registry
- Automatically build and push images for any missing versions
This project is maintained by Loft Labs Inc