Cluster Versions

Table of Contents

CirrusGrid PaaS provides a pre-packages Kubernetes (K8s) Cluster solution with automatic installation. Kubernetes is a portable, extensible, open-source platform for managing container-based workload and services, that facilitates both declarative configuration and automation. It correlates greatly with CirrusGrid PaaS, allowing to set up applications based on the Kubernetes system directly inside the platform.

By hosting a Kubernetes Cluster at CirrusGrid Paas, you can get the following benefits:

  • Easy Start – automated installation in several clicks do not require manual intervention
  • Hyper Scalability – the cluster can be automatically scaled vertically and horizontally
  • Multi-Cloud Availability – mix and match cloud options due to the project needs
  • Simplified Management – a single point of management via intuitive UI and built-in Web SSH
  • Flexible Automation – automate DevOps processes with open API and Cloud Scripting
  • Cost Efficiency – pay only for consumed resources benefiting from container density and scalability

jelastic kubernetes cluster topology

Tip: More specifics and in-depth description with use case examples are provided in the appropriate Kubernetes Cluster article on our blog.

Below, we’ll overview all of the Kubernetes Cluster versions and describe implemented changes and adjustments.

K8s Package Change Log #

You can check the source code of the Kubernetes Cluster package by CirrusGrid PaaS at GitHub. You can overview changes in each of the versions by clicking on the required record in the list below.

Note: Implementation of new features/components for the Kubernetes Cluster solution (as well as stability testing) requires a certain amount of time. So, the package version is usually one or two minor releases behind the Kubernetes upstream tags.

  • added Upgrade to 1.18.10 for the existing Kubernetes clusters
  • updated the Kubernetes cluster components:
    • helm 2.16.12
    • dashboard 2.0.3
    • metallb 0.9.4
    • nginx-ingress 0.40.2
    • haproxy-ingress 0.9.1
  • added Upgrade to 1.17.12 for the existing Kubernetes clusters
  • updated the Kubernetes cluster components:
    • weave 2.7.0
    • cni-plugins 0.8.7
    • Docker Engine CE 19.03.9
    • containerd 1.3.7
    • k9s v0.22.1
    • popeye 0.8.10
  • provided operator-driven version of OpenLiberty (instead of the previous Helm-based)
  • fixed incorrect health check for the K8dash dashboard
  • added Upgrade to 1.17.4 for the existing Kubernetes clusters
  • restricted the Kubernetes Cluster package installation for trial accounts
  • implemented the GitLab Integration add-on for Kubernetes to automate the CI/CD pipelines; with the integration specifics:
    • added unregister k8s functionality
    • synchronized with the latest GitLab version
    • added logging of the GitLab integration removal operation
  • added ability to assign public IP to the Kubernetes cluster
    • improved firewall security
    • blocked public IP assignment to k8sm and mbl
  • added the MetalLB Kubernetes LoadBalancer controller for IP provision
    • improved the metallb-config utility to skip the IPv6 configuration
  • updated the Kubernetes cluster components:
    • weave 2.6.2
    • cni-plugins 0.8.5
    • certificate-manager 0.15.1
    • Docker Engine 19.03.8
    • kubernetes-dashboard v2.0.0-rc7
    • k9s 0.19.6
    • popeye 0.8.3
    • helm 2.16.5
    • cri-tools 1.17
  • cluster internal optimizations:
    • optimized Kubernetes Cluster provisioning with offload and parallel components installation
    • switched cgroup driver from cgroupfs to systemd
    • added a common integration mechanism – integration scripts are deployed on the k8sm layer and are provided for workers during the nodes’ (re)configuration or the cluster upgrade
    • switched to the latest Jelastic’s redeployment mechanism
    • moved idempotent logic on the cluster instances (re)configuration into a separate service script
  • improved the cluster upgrade procedure:
    • fixed CLI console prompt in instances
    • actualized list of add-ons
    • improved check-up of the cluster components state
    • fixed helm version discrepancy on the client- and server-side
  • UI/UX improvements:
    • improved how the Access Token is displayed in the after-installation window
    • added cluster URL to the installation success pop-up
    • replaced the obsolete Kubernetes Dashboard v1 option with K8Dash during the installation and upgrade
    • added Kubernetes version to the cluster name
  • bug fixes:
    • fixed cluster installation failure due to issues with the helm 2.16.4 version
    • improved Storage component detection for the cluster
    • fixed non-unique systemd machine-id values for Kubernetes instances
    • improved cluster components’ validation in the Jelastic’s system utility
    • fixed Kubernetes cluster systemd journal logging
    • improved concurrent configuration calls handling in the cluster
  • added Upgrade to 1.16.6 for the existing K8s clusters
  • updated the Kubernetes components:
    • popeye 0.7.1
    • k9s 0.17.5
    • kubectx 0.8.0
    • hello-kubernetes 1.7
    • dashboard 2.0.0-rc3
  • updated the NGINX ingress controller to the latest 0.30 version and changed service type from Deployment to DaemonSet
  • updated the installation process to ensure that all masters have a role and a NoSchedule taint before worker nodes POD scheduling
  • optimized the resource consumption to reduce the impact on the cluster performance in case of slow network and limited I/O capacity
  • added the crictl component Bash autocompletion support
  • added Docker CT checks to the cluster health-check for better problem detection
  • set helm version to 2.16.3 explicitly due to deployment validation issues in later releases
  • updated logos and titles of the default add-ons available after the Kubernetes Cluster installation
  • added Upgrade to 1.16.3 for the existing K8s clusters
  • improved the upgrade process via skipping redeployment to intermediate cluster versions and verifying K8s components’ versions
  • added a minimal requirement of 8 cloudlets for the Kubernetes image
  • added warning for installations on trial accounts about monitoring components not being available
  • updated the Kubernetes components:
    • cri-tools 1.16
    • metrics-server 0.3.6
    • popeye 0.6.0
    • k9s 0.13.3
    • kubectx 0.7.1
    • dashboard 2.0.0-rc2
  • fixed incorrect notification after the cluster upgrade
  • added Upgrade to 1.15.6 for the existing K8s clusters
  • divided a single add-on for the K8s cluster into two separate ones (for the upgrade and configuration operations, respectively)
  • restricted the monitoring and Jaeger tools installation if the dedicated NFS storage option is disabled
  • optimized the Kubernetes Docker image by Jelastic; the new version is lighter by over 100 MB due to Docker layer optimization and unnecessary files clean up
  • updated the Docker Engine CE package used in the K8s image to the latest 19.03.4 version
  • updated cni-plugins to the latest 0.8.3 version
  • updated Jaeger to the latest 1.15.1 version
  • updated the default application (Open Liberty) to install the latest available version automatically
  • fixed the incorrect nodes number in the Grafana dashboard after the K8s cluster scaling
  • fixed an issue with the Jelastic Kubernetes Cluster dashboard not being set as default after monitoring tools installation
  • fixed an issue with the Jaeger pods still being in the configuring state after notification about successful cluster installation
  • fixed an issue with the K8s cluster with the production topology not being able to awake after the environment hibernation
  • added Upgrade to 1.15.5 for the existing 1.15.4 K8s clusters
  • added Jaeger tracing system for monitoring and troubleshooting (can be enabled for new clusters during installation or via the Monitoring add-on for existing ones)
  • added support of the two new ingress controllers – NGINX and HAProxy – in addition to the Traefik one (the required option can be selected during installation)
  • added the node-problem-detector daemon to find and report problems with K8s pods
  • updated the credential storing scheme to exclude NFS, which simplifies the interaction of instances and decrease deployment time
  • updated K8s monitoring through the code refactoring (improved monitoring plugin detection, conditioning, encryption algorithm, etc.)
  • updated access verification for the kube-proxy read/write operations to the sysfs files
  • fixed nameserver limits and DNS configurations that cause multiple warnings in the Events log
  • fixed an issue with incorrect addresses being resolved for the environment hostnames from within the pods
  • fixed environment variable setting issues in Kubernetes nodes caused by the gettext package absence
  • added Upgrade to 1.15.4 for the existing 1.15.3 K8s clusters
  • added monitoring support via the Prometheus & Grafana integration (can be enabled for new clusters during installation or via the Monitoring add-on for existing ones)
  • added option to use the K8s Dashboard v2 (Beta)
  • added kube-postconf service for the configuration adjustment based on the platform and K8s cluster specifics
  • added email notifications for the Remote API and Monitoring enabling on the existing K8s cluster
  • added parallelization for the workers horizontal scaling
  • updated Metrics server to 0.3.3 version
  • updated cni-plugins to 0.8.2
  • updated additional components: k9s 0.8.4; popeye 0.4.3; kubectx 0.7.0
  • updated autocompletion to support the stern commands
  • updated helm and weave installation logic to make these tools operable on all master nodes
  • fixed an issue with success popup providing the Remote API link for the installations without the appropriate option
  • fixed an issue with the incorrect display of the feature state in the Remote API add-on for the existing cluster
  • fixed the hello-world service incorrect state after the environment deployment (LoadBalancer always in the pending state)
  • fixed the misleading text in the confirmation frame of the Monitoring add-on for the existing cluster
  • fixed an issue that causes errors in the kube-controller-manager pod logs after the cluster installation
  • fixed errors in the action log after K8s nodes restart
  • fixed an issue with no success notification and email for Monitoring enabling right after configuring Remote API on the existing cluster
  • fixed an issue with the unsupported Traefik flags
  • added Upgrade to 1.15.3 button for the existing 1.15.0 K8s clusters
  • prohibited manual nodes redeploy to ensure cluster stability (the Upgrade add-on should be used)
  • fixed an error with the configuration file manager not working in the Jelastic dashboard
  • added “insecure mode”, which allows installation on trial accounts
  • added additional k8s tools: k9s, kubectx, kubens, popeye, and stern
  • added autocompletion for kubectl in shell
  • fixed warnings in the k8s component log during the package installation
  • fixed error with Weave NPC missing endpoint route
  • fixed incorrect k8s machine-id during worker’s horizontal scaling

Initial public release with all the core functionality and features:

  • CNI plugin (powered by Weave) for overlay network support
  • Traefik ingress control for transferring HTTP/HTTPS requests to services
  • HELM package manager to auto-install pre-packed solutions from repositories
  • CoreDNS for internal names resolution
  • Metrics Server for gathering stats
  • persistent volumes with the dynamic provisioner
  • Jelastic SSL for protecting ingress network
  • Kubernetes Dashboard

Powered by BetterDocs