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.
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.
We use Kubernetes to deploy our microservices on different servers automatically. The addressed business problems are deployment and lifecycle management of our microservices as well as checking the current state and command line output for troubleshooting if necessary. It's a very central software in our organization because it saves much time and helps to keep an stable environment
Pros
LCM Management
Keeping an healthy, reliable environment
Scalability
Cons
Learning Curve: K8s is hard for beginners
Storage Management could be simplified
Upgrading k8s itself
Likelihood to Recommend
We use Kubernetes in different scenarios in our company. These ones are the ones which are very well suited in my experience:
Microservices: We use microservices in our automation team and deploy them with Kubernetes. This works like a charm with Kubernetes as it is designed to manage multiple services. Also it's easy to deploy all the services on different namespaces and thus having validation, reference and production environments without having lots of maintaining work for these namespaces. Kubernetes helps to keep the system reliable and healthy and keeps old containers live when a new one fails to instantiate - this way it's not risky another to do system upgrades. Also keeping an overview of the complete system and it's state is pretty easy in this scenario. We also use k8s in cloud-native applications:
The same advantages as listed above apply to this scenario: It helps to focus on the applications itself because k8s supports the complete lifecycle management and supports scalability and reliability of the system. Kubernetes is in my experience not appropriate for small and non-containerized applications. Especially for small ones it's much easier to rely on docker because starting with Kubernetes and initially setting it up takes much more time and it would be overpowered for a small application. Also using K8s for non-containerized application could add a lot of workload as the application first needs to be adapted to fit in the requirements of k8s.
VU
Verified User
Employee in Information Technology (10,001+ employees)
We use Kubernetes in a big bare metal cluster, and we are here at the Red Hat summit to talk about a migration directly to OpenShift to create an hybrid infrastructure that can help us to achieve a more resilient services for our clients, actually we got a lot of problem with the limits of k8s, especially with the calico service middleware, when our transactions are with high demand calico gets crazy and reset connections, for example, also we got and issue with the middleware limits, we are running 160 pods for worker, and we got 6 mega hardware workers, that we cant use it fully hardware for the middleware limits, thats the reason we are leaving k8s and working in a migration to OpenShift en AWS
Pros
multiples deploys in the same infraestructure
escalability of the solution
fastes deployments automatized with ansible
Cons
posibility to handle better the hardware limites, if my hardware is very powerfull i cant use it fully because the limites that i explained before
Likelihood to Recommend
i think that Kubernetes is well suited in multiple deploys schemas where you don't need full access to the hypervisor, for other instances is better to use a virtualization schema, I think that today Kubernetes its a little bit green to move all traditional infrastructure, but for infrastructure oriented to microservices is better than swarm, because you can find better resources online and better support of the community, also works great within the limits
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.
Currently we are using Kubernetes in our project to orchestrate the containers. We are using it for our banking client where some point of time user transection get increased while they try to use banking applications. whenever load get increase Kubernetes spin new pods in the cluster using replicaset to handle the load of user transections.
Pros
container orchestration
Horizontal pod scaling
load balancing
Cons
Routes help in exposing internal traffic
GUI interface
Monitoring tools like Prometheus and Grafana
Likelihood to Recommend
Kubernetes really required where we expected user load fluctuate. Kubernetes handles it very well by spin new pods of same application when load get high and terminate pods when load get reduce. it do all these thing without any manual intervention. We just need to define the HPA to perform it. we can easily run it on clouds.
On the foundation, Kubernetes manages containers such as docker containers or from other technology and it helps you manage containerization applications that are made of hundreds of containers in different environments such as physical machines, virtual machines or cloud machines, or even hybrid deployment environments. As in my specific scenario, we install a Kubernetes cluster on CentOS 8 with one master node and two worker nodes for orchestration of our existing applications containers.
Pros
With high availability, the application has no downtime means always accessible to users.
Users have a very high response rate from the application means high performance with scalability.
Backup and restore - Disaster recovery.
Cons
Specifically, the installation process of the k8s cluster on Linux machines such as CentOS has required an experienced person.
Kubernetes requires a lot to learn for beginners.
For small applications k8s overkill.
Likelihood to Recommend
Along with all the best features and support by k8s, the automatic container scheduling to worker nodes and also self-healing containers which is what I like the most. On the other side, when I was installing the k8s cluster on CentOS 8, it was quite difficult for me, but never mind it is working as we expected and it is a one-time effort. Especially, in my case, there are more than 7 application containers required to run and communicate with each other, so for us, Kubernetes is an optimal solution.
VU
Verified User
Engineer in Research & Development (201-500 employees)
We have moved almost all the stateless services to Kubernetes so managing the umpty number of services can be so easy. Kubernetes helps us in scaling the services up or down based on business needs. It helps us in upgrading the bunch of clusters with zero to minimal downtime based on the applications. We also moved stateful database services (mostly NoSQL) to Kubernetes to manage a single place and to keep the cost down.
Pros
Scaling the application processes/pods up/down based on business needs.
Managing the pods from a single source.
Better security along with different layers of security.
Orchestrating the pods and the available resources in different machines.
Cons
Easier way to update multiple deployments.
Better way to manage backups.
Likelihood to Recommend
Kubernetes as such makes our life easy in terms of deploying, orchestrating, and managing stateless and stateful services/pods from a single place along with security. We use k9s which makes it easier to manage Kubernetes because of the simple but effective GUI it provides. When it comes to database/stateful services we need to be more cautious when it comes to managing storage. Also, unless tested properly Kubernetes needs some more tweaking when it comes to hosting RDBMS databases.
VU
Verified User
Administrator in Information Technology (1001-5000 employees)
I am working in a company that is currently working on moving everything to the cloud. We want to leverage as many as cloud managed services as we can. Kubernetes came to our sight when we thinking of containerizing our on-premises servers for fast and easy deployment to cloud. We are still experimenting with Kubernetes but based on what we've got now, it works perfectly for our department.
Pros
Kubernetes is a great tool for managing Docker images. It has great features for managing your containers.
It is supported almost in every cloud platform. AWS, GCP, Azure. We are mainly using GCP for our products and Kubernetes works great in it.
It is not hard to learn. Although you can learn and deploy your Kubernetes in a hard way, you do not have to.
Cons
I know Kubernetes was designed to be stateless and it has a lot of reasons to do it. But working to make stateful can be hard sometimes.
Like any other cloud migration projects, using Kubernetes can be a hard thing to bring to the team. I would not see that as a con of Kubernetes', just a fact.
Kubernetes is very easy to deploy in the cloud but not easy for platforms other than AWS, GCP, Azure.
Likelihood to Recommend
If your company is 1) looking into moving to cloud, 2) thinking of designing a CI/CD pipeline, and 3) comfortable with taking the time and effort to deploy clusters, then Kubernetes is definitely worth the resources. It will bring much more benefits with almost no tradeoffs. But for small size companies who have few servers, Kubernetes might not be the best choice.
VU
Verified User
Engineer in Information Technology (10,001+ 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