17 July, 2020

How Bamboo delivers for Kubernetes

By John Goodacre, Chief Scientific Officer, Bamboo

No longer can a single server provide the performance required for today’s applications. Kubernetes has become the go-to software to orchestrate and automate the tasks associated with running distributed applications across a cluster of servers.

A master server owns a pool for worker servers. Applications are partitioned across various microservices and assigned into pods , a group of one or more containers  with shared storage/network, and a specification for how to run the containers. Pods can span multiple servers and provide on-demand scalability and resilience against hardware failures.

Once you see the advantages of containerised services, the first big decisions to make are: what server size should be used, and where to host them; in the cloud or on-prem. Given the portability of containerised applications, Kubernetes managed applications can span across the cloud and on-prem almost at will. For many applications, it therefore, becomes a question of cost, with a of growing class of applications needing to worry about the latency of communication between pods and their data – all leading to hybrid-cloud and edge micro-datacentres.

The selection of the server used as a worker node is first a question of size, e.g. how many cores, how much memory, can it quickly access enough storage and network bandwidth.  Using a big multicore processor worker is littered with inefficiencies and bottlenecks, whilst also increasing the blast radius and damage, should that server fail. Another hidden cost is that the entire power-hungry processor needs to be fired up to run even the smallest of microservices, which in turn, reduces server utilisation and increases your energy costs.

So one might think, ‘maybe the solution is many tiny servers’; however, in reality, that’s not such a good idea either since there are resource inefficiencies and overheads in loading up support for containers and registering lots of workers with the master server. What you need is a server big enough to run the majority of your services, whilst still being small enough that it delivers the benefits of increased power efficiency of a smaller server with enough instances to limit the impact of any failures.

The Bamboo server has a unique and innovative system architecture that provides a closely coupled cluster of four servers in a blade form factor and is demonstrating its TCO benefits as the Kubernetes worker node of choice. With 16 processing cores per server with up to 4GB of DRAM per core, the platform is unique in providing each server with its own NVMe drive and dual 10Gb network interfaces, along with an embedded network for low latency communication between pods, backed by the resilience of service between blades and chassis. In general, you can expect one such node to support more than 200 pods, with a single rack of Bamboo delivering a forest of over 100,000 pods for the largest of deployments.

It is evident that some applications need only one single server; however, to ensure resilience and ensure your application can be scaled beyond the capacity offered by a single server, you will always need a cluster of servers. Kubernetes provides that capability, and enables you to run your infrastructure to its maximum capacity whilst still keeping redundancy between sites, or with the cloud.

The Bamboo B1008N server platform delivers a cluster of 8 servers in a single 1U chassis. In aggregate, it provides the performance of 128 cores, 16 DDR4 memory channels, and the storage bandwidth of eight natively attached NVMe drives, all fed by 160Gb/s of network bandwidth. Blades can also be configured without storage and can internally limit bandwidth to a single 10Gb interface for compute-centric instances.

As a key application, almost all Linux distributions include the software and tools required to deploy and run a Kubernetes cluster. Support for the Arm architecture has been available in these distributions for years and are often under long-term support and commercial support agreements.

The Kubernetes service repositories are filling up with Arm containerised applications, with development tools making it a simple option to build containerised packages for both x86 and Arm for any proprietary code. In using a Bamboo Arm server, you will not only benefit from the inherent power efficiency advantages of the Arm architecture, but you will also realise the benefits of the Bamboo System architecture and its unique ability to deliver the required service performance throughput in less rack space, using less energy while spending less to buy your hardware or rent it in the cloud.

Amazon is offering Kubernetes on Arm in their cloud, so let Bamboo deliver you the hardware for Kubernetes on-prem and at the edge, lowering your overall total cost of ownership over either sending your containers to the cloud or constraining them in the legacy which is today’s server.