Containers, Kubernetes

Kubernetes is an open-source system for automating the deployment, scaling, and management of containerized applications.

Whilst Kubernetes boasts a range of useful technical features, as always, tooling is never used in isolation and is dependent on the underlying infrastructure, the team using it and so on.

Here are my top three things every CTO should have in place before using Kubernetes in production (if they want to be successful!).

  1. You Need a Rock-Solid Foundation

The number one issue most organizations face when implementing kubernetes is with the platform running underneath it. It doesn’t matter if it’s a private cloud based on VMware or a public cloud like AWS, your platform needs to have been running stably for some time and be well-equipped with the following infrastructure basics:

  • Provisioning: creating VMs on demand, using golden images with HashiCorp’s Packer

  • Networking: DNS, load balancing, VPCs/VLans, firewalls/security groups

  • Storage: NFS/EFS/EBS provisioned through APIs

If these infrastructural building blocks aren’t in place, you will struggle with numerous issues when trying to deploy and operate a Kubernetes cluster.

As a rule of thumb we usually recommend to our clients that they start with a public cloud provider like AWS and equip themselves with some of the Hashicorp tools like Terraform and Packer to achieve a rock-solid infrastructure foundation.

2. You Need to Build a Strong Team

It’s a challenge to get container orchestration right and takes some time to put all the pieces in place.

Crucial is a well-rounded team, including some members with very strong Ops background that can get their hands dirty debugging the low-level stuff, some automation engineers that will take care of the day-to-day tasks of setting up and managing the cluster and more development-minded people who will ensure the CI/CD pipeline is running smoothly and that developers have a nice experience.

Here are some tips on building a team:

  1. Find teams that are already experimenting with containers, maybe they have Docker Swarm or Rancher running somewhere in your organization. They are probably already hungry for Kubernetes and will be more than willing to work on implementing it.

  2. Upskill your current dev and ops teams on containers and container orchestration.

  3. Hire new talent. In some cases you might find that the best option is to build an entirely new team that isn’t bogged down by the current processes and can demonstrate to other teams what the future looks like and get their buy in. Remember though: it is a buyer’s market and this might not be an option if you can’t offer remote working or a central London location.

3. It Is All About the Community

The main reason why Kubernetes is the number one container orchestration system of choice is the community that supports it.

Kubernetes is originally based on Google’s Borg cluster manager and has a very rich feature set and is by now a mature framework - which are enormous pros - but the main reason for its success is the active and supportive community that has built up around it.

Here are some tips on how you can get involved:

Success with Kubernetes

With a rock-solid platform, a skilled and diverse team and a growing relationship with the Kubernetes community behind you, you will have the resources to deal with any teething issues or growing pains.


  • Marcus Maxwell

    Consultant

    Marcus’s passion is to help clients on their DevOps journey. From automating build pipelines and managing containers at scale to solving security issues and helping out with organizational problems.

    He tries to take a multidisciplinary approach to solving issues and always makes sure to over communicate with the client's team, so that everyone knows what the issues are at hand and how we will solve them together.

    More Articles by Marcus