Live data from Hacker News

Rolling your own servers with Kubernetes

gravitational.com

31–40 of 209 posts

Re: Rolling your own servers with Kubernetes

#31
post #5

The next-to-last line cracked me up: "The costs can be much lower… or much higher!"

The cost of shiny new tech. "Hey look at all these cool things you could / can do that would lower costs and do other cool things."

Weeks or months later you're still learning about how you do the thing that will maybe lower costs and do cool things ....

Re: Rolling your own servers with Kubernetes

#32
post #11
post #7

Last physical datacenter my team at the time ran our app in we spent weeks troubleshooting some hardware network driver issues that caused the network to drop. Was an enormous distraction and Dell and VMware support were useless at resolving it for us. I’m glad to have others deal with those low level “oh it must just be your setup” issues.

Anecdotal evidence. I've also seen colleagues spend weeks arguing with AWS support while debugging a weird performance degradation issue, that would have been straight-forward to investigate in a bare metal deployment with full control over everything. It's not like the cloud is a magical place where no unexpected issues ever happen. Cloud providers can be surprisingly buggy, especially AWS, particularly at scale whe…

> spend weeks arguing with AWS support

Yup. We've run into that repeatedly. The "we didn't notice anything on our side, please send more screenshots and logs" gets really old when working with "managed services".

Network packet losses/truncations, EKS control plane failures, cloudformation stacks getting stuck in really wierd states, inconsistent cloudformation implementations for new and existing services, ENI weirdness in containers...

Managed services just feel like they aren't - more and more every day. Amazon (or any other cloud) will never have the same investment in your availability and infrastructure as you will.

Re: Rolling your own servers with Kubernetes

#33
post #28
post #7

Last physical datacenter my team at the time ran our app in we spent weeks troubleshooting some hardware network driver issues that caused the network to drop. Was an enormous distraction and Dell and VMware support were useless at resolving it for us. I’m glad to have others deal with those low level “oh it must just be your setup” issues.

Counterpoint: These issues still exist, you just lose visibility into them by putting someone else in between. And usually, the someone else is big enough that you're not a priority.

with limited resource, you have to choose to balance between the stability or more control over your infra. IMO, small companies can't afford both, but also likely they would not need both at that size.

Re: Rolling your own servers with Kubernetes

#34
post #7

Last physical datacenter my team at the time ran our app in we spent weeks troubleshooting some hardware network driver issues that caused the network to drop. Was an enormous distraction and Dell and VMware support were useless at resolving it for us. I’m glad to have others deal with those low level “oh it must just be your setup” issues.

At the scale where owning infrastructure makes sense, that's not a distraction but some team's full-time mission.

Even before that tipping point, you're likely to have a team dedicated to working with infrastructure hosted by a cloud provider. Based off past (hardware) and current (AWS) experience, the team sizes aren't that different.

Re: Rolling your own servers with Kubernetes

#35
post #13

The article seems to focus on K8s with reference to micro-services. How well does K8s do if you're running a monolith?

All of the following assumes you plan on running more than a single instance of your monolithic application. If that's not the case, then ignore Kubernetes, and be glad you don't have the problems it was designed to solve.

If you consider what it takes to manage the end-to-end lifecycle of a single application, monolith or micro-service, you need a solution for the following items: deployments, application configuration, high availability, log and metrics aggregation, autoscaling, and load balancing across multiple application instances.

Kubernetes provides an opinionated way of doing all of those things. For example, Kubernetes leverages container images and declarative configs for packaging and deploying applications. For many people this approach is much simpler than what Puppet, Chef, and Ansible bring to the table in terms managing applications.

When it comes to high availability Kubernetes provides an orchestration layer across multiple machines, grouped in clusters, that deals with distributing applications based on resource requirements and automatically responding to node and application failures. When applications crash, Kubernetes restarts them. When nodes fail, Kubernetes reschedules the applications to healthy nodes, and avoids the failed nodes in the future.

Many of the patterns for managing applications, even monoliths across a handful of nodes, Kubernetes provides out of the box. In essence, Kubernetes is the sum of all the bash scripts and best practices that most system administrators would cobble together over time, presented as a single system behind a declarative set of APIs.

One other major caveat to all of this.

Just like I would not recommend standing up OpenStack from the ground up in order to deploy your monolithic application across a set of virtual machines, I don't recommend rolling your own Kubernetes cluster either. You should strongly consider leveraging a fully managed Kubernetes offering such as Google Kubernetes Engine, Digital Ocean's Managed Kubernetes, or Azure Kubernetes Service.

Re: Rolling your own servers with Kubernetes

#36
post #12

I am curious to see how they recommend handling storage on bare metal k8s.

I highly recommend Rook [1], which is based on Ceph, provides PersistentVolumes to k8s workloads and is also running on k8s itself. [1] - https://rook.io/

I worked on Colossus at Google and Ceph is the closest thing out there. Gregory Farnum gave a great talk about it at the Open Source Summit 2017.

I heard from someone at a large company, though, that it's not getting a lot of love from Red Hat nowadays, even if you're a large paying customer. Now I'm curious.

Re: Rolling your own servers with Kubernetes

#37
post #26
post #17

Earlier quoted context omitted.

I’ve had performance issues with GCP, however I can switch cloud providers in that case without too much effort. With physical hardware that’s much harder.

If you have a well-built and automated bare-metal deployment, it's no harder than switching cloud providers. At the scale where it makes sense to go bare metal, either would be a lot of effort. An extra abstraction layer like k8s makes it a lot easier, which is exciting. It's also precisely why IBM bought Red Hat - a well-built k8s distribution like OpenShift is one of the very few real alternative to public clouds f…

> An extra abstraction layer like k8s makes it a lot easier, which is exciting. It's also precisely why IBM bought Red Hat - a well-built k8s distribution like OpenShift is one of the very few real alternative to public clouds for many companies.

OpenShift is built on a prescriptive mentality. They choose everything for you from OS through pipeline and many deviations are unsupported. As you mentioned there are others, but depending on your environment OpenShift is either a very good fit or square-peg-round-hole.

Re: Rolling your own servers with Kubernetes

#38
post #31
post #5

The next-to-last line cracked me up: "The costs can be much lower… or much higher!"

The cost of shiny new tech. "Hey look at all these cool things you could / can do that would lower costs and do other cool things." Weeks or months later you're still learning about how you do the thing that will maybe lower costs and do cool things ....

Meanwhile the market and mindshare has moved on to the next shiny new tech.

Re: Rolling your own servers with Kubernetes

#39
post #4

You can colo your server and roll your own k8s clusters. But you can't afford the luxury of high throughput networking, EBS, etc., and don't forget HA options (Multi-AZ) for your clusters.

Untrue. I purchased a 48 port 10GbE Arista 7148 the other month on eBay for $320.

Re: Rolling your own servers with Kubernetes

#40
post #13

The article seems to focus on K8s with reference to micro-services. How well does K8s do if you're running a monolith?

You might find this slide deck I wrote useful: "Migrating Legacy Monoliths to Cloud Native Microservices Architectures on Kubernetes"

https://docs.google.com/presentation/d/105ZgwafitwXH6_sWevFH...

Post reply on HN