Upgrading Kubernetes Clusters
The following lists what software and pods will be upgraded during this quarter.
- Upgrade the Operating System
- Upgrade Kubernetes
- Upgrade kudeadm, kubectl, and kubelet RPMs from 1.17.6 to 1.18.8.
- Upgrade kubernetes-cni RPM from 0.7.5-0 to 0.8.6-0.
- kube-apiserver is upgraded from 1.17.6 to 1.18.8.
- kube-controller-manager is upgraded from 1.17.6 to 1.18.8.
- kube-scheduler is upgraded from 1.17.6 to 1.18.8.
- kube-proxy is upgraded from 1.17.6 to 1.18.8.
- coredns is upgraded from 1.6.5 to 1.6.7.
- etcd maintains at the current version of 3.4.3-0.
- Upgrade Calico from 3.14.1 to 3.16.0.
- Upgrade Filebeat from 7.8.0 to 7.9.2.
- Upgrade docker from 1.3.1-161 to 1.13.1-162.
- metrics-servers is upgraded from 0.3.6 to 0.3.7.
- kube-state-metrics isupgrade from 1.9.5 to 1.9.7.
There are no unchanged products this quarter.
The following notes provide information on what changes might be affecting users of the clusters when upgrading from one version to the next. The notes I’m adding reflect what I think relevant to the environment so no notes on Azure or OpenShift will be listed. For more detailss, click on the provided links. If something is found that might be relevant, please respond and I’ll check it out and add it in.
The following notes will reflect changes that might be relevant between the currently installed 1.17.6 up through 1.18.8, the target upgrade for Q4. While I’m working to not miss something, if we’re not sure, check the links to see if any changes apply to your product or project.
- 1.17.7 – kubernetes-cni upgraded to 0.8.6.
- 1.17.8 – Nothing of interest. Note that there’s a 1.17.8-rc1 as well.
- 1.17.9 – Privilege escalation patch: CVE-2020-8559. DOS patch: CVE-2020-8557.
- 1.17.10 – Do not use this release; artifacts are not complete.
- 1.17.11 – A note that Kubernetes is built with go 1.13.15. No other updates.
- 1.18.0 – Lots of notes as always. Most are cloud specific (Azure mainly). Some interesting bits though:
- kubectl debug command added, permits the creation of a sidecar in a pod to assist with troubleshooting a problematic container.
- IPv6 support is now beta in 1.18.
- Deprecated APIs
- apps/v1beta1, apps/v1beta2 – apps/v1
- daemonsets, deployments, replicates under extensions/v1beta1 – use apps/v1
- New IngressClass resource added to enable better Ingress configuration
- autoscaling/v2beta2 HPA added spec.behavior
- startupProbe (beta) for slow starting containers.
- 1.18.1 – Nothing much to note
- 1.18.2 – Fix conversion error for HPA objects with invalid annotations
- 1.18.3 – init containers are now considered for calculation of resource requests when scheduling
- 1.18.4 – kubernetes-cni upgraded to 0.8.6
- 1.18.5 – Nothing of interest. Note there’s a 1.18.5-rc1 as well.
- 1.18.6 – Privilege escalation patch; CVE-2020-8559. DOS patch; CVE-2020-8557.
- 1.18.7 – Do not use this release; artifacts are not complete.
- 1.18.8 – Kubernetes now built with go 1.13.15. Nothing else.
Still search for release notes for the upgrade from 0.7.5 to 0.8.6.
- 1.6.6 – Mainly a fix for DNS Flag Day 2020, the bufsize plugin. A fix related to CVE-2019-19794.
- 1.6.7 – Adding an expiration jitter. Resolve TXT records via CNAME.
The major release notes are on a single page. Versions noted here to describe the upgrade for each version. For example, 3.14.1 and 3.14.2 both point to the 3.14 Release Notes. Here I’m describing the changes, if relevant, between the .0, .1, and .2 releases.
Note that currently many features of Calico haven’t been implemented yet so improvements, changes, and fixes for Calico probably don’t impact the current clusters.
- 3.14.1 – Fix CVE-2020-13597 – IPv6 rogue router advertisement vulnerability. Added port 6443 to failsafe ports.
- 3.14.2 – Remove unnecessary packages from cni-plugin and pod2daemon images.
- 3.15.0 – WireGuard enabled to secure on the wire in-cluster pod traffic. The ability to migrate key/store data from etcd to use the kube-apiserver.
- 3.15.1 – Fix service IP advertisement breaking host service connectivity.
- 3.15.2 – Add monitor-addresses option to calico-node to continually monitor IP addresses. Handle CNI plugin panics more gracefully. Remove unnecessary packages from cni-plugin and pod2daemon images to address CVEs.
- 3.16.0 – Supports eBPF which is a RH8.2 product (future info not currently available to my clusters. Removed more unnecessary packages from pod2daemon image.
- 7.8.1 – Corrected base64 encoding of the monitoring.elasticsearch.api_key. Added support for timezone offsets.
- 7.9.0 – Fixed handling for Kubernetes Update and Delete watcher events. Fixed memory leak in tcp and unix input sources. Fixed file ownership in docker images so they can be used in a secure environment. Logstash module can automatically detect the log format and process accordingly.
- 7.9.1 – Nothing really jumped out as relevant.
- 7.9.2 – Nothing in the release notes yet.
This release is related to a CVE to address a vulnerability in 1.13.1-108.
- 0.3.7 – New image location. Image run as a non-root user. Single file now vs a group of files (components.yaml).
Like Calico, the CHANGELOG is a single file. The different bullet points point to the same file, but describe the changes if relevant.
- 1.9.6 – Just a single change related to an API mismatch.
- 1.9.7 – Switched an apiVersion to v1 for the mutatingwebhookconfiguration file.
- Kubernetes 1.18 Release Announcement
- Kubernetes 1.18 Release Notes
- Kubernetes Change Log for 1.18 – Review 1.18.0 – 1.18.8
- Kubernetes Change Log for 1.17 – Review 1.17.7 – 1.17.11
- Sysdig: What’s New in Kubernetes 1.18
- Kubeadm Upgrade to 1.18
- coredns Blog – Lists all the releases
- Calico Upgrade to 3.16.0
- Elastic Stack Filebeat Container Upgrades
- Metrics Server 0.3.7 – Use wget to retrieve the file
- kube-state-metrics v1.9.7