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-rancher3and higherv1.25.6-rancher3and higherv1.26.4-rancher1and 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-baseimage is used in theDockerfile - Change
K8S_VERSIONinMakefileto the correct version - Run
make buildto 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)