Kubernetes is widely agreed to be the premier infrastructure API and is expected to maintain that position for quite a while. The learning curve can be rough, causing some to doubt if the benefits outweigh the cost. Certainly there is plenty of hype and no shortage of FUD, but what does it do you for, and what is required of you?
Kubernetes - what is it good for?
A short list of complex problems Kubernetes tackles for you:
- Rolling, zero-downtime deployments with one command
- Self healing infrastructure (eg: automatically replaces failing AWS systems)
- Service Discovery via DNS (eg: redis is located at "redis.production.mycluster")
- Vendor lock-in traps almost entirely removed (Kube can run on anyone's cloud!)
- An infrastructure that allows easy log aggregation and audits
Kubernetes - what makes it so hard?
The main pain points with getting started tend to be:
- Cluster bootstrapping (Which version? Which cloud? Which cluster tool? Hosted or DIY?)
- Networking layer (A load-balancer per application? An ingress controller?)
- Cluster-wide security settings (PodSecurityPolicies?) and security updates
- Designing a Deployment object and other configurations
- The missing "complete picture" (What do real, live, in-production configs look like?)
- Most guides assume you're a veteran Linux user
KubeSail is a hosted Kubernetes provider with features aimed at fixing the Kubernetes onboarding experience. Our mission is to make the benefits of Kubernetes more accessible to all developers. To that end, we offer a free managed namespace. We're working on building Kubernetes development tools and tutorials to make it easy to deploy and host applications the right way.