Upgrade to Kubernetes 1.10

Update: Changed Kubernetes update from 1.10.7 to 1.10.8

We have upgraded our staging Kubernetes clusters from v1.9.8 to v1.10.8. Production clusters will follow in 1 to 2 weeks (to be announced) after we have confirmed there are no issues with our customer’s workloads.

Most improvements and fixes are internal, which you can find in the full Kubernetes changelog. Instead of wading through this log, you can find most notable updates impacting you below :)

Stay tuned for further updates as we improve our tooling based on this k8s release.

Actions to take

Core Workloads API GA

We’d like to remind you that the previous update (1.9) the workloads API has matured to Genaral Availability (GA). This means you should update your Deployments, Jobs, StatefulSets and so forth to use the apps/v1 apiVersion. Previous versions have been deprecated (eg. apps/v1beta2) but still work via internal conversion.

If you’re currently using apiVersion: apps/v1beta2 chances are you won’t have to make additional changes to yours specs than updating it to apps/v1. The Kubernetes documentation provides a migration guide.

Notable features

PersistentVolume updates

This release prevents deletion of Persistent Volume Claims that are used by a Pod and Persistent Volumes that are bound to a Persistent Volume Claim, making sure these can’t be accidently deleted when in use.

It’s now also possible to use local node storage for Persitent Volumes. We don’t really offer this feature yet, but get into contact with us if this sounds interesting for your workload.

Pod shared PID namespaces

Kubernetes 1.10 comes with an alpha feature for shared process namespaces in a Pod. When enabled, processes in a container can signal processes of other containers within the Pod, which can be interesting for running sidecar containers.

We don’t enable this feature by default, let us know if this sounds interesting to you for trying out.

CoreDNS

We currenlty still use the default DNS provider (kube-dns) for service discovery. Since Kubernetes 1.10 DNS is a pluggable component and CoreDNS is a more streamlined alternative. CoreDNS is currently a Kubernetes beta feature and is becoming the default in 1.11.

With each new version we’re evaluating CoreDNS as a DNS replacement on our clusters.

Note: as an alternative for more advanced service discovery we also support the linkerd2 service mesh.

Upstream resources