TrustRadius Insights for Kubernetes are summaries of user sentiment data from TrustRadius reviews and, when necessary, third party data sources.
Pros
Flexibility in Customization: Many reviewers have praised Kubernetes for its flexibility in choosing networking, storage, monitoring, and other solutions, allowing them to customize their workload according to their needs. This feature has been appreciated by a significant number of users.
Seamless Upgrades: Users have mentioned that Kubernetes provides the ability to upgrade applications to a new version without any downtime, making it seamless and efficient. Several reviewers have highlighted this as a valuable feature of the platform.
High Portability: The high level of portability offered by Kubernetes has been positively acknowledged by many users. They appreciate being able to move their applications to different environments easily.
Kubernetes is widely used in the organization as the main workload for all microservices and applications, including infrastructure and dev/sec/ops deployments throughout the stack. Our Kubernetes software uses all of the orchestration's capabilities. As a tool for Kubernetes we use VMWare Tanzu.
Pros
Work get done fast.
Deployments are easy.
Infra setup is easier than ever.
No downtime.
Cons
Broader support for older software.
Get easier on the update cycle and introduce fewer but more not-so-breaking changes.
A dashboard that provides a whole Kubernetes experience (Such as OpenShift or similar products) is missing.
Likelihood to Recommend
The Orchestrator is very well suited for fast-paced organizations where deployments are a must. It's also well-suited for organizations with multiple teams that want to use multiple Kubernetes clusters according to their needs. The scenario where it's less appropriate is with organizations that usually do not require containerized applications.
VU
Verified User
Engineer in Engineering (Banking company, 51-200 employees)
Kubernetes allows to create a unified compute and scheduling substrate across many potentially disparate providers and vendors. Even more importantly, this substrate can then be used to provide developers an abstracted platform to use. That, of course, requires layers of automations and services, but that's where the unified approach of using standardized Kubernetes-based APIs and concepts pays off. Everything else is just side effects and depends on how well you execute.
Pros
Standardized APIs
Scheduling workloads
Managing resources
Cons
Complexity
Overhead
OOTB mechanisms sometimes not efficient enough (mitigated by using DIY tooling or something that is not a core k8s offering but exists in the rather rich ecosystem). HPA would be an example
Likelihood to Recommend
Here's the thing - Kubernetes is a carrier grade platform. It is most definitely not for everyone. If you only need to manage a dozen computing nodes (or a couple dozen, for that matter), for a relatively small number of workloads, if your usage patterns are relatively static - it is very likely you do not *need* Kubernetes. Its complexity costs - in learning, in maintenance, in overhead. Simpler tools like docker-compose, Hashicorp Nomad or Amazon ECS might fit your use case more efficiently.
However, at certain scale of things - nodes, workloads, services, number of developer teams, Kubernetes starts to become a viable platform that can enable efficiencies of said scale, both operationally and conceptually.
VU
Verified User
Engineer in Engineering (Information Technology & Services company, 5001-10,000 employees)
I deploy & manage telco workloads on top of Kubernetes. These are called CNFs (Containerized network functions) which are legacy telco applications converted into K8s objects & connected via a networking & storage solution of your choice, managed by K8s. Just like every other industry, Telcos are no exception converting all their legacy applications sitting on proprietary hardware & boxes to COTS hardware & software architectures adapted toward cloud technologies. Kubernetes helps us to manage the CNFs efficiently & gives a better uptime as compared to VM-based architecture. I see the scope of flexibility & easy scaling in K8s as compared to any other technology.
Pros
Makes sure that the workload remains UP & running by maintaining the desired state.
Gives a lot of flexibility in choosing the networking, storage, monitoring, etc solutions of your choice.
The biggest advantage is to upgrade the application with a new version without any downtime.
Portability of the code is possible up to a great extent.
Cons
Flexibility gives birth to complexity & therefore designing an application on K8s is also complex.
Writing Yaml manifests manually & then validating them for errors is a pain that should be worked upon with a solution that can write YAMLs & Helm charts in the background with the user designing the application on a GUI-based sketch. Just like they do in OpenStack.
The overall approach of operations should be shifted from CLI to GUI-based for ease of use.
Due to a lot of objects & new concepts, the learning curve is really flat i.e. slow.
Adding GUI-based operations like finding the exact point causing latency OR showing the POD consuming the highest CPU/RAM would be of great help.
Likelihood to Recommend
K8s should be avoided - If your application works well without being converted into microservices-based architecture & fits correctly in a VM, needs less scaling, have a fixed traffic pattern then it is better to keep away from Kubernetes. Otherwise, the operational challenges & technical expertise will add a lot to the OPEX. Also, if you're the one who thinks that containers consume fewer resources as compared to VMs then this is not true. As soon as you convert your application to a microservice-based architecture, a lot of components will add up, shooting your resource consumption even higher than VMs so, please beware.
Kubernetes is a good choice - When the application needs quick scaling, is already in microservice-based architecture, has no fixed traffic pattern, most of the employees already have desired skills.
We have multiple Kubernetes clusters that deploy mainly web-based applications. Containers/Kubernetes. Helm has become a widely used platform for deploying applications and many applications offer this as their preferred standard deployment.
Pros
Deploy applications on multiple nodes.
Store application definitions in source control.
Abstract away the implementations of storage and networking.
Cons
Kubernetes is very high-maintenance compared to VM deployments in my opinion.
Some failure scenarios are hard to recover from.
High effort is needed for upgrading clusters and deployments to new versions of Kubernetes.
Likelihood to Recommend
Kubernetes is well-suited for deploying stateless, web-based applications. We have had mixed results with deploying databases on Kubernetes, and suspect it has a lot to do with the characteristics of the underlying storage provider. Lastly, Kubernetes is not well-suited for non-HTTP workloads and those sensitive to certain IPs, e.g. SMTP gateways.
VU
Verified User
Engineer in Engineering (Computer Software company, 1-10 employees)
Kubernetes is currently used as an experimental product for building and managing Machine Learning pipelines (ML) at LinkedIn. It is currently used by very few teams to access GPU clusters. Kubernetes makes it easy to deploy training and monitoring workloads on clusters really simple with a robust CLI. It has a very small learning curve as is mainly driven by config files.
Pros
Complex cluster management can be done with simple commands with strong authentication and authorization schemes
Exhaustive documentation and open community smoothens the learning process
As a user a few concepts like pod, deployment and service are sufficient to go a long way
Cons
We had several problems with its NFS, which is responsible for syncing the code across the cluster
On several instances the pods go into UNKNOWN state in which case restarting the entire node is the only solution
As a user of the existing setup given to me, I wasn't able to allocate only some CPU cores on a single host. It was either all or zero making cluster utilization sub-optimal
Likelihood to Recommend
Kubernetes is very easy to get started and to set up
It has various deployment options, file systems and service types making it suitable for several use cases besides Machine Learning
Extends the functionality of Docker's rich functionality making it a deadly combination
The rough edges in file system, utilization and resource management should be fixed to be adopted as a standard in a company
Its extremely vast Python library makes it easy to build services on top of kubernetes. However the API is quite complex and documentation is quite poor
Kubernetes has become the microservice container orchestration platform of choice. All our software deployed into Kubernetes - including public websites.
Pros
Scales extremely well
Handles proper rolling updates of microservices
Makes it super easy to establish a proper CI/CD pipeline
Makes it easy for developers to adopt and therefore use
Cons
Could improve user access. Currently uses RBAC - but depending on your implementation (i.e. Amazon EKS) - setting up permissions and adding users to the cluster that are to use the cluster only is sometimes challenging.
Security can always be improved
Hooks for identity management; there are open source projects (i.e. Dex) - would be nice to see these adopted to the mainline
UI Dashboard needs some major improvments
Likelihood to Recommend
Kubernetes is well suited for deployment of container based applications and microservices. Anything that doesn’t require a lot of disk space (i.e. a database) works really well with this system.
VU
Verified User
C-Level Executive in Engineering (Internet company, 11-50 employees)
We as an organization have very diverse hardware infrastructure. We have our own data centers and multiple cloud providers. The technologies we use are also again very diverse, we use VMs, containers as well as server-less technologies. When it comes to container technologies we are using Docker and orchestrate it with Kubernetes. In most of the cases, each Business unit have their own Kubernetes clusters for application hosting, and categorize it separately for preproduction and production environments.
Pros
Kubernetes can run anywhere, i.e in in-house datacenters as well as in Public cloud
Very efficient management of containers and self healing.
Out of the box Automated deployment and rollbacks. And support for many deployment strategies like blue-green, rolling update and recreate.
Efficient secret and configuration management
Cons
Understanding Kubernetes is little hard and has a steep learning curve.
Kubernetes is complex, it has its own concepts called pods, services and deployments.
Debugging and troubleshooting in Kubernetes is quite hard and requires experience.
Likelihood to Recommend
Kubernetes is a container-centric platform which can be run on in house data centers as well as public cloud. It is not only a platform run Docker containers, but also a very efficient network and application orchestrator. It has very powerful robust and extensible APIs. It is mostly declarative.
VU
Verified User
Engineer in Engineering (Computer Software company, 1001-5000 employees)
Kubernetes was used in my organization by a specific department. The business problem it attempted to address was resource allocation and scheduling. Creating and tearing down containers at will dependant on resource demand. These resources provided API services to the front-end website.
Pros
Resource allocation and scheduling.
Managing container instances and run-files.
Allowing for infrastructure as code.
Cons
Usability and user friendliness.
There is no front end and anything attempting to provide a self-service model must be created currently.
It uses pretty new technologies so there is a relatively steep learning curve.
Likelihood to Recommend
Any sort of stateless service that is under heavy utilization or demand is a great candidate for containers in general and therefore kubernetes. Kubernetes should not be implemented in a specific department or for specific purposes. It is a general solution to a large problem and should be put to use accordingly.
VU
Verified User
Professional in Engineering (Internet company, 51-200 employees)