Our OVH Managed Kubernetes product has now been available for more than one year on general availability. From now on, Kubernetes version 1.18 is certified by the CNCF on our platform.
Kubernetes is in constant evolution and amelioration, every new version brings a lot of new feature and fixes. And this version 1.18 is not the exception:
Kubernetes 1.18 consists of 38 enhancements: 15 enhancements are moving to stable, 11 enhancements in beta and 12 enhancements in alpha.
We are very proud to help our customers transit to this very flexible and amazing product: Kubernetes!
Let’s check together some of the features of this new release.
Before updating Kubernetes, we recommend to update kubectl
to orchestrate Kubernetes.
kubectl
can be updated independently from the Kubernetes cluster version,
keep kubectl
updated to profit of all the new features
To install or update kubectl
: https://kubernetes.io/docs/tasks/tools/install-kubectl/.
Creating ephemeral containers with Kubectl for debugging (Alpha)
Kubernetes 1.18 adds new extended debugging capabilities to kubectl
, as it can now create ephemeral Pods to debug other Pods in the same namespace.
For more informations: https://kubernetes.io/docs/tasks/debug-application-cluster/debug-running-pod/#ephemeral-container
Server-side Apply – Beta 2
Server-side Apply is a new merging algorithm, so the system knows when two actors are trying to edit the same field.
This feature can be used with the following flag when applying a manifest: kubectl apply --server-side
If you need to force the conflicts you can use the flags “--force-conflicts
” and that’s it.
For more informations: https://kubernetes.io/blog/2020/04/01/kubernetes-1.18-feature-server-side-apply-beta-2/
Improvements to the Ingress API
There are 3 significant additions to this API:
- A new
pathType
field that can specify how Ingress paths should be matched. - A new
IngressClass
resource that can specify how Ingresses should be implemented by controllers. - Support for wildcards in hostnames.
For more information: https://kubernetes.io/blog/2020/04/02/improvements-to-the-ingress-api-in-kubernetes-1.18/
Upgrading your Cluster to Kubernetes 1.18
Additionally to automatic patch updates according to the security policy you choose in your customer panel, OVHcloud offers you to upgrade easily your cluster to Kubernetes 1.18. Let’s look at it together!
Before upgrading your cluster
Understand your needs. Kubernetes follows an N-2 support policy, meaning that the 3 most recent minor versions (currently 1.16, 1.17 and 1.18) continue receiving security and bug fixes, so any of those versions at the latest patch is considered “stable”.
If you require the latest features you should consider upgrading to the latest minor version, else you should simply care about applying the latest patches.
Ensure you can upgrade
We recommend you to have at least 2 nodes in your cluster and properly configured ReplicaSets
to minimize the downtime. Also take care of the processing capabilities of your cluster to ensure a graceful rolling upgrade of your worker nodes.
For example, if you have 2 nodes with a CPU usage of 50%, when the first node is going to be upgraded, the second node will take the load of the first node, so you need to ensure that you are in capacity to run your applications with 1 less node.
Ensure that you have all your Kubernetes manifests up to date and applicable, it is not a good practice to directly edit the server-side deployments.
You can use the KubePug tool to help you to detect the breaking change and deprecated usages, don’t forget Kubernetes is in continuous evolution.
Upgrading your cluster
Go to your cluster on the OVHcloud Control Panel and click on “Upgrade to the next minor version of Kubernetes”.
Last, but not least
The team is also polishing a series of new features, like control of your nodes and nodes pools directly through a Kubernetes CRD. Stay tuned !