Upgrading Kubernetes
In software, upgrades are usually a fact of life. Very rarely is a single piece of software that lives for more than a brief time able to run continuously without upgrading its code to a new version. In Chapter 8, Preparing for Ongoing Maintenance of Your Operator, we discussed ways to prepare and publish new version releases of an Operator. In that chapter, we also explained the different phases of the Kubernetes release cycle and how they impact Operator development. This is especially true for Operators that are deeply entrenched in the Kubernetes platform components.
For system Operators, fluctuating changes in the upstream Kubernetes code base are often more than just simple features. For example, when kube-scheduler
was refactored to accept an entirely different format of configuration (referred to as the Scheduler Framework, which is no relation to the Operator Framework – see https://kubernetes.io/docs/concepts/scheduling-eviction/scheduling-framework...