k0s 0.9 Released

Jussi Nummelin
k0s — The Kubernetes Distribution
4 min readDec 23, 2020
Photo by Annie Spratt on Unsplash

The holiday season is upon us and the k0s team wanted to share a small gift for the community. We’ve just released k0s 0.9 with pretty nice features in it.

Windows Support

Probably the biggest endeavour we took for this release is the experimental support for Windows workers in the k0s clusters. Starting from k0s 0.9, users can get almost identical* user experience when joining Windows workers: k0s worker <join token>. When running Windows workers users must still run at least one Linux worker as most of the critical cluster services such as CoreDNS are not supporting Windows. Currently we only support BYO Docker as runtime for Windows but support for bundled containerD is on the roadmap.

*) There’s few extra args still needed, we’re working on a solution to get the UX 100% identical with Linux nodes.

Support for Load Balanced Controllers

There’s now a new special attribute on k0s.yaml config designed to make running the control plane behind a load balancer much more easier. Users can now provide the address of the load balancer and k0s will use it in following places:

  • For all components that need to talk to API directly. This includes konnectivity agents, kube-proxy and kubelet of course.
  • Join address in tokens, the address where k0s calls to when joining new nodes
  • Custom endpoint resolver for kubernetes.default.svc.cluster.local service. This reconciler will automatically make the in-cluster API service to have addresses resolved from the given load balancer address. This essentially makes the in-cluster communications to the API also go through the load balancer.

Improved Documentation

We’re now started to build a separate website for docs. You can see the docs at https://docs.k0sproject.io. As always there’s much to improve on docs but now we have much more usable and readable platform for the docs. On the docs site latest version tracks the latest released version and there’s will be docs version for each released version available. This makes it super easy for users to read docs for the same version of k0s they are using. For those of us who are living on the edge there’s also main version of the docs which follows the main branch of the source repo.

Kubernetes 1.20

k0s 0.9 ships with the latest Kubernetes (v1.20.1) components. This means we’re once again able to follow Kubernetes upstream very closely with k0s releases.

k0s now adds also custom suffix to the Kubernetes component version. So you’ll see the nodes listed now with a version string like v1.20.1-k0s1 . This does not mean we’ve added anything custom to Kubernetes but merely states that we do build the components from direct upstream in k0s build pipeline.

New “Install” Sub-Command

One of the issues many users have had is the fact that they’ve had to push k0s service unit configuration to systemd or other init systems. In 0.9.0 release k0s comes with a sub command k0s install which automatically detects the used init system (systemd and openRC currently supported) and injects the service unit. k0s install command also creates proper user accounts on the system so that all the controller components are running as non-root users. Naturally the worker components (containerd, kubelet etc.) are still running as root.

We’re planning to couple this into the get.k0s.sh installer script too so there’s gonna be a super easy one-liner to install k0s properly.

Many Updated Components

Many of the embedded components have been updated:

  • etcd 3.4.14
  • kine 0.6.0
  • konnectivity 0.0.14
  • kube 1.20.1

Community Updates

Here’s interesting stuff from the k0s community:

Although Github stars is kinda vanity metric but as a team, and growing community, we feel overwhelmed that in short amount of time we’ve collected 3k stars.

As a gentle reminder: if you are not yet following us on Twitter, please do it now! Also, please join the k0s Slack channel (hosted by our friends at Lens IDE community) to hear latest news, discussions and provide your feedback.

With this release the whole k0s team wants to wish everyone a happy and joyful holiday season! 🎅

About k0s

k0s is zero friction Kubernetes distribution. It provides unique mix of simplicity, security and modularity. k0s is 100% open source and free of charge, for any purpose.

The k0s open source project is backed by number of Kubernetes, Docker and Linux ecosystem pioneers. It combines experience with all the best innovations and ideas in the ecosystem to create a pure kubernetes distribution that is slim, modern & fresh while maximizing the developer happiness. https://k0sproject.io

--

--

Jussi Nummelin
k0s — The Kubernetes Distribution

Engineer, Dad, Fly-fisher, Husband; in varying order. Currently fiddling with Kubernetes at Mirantis