Introduction to Managed Kubernetes

Introduction to Managed Kubernetes

Jun 07, 2024 | Andrew Wilson

M.D.G. IT Managed Kubernetes hosting is a fully managed, containerised hosting service. Each component of the webstack (such as Apache, PHP-FPM, Node and MySQL) runs in an isolated container with its own dedicated resources. This is in contrast to a traditional server or VPS, where services compete for CPU and memory.

Resilient uptime

Kubernetes recovers from errors, traffic spikes and server overload much faster than a VPS or a dedicated server. Every container has built-in, automatic checks, which continually monitor its health. In practice, this includes checks like running a lightweight database query to make sure that a database server is both up and actually serving requests. This is much better than simply monitoring that the database process is running, for example, because a process can be running even at times a database isn't able to serve requests.

The way that Kubernetes self heals is also preferable to service failures on traditional servers, being much quicker: containers start in seconds. In real life services do crash, and if this happens a new container replaces the failed container almost immediately.

The way that Kubernetes responds when website traffic pushes resource usage to 100% of provisioned capacity is similarly much preferable to traditional hosting. On a dedicated server or VPS, processes quickly start to queue and processing grinds to a halt as CPU is saturated. If memory is exhausted the Out of Memory Killer is invoked and starts killing processes, and even a modest spike can lead to a situation where a manual reboot is needed to restore service.

With Kubernetes, on the other hand, exceeding your resources will cause a component to fail a health check and then immediately trigger a restart of that component only, with everything else staying up. This means that an influx of traffic from an inadvisably unstaggered EDM won't crash your database, for example.

Roll out, don't restart

Each container in the web stack is deployed in a rolling fashion. This means that a running container is only removed when the new container is up and healthy, so you don't have a brief outage every time you restart PHP-FPM, for example. As a result CPU, memory and software upgrades can be performed with zero-downtime.

Ready to scale, out of the box

Traditional scaling methods have significant drawbacks. Vertical scaling often requires a reboot, and capacity is limited to the biggest server available. Traditional horizontal scaling requires a separate load balancer, and scaling up means waiting for entire server instances to boot their operating systems before capacity is increased.

The above means that VPSs or cloud instances scale slowly, and sharp traffic spikes can completely overload existing instances unless your scaling strategy is aggressively pre-emptive. This in turn means you're scaling up sooner to maintain considerable overhead, with real life costs often more than double than the cost of resources required to serve traffic.

In comparison, Kubernetes scales fast enough that you don't need to anticipate increases in demand as aggressively—you don't need to over provision in order to keep the site up. Kubernetes scaling and load balancing is built in and ready to deploy with a few lines of config.

Site speed

In addition to the features described above, Kubernetes hosting is fast. Our tests of production sites with real traffic showed Kubernetes delivering the fastest, most consistent performance when compared to traditional hosting methods.

Try for free

Our Managed Kubernetes packages can be found here, and to arrange a migration from an existing service, please contact our friendly support team. Free, no commitment trials are available here.

You may also like: