Platform-Specific Kubernetes Binaries #
This document provides details on how to build Kubernetes binaries and run
kwokctl
locally.In v0.6.0 and later, this will be enabled automatically and no longer needs to be configured.
Overview #
When running kwokctl
with binary
runtime (kwokctl create cluster --runtime=binary
),
kwokctl
will download Kubernetes binaries from
dl.k8s.io/
www.downloadkubernetes.com and use them to create cluster.
but that only works on Linux.
For Non-Linux #
Self Building #
Building Kubernetes Binaries and setting up kwokctl
defaults to use them
KUBE_VERSION="v1.28.0"
SRC_DIR="${HOME}/.kwok/cache/kubernetes/${KUBE_VERSION}"
mkdir -p "${SRC_DIR}" && cd "${SRC_DIR}" &&
wget "https://dl.k8s.io/${KUBE_VERSION}/kubernetes-src.tar.gz" -O - | tar xz &&
make WHAT="cmd/kube-apiserver cmd/kube-controller-manager cmd/kube-scheduler" &&
cat <<EOF >> ~/.kwok/kwok.yaml
---
kind: KwokctlConfiguration
apiVersion: config.kwok.x-k8s.io/v1alpha1
options:
kubeBinaryPrefix: $(pwd)/_output/local/bin/$(go env GOOS)/$(go env GOARCH)
---
EOF
The binaries will be located in ~/.kwok/cache/kubernetes/${KUBE_VERSION}/_output/local/bin/$(go env GOOS)/$(go env GOARCH)
.
Use unofficial binaries #
We also provide UNOFFICIAL binaries for non-linux platforms on kwok-ci/k8s.
Setting up kwokctl
defaults to use them.
KUBE_VERSION="v1.28.0"
cat <<EOF >> ~/.kwok/kwok.yaml
---
kind: KwokctlConfiguration
apiVersion: config.kwok.x-k8s.io/v1alpha1
options:
kubeBinaryPrefix: https://github.com/kwok-ci/k8s/releases/download/${KUBE_VERSION}-kwok.0-$(go env GOOS)-$(go env GOARCH)
---
EOF
Using kwokctl
with binary
runtime
#
Now, we can create cluster using kwokctl
with binary
runtime.
kwokctl create cluster \
--runtime=binary