Tag: scalability

Configuring Kubernetes for Maximum Scalability

August 9, 2017

Kubernetes is designed to address some of the difficulties that are inherent in managing large-scale containerized environments. However, this doesn’t mean Kubernetes can scale in all situations all on its own. There are steps you can and should take to maximize Kubernetes’ ability to scale—and there are important caveats and limitations to keep in mind when scaling Kubernetes. I’ll explain them in this article.

Scale versus Performance

The first thing that must be understood about scaling a Kubernetes cluster is that there is a tradeoff between scale and performance. For example, Kubernetes 1.6 is designed for use in clusters with up to 5,000 nodes. But 5,000 nodes is not a hard limit; it is merely the recommended node maximum. In actuality, it is possible to exceed the 5,000 node cluster limit substantially, but performance begins to drop off after doing so.

What this means more specifically is this: Kubernetes has defined two service level objectives. The first of these objectives is to return 99% of all API calls in less than a second. The second objective is to be able to start 99% of pods within less than five seconds. Although these objectives do not act as a comprehensive set of performance metrics, they do provide a good baseline for evaluating general cluster performance. According to Kubernetes, clusters with more than 5,000 nodes may not be able to achieve these service level objectives.

So, keep in mind that beyond a certain point, you may have to sacrifice performance in order to gain scalability in Kubernetes. Maybe this sacrifice is worth it to you, and maybe it’s not, depending on your deployment scenario.

 

Quotas

One of the main issues that you are likely to encounter when setting up a really large Kubernetes cluster is that of quota limitations. This is especially true for cloud-based nodes since cloud service providers commonly implement quota limitations. Read more


Setting up a scalable and highly available Wordpress environment with Rancher and Docker

May 21, 2015

Note: Rancher has come a long way since this was first published in June 2015. We’ve revised this post (as of August 2016) to reflect the updates in our enterprise container management service. Read on for the updated tutorial!

Rancher supports multiple orchestration engines for its managed environments, including Kubernetes, Mesos, Docker Swarm, and Cattle (the default Rancher managed environment). The Cattle environment is rich with features like stacks, services, and load balancing, and in this post, we’ll highlight common uses for these features. Overall, we’ll use Rancher and Docker to build a highly available and scalable WordPress environment, then we’ll cover how Rancher Catalog can be used to deploy complex stacks.

A scalable system is one that can handle an increasing number of requests without any impact on the response time and performance. On the other hand, High Availability describes a system that is continuously operational for a given period of time; the components of a high availability service often have failover components to continuously operate under any circumstances.

HA Deployment of WordPress

WordPress is one of the most popular CMSs out there, and can be configured with high availability and scalability by using specific components including:

  • Shared storage for the application files: GlusterFS.
  • Database Cluster backend: Percona XtraDB Cluster.
  • Decoupled application Docker image.
  • Load Balancer to distribute requests to the application containers.

 

wp-scheme

Read more