The source repository for the rancher/hyperkube
image used by RKE clusters. The image contains everything needed to run each Kubernetes component in a container. Images are automatically pushed to Docker Hub on tag. See Versioning and Releasing for more information about the tags. There is a branch for each minor Kubernetes version.
Due to an issue with cri-dockerd causing high cpu usage when collecting metrics from the Docker daemon, we started to package the kubelet
binary from our own source (rancher/kubernetes
) starting with the following versions:
v1.24.10-rancher3
and higherv1.25.6-rancher3
and higherv1.26.4-rancher1
and higher
More information about the high cpu usage issue can be found in this issue.
- Check out the correct branch for the minor version
- Check if the latest
rancher/hyperkube-base
image is used in theDockerfile
- Change
K8S_VERSION
inMakefile
to the correct version - Run
make build
to build an image with the new version
Tags contain the Kubernetes version and a suffix (default -rancher1
), for example v1.26.7-rancher1
. The suffix indicates the version iteration of the image. If there is a change in the rancher/hyperkube
image for the same Kubernetes patch version, the number in the suffix will be incremented.
If you are releasing a new Kubenetes patch version, the suffix should be -rancher1
. If you are making a change in an existing Kubernetes version, you should increment the number in the suffix (if current suffix is -rancher1
, the new suffix will be -rancher2
).
To release a new rancher/hyperkube
image:
- Make sure you have checked out the correct branch and that the branch is up-to-date
- Create the correct tag
- Push the tag
Check Drone Publish for the build progress.
rancher/hyperkube-base
: The base image used byrancher/hyperkube
- Upstream Kubernetes server binaries, published on each GitHub release in
kubernetes/kubernetes
rancher/kubernetes
: The source for building our own kubelet binary (see kubelet binary source change for more info)