Kubernetes

Kubernetes


Kubernetes 1.12.4 support

Updated to 1.13.5 in 2019.2.3

Added support for the community Kubernetes version 1.12.4. For the list of enhancements and bug fixes, see: Kubernetes release notes.

Caution

MCP Q4`18 supports only Calico as a networking solution for the Kubernetes deployments. The OpenContrail integration is being finalized at the moment and will be available with the following MCP release.


Docker replaced by containerd

Completed development and added full support for containerd runtime to execute containers and manage container images on a node instead of Docker in an MCP Calico-based Kubernetes cluster. As compared to Docker, containerd introduces lower memory footprint, faster container start, easier upgrades and updates.

The upgrade procedure of a Docker-based Kubernetes cluster to the containerd-based one comprises a use case when third-party workloads run under Docker along with the MCP Kubernetes-based ones. Therefore, Docker is not stopped and removed during the upgrade to prevent these third-party workloads from being corrupted. However, you can disable Docker after the upgrade if required.


Migration of kube-addon-manager to a Kubernetes pod

Migrated the kube-addon-manager service to a separate pod controlled by Kubernetes to fit the community implementation. Previously, kube-addon-manager was running as a systemd service and was using the default system authorization that could not be handled by Kubernetes.

The main changes made during the kube-addon-manager migration are as follows:

  • kube-addon-manager uses its own service account for authorization controlled by Kubernetes
  • kube-addon-manager is created as a manifest before all other addons
  • kube-addon-manager is handled by kubelet

Automatic Calico upgrade procedure

TECHNICAL PREVIEW

Implemented the automatic upgrade procedure for Calico from version 2.6 to 3.3 by adjusting the existing Kubernetes upgrade pipeline job.

Additionally, you can use the same pipeline job to update Calico to a minor version, for example, from 3.1 to 3.3.

The Calico upgrade process implies the Kubernetes services downtime for workloads operations, for example, workloads spawning and removing. The downtime is caused by the necessity of the etcd schema migration where the Calico endpoints data and other Calico configuration data is stored.


Horizontal pod autoscaling

Introduced the capability to adjust the number of a Kubernetes pod replicas without using an external orchestrator by enabling the horizontal pod autoscaling feature. The feature is based on observed CPU and/or memory utilization and can be enabled using the metrics-server add-on. You can enable horizontal pod autoscaling either on a new or existing MCP Kubernetes cluster.


OpenStack cloud provider

TECHNICAL PREVIEW in 2019.2.0, GA in 2019.2.2

Implemented the capability to use the OpenStack cloud provider functionality on new Kubernetes clusters that are deployed on VMs on top of OpenStack.

The OpenStack cloud provider extends the basic functionality of Kubernetes by fulfilling the provider requirement for several resources. This is achieved through communication with several OpenStack APIs.

The two main functions provided by the OpenStack cloud provider are PersistentVolume for pods and LoadBalancer for services.

Note

Full support for the OpenStack cloud provider is announced in the MCP 2019.2.2 update.


Virtlet 1.4.4 support

Updated Virtlet to version 1.4.4 that contains the following improvements:

  • Added support for Kubernetes 1.12.x
  • Added support for containerd
  • Added support for cpusets
  • Switched to the Mirantis hardened version of libvirt
  • Improved the Virtlet examples
  • Added injecting of ConfigMaps or Secrets into rootfs
  • Improved the Virtlet user documentation and made it available from https://docs.virtlet.cloud to introduce a more user-friendly format
  • Fixed a number of bugs to harden the product robustness