Despite its popularity, many companies continue to face a wide range of problems when using or deploying Kubernetes. According to the most recent Cloud native Computing Foundation (CNCF) survey, security (46%), networking (42%) and storage (41%) were cited as the top challenges for Kubernetes users.
So how do you actually manage Kubernetes? How do people actually implement and run Kubernetes on an ongoing basis? There isn’t a one-size-fits-all methodology to this and a variety of management philosophies have emerged. Here’s are four of the top ways that forward-thinking companies are managing Kubernetes today.
1. Manual Kubernetes Management
This is for the hard-core Kubernetes purists and is definitely the hard way. Managing Kubernetes manually is exceptionally difficult. There are multiple, incredibly time-consuming steps in the process, and there is absolutely no management layer after you get the platform up and running. So, you have to do everything yourself. This methodology is incredibly risky for any size company, both big and small.
At this stage in the Kubernetes lifecycle there are very few people that manually manage the technology.
2. DIY Configuration Management
If you find yourself in the camp that is drawn to manual management, you would most likely adopt a DIY configuration strategy instead. There are several free and easy apps that you can leverage for this approach such as Kubespray, KOPS, and Kubeadm. However, these tools are deceptively easy. While they are good for “hello world”, they don’t work for product use cases at scale. If something goes wrong you don’t really have many options and there is no vendor to choke. It is up to you to update the cluster. Plus, you have to adopt Kubernetes standard out-of-the-box security, which may not check all of the boxes for your organization.
Basically, these tools are just a way to get a Kubernetes cluster up and running—nothing else. Because it lacks important auxiliary components, you need a pretty solid plan and place for after your cluster is live.
3. Vendor Configured Management
If you are not up for DIY, there is also the option of vendor configuration. By leveraging a vendor, like Ansible, you can get easy cluster provisioning. However, this type of management has a hard-coded infrastructure. In other words, the only playbook available to you is the playbook developed by the vendor. This method also doesn’t include any auxiliary components—the management is all up to you. While this can be an easy way to get up-and-running for some, it can be very limiting.
4. Managed Service By A Cloud Provider
If you are looking for a way to manage Kubernetes that is less passive and more intelligent, the most advanced management methodology is management through a cloud provider. A cloud provider can enable you to automate a lot of your Kubernetes management, providing easy provisioning for multiple clusters, standard centralized management, and by leveraging a cloud provider you do get those auxiliary components that you need.
There are a variety of public clouds that offer this for Kubernetes—like Google Container Engine, Amazon ECS, or Azure, however if you go this route you can’t run Kubernetes in any other environment.
Since many organizations run on hybrid clouds, you need a solution that can enable you to run Kubernetes anywhere— including public clouds, bare metal, and virtual machines. For this type of flexibility you need to use a platform like Mesosphere.
For more tips that can help you effectively manage Kubernetes, download our latest eBook “The Quick and Easy Guide to Automating Kubernetes.”