When compared with previous versions, DC/OS Kubernetes 2.1.0-1.12.3 brings in a number of important improvements to how Kubernetes clusters are managed, as well as to how they operate.
The most notable change in the new release is that it is now possible to install multiple Kubernetes clusters side-by-side on the same DC/OS cluster. It is also now possible to run multiple private Kubernetes nodes on the same private DC/OS agent, regardless of whether they belong to the same or to different Kubernetes clusters. This change makes it possible, for example, to run multiple development clusters side-by-side on the same DC/OS cluster, reducing costs and management overhead.
Accompanying the abovementioned change is a brand new command-line interface (CLI) that allows for easy management and inspection of Kubernetes clusters.
Creating a new Kubernetes cluster can now be done using the following command:
$ dcos kubernetes cluster create --options options.json Kubernetes cluster '[dev/kubernetes01]' is being created
Listing existing Kubernetes clusters is also very intuitive:
$ dcos kubernetes cluster list NAME KUBERNETES VERSION PACKAGE VERSION dev/kubernetes01 v1.12.3 stub-universe dev/kubernetes02 v1.12.3 stub-universe
As another example, updating a Kubernetes cluster can be done via the CLI by specifying its name as a flag:
$ dcos kubernetes cluster update --cluster-name dev/kubernetes01 --options options.json Using Kubernetes cluster: dev/kubernetes01 2018/10/17 17:20:10 starting update process...
The new CLI features a number of other useful commands, which can be listed by running:
$ dcos kubernetes --help
See the CLI section for documentation on the new CLI.
To make management of multiple Kubernetes clusters on the same DC/OS cluster a reality, a custom cluster manager was introduced.
As a result of its introduction, the old
kubernetes package has been re-purposed and split into two different packages:
kubernetespackage now represents the cluster manager. Installing this package is required to create Kubernetes clusters, and it can only be installed once.
kubernetes-clusterpackage has been introduced in order to represent a single, atomic Kubernetes cluster. It roughly corresponds to the
kubernetespackage available in DC/OS 1.11, and can now be installed multiple times.
Each Kubernetes cluster can be installed with one control-plane node or in HA mode with three nodes.
These nodes take the place of the old
kube-scheduler tasks, being that each one of these Kubernetes components now runs as a static pod.
Control-plane nodes are labeled with
node-role.kubernetes.io/master, being tainted with a similar key so that no pods are scheduled onto them.
In order to make it possible to run multiple private Kubernetes nodes on the same private DC/OS agent, some changes to networking were required.
etcd members, control-plane nodes and private Kubernetes nodes leverage DC/OS virtual networking and each have their own IP address in the DC/OS cluster.
Kubernetes cluster pod networking and policy are now powered by Calico.