Live data from Hacker News

Do I Need Kubernetes?

mbird.biz

171–180 of 180 posts

Re: Do I Need Kubernetes?

#171
post #72

Probably not. Why not utilise ECS/ Fargate and attach managed services, rather then tending a whole now flock of things?

I find ECS/Fargate and managed Kubernetes not a bit easier to manage than Kubernetes itself. On the other hand, the inflexibility or vendor-specificity of these requires as much learning as you'd use FOSS tools. Also those skills are not transferable to an other cloud vendor, which might happened to be required if your primary cloud provider does not cover markets you supposed to operate in.

Re: Do I Need Kubernetes?

#172
post #160
post #74

Earlier quoted context omitted.

Seriously though, the world needs a solution for Kubernetes like problems that involve UDP and multicast.

Do you mean that UDP capabilities are lacking on Kubernetes workloads? Serious question.

Multicast is definitely lacking (well, it’s completely absent if you’re using Calico), but even for regular UDP there’s a big problem if you care about latency (and if you don’t, why are you using UDP?) Anecdotally, I’ve heard people complain that UDP dropout on their clusters is just too high to actually support the kind of things they want to do. Equally, UDP based products like Tibco FTL just literally aren’t supported on Kubernetes environments.

None of this means I have any answers, I’m afraid.

Re: Do I Need Kubernetes?

#173
post #6

> Run your applications in Docker from day 1 (with docker-compose it’s as valuable for dev as it is for production) and think carefully before letting your applications store local state. I think this is the key take away for many startups. Get it so you: 1. Have a single-command way to bring up your entire backend 2. That command can run on your dev machine 3. You document all of the settings for your containers and…

How do you make sure it is available on container_name.local.company.com whenever a new container is added?

You can setup wildcard DNS names or use `{STAR}.{localhost,local}` for local development. Just use a reverse proxy on `:80` that allows you to define wildcard subdomains like `container_name.{STAR}` or setup the reverse proxy to automatically take the subdomain and use that as the backend server name (should be possible in nginx).

HN uses * for formatting so it's been replaced with {STAR}

Re: Do I Need Kubernetes?

#174

Earlier quoted context omitted.

> do you have about a million dollars to spend on building and maintaining it all? Then you need Kubernetes. I think you're overstating the investment necessary to overcome the initial complication of Kubernetes and also understating the benefit of being on a platform with a massive and thriving community behind it. As an example, in a prior role, there were a set of data engineers that would receive data in the form…

What happens when your car's A/C stops working? Most people think, I'll just get a little can of R134a, fill up the system, and it'll be good as new. Somebody said they did that once and it worked just fine, so it should work for you too, right? I mean, it says so right on the can, and there's YouTube videos of it and everything. The trouble is, A/C is a complex system. There are moving pieces with specialized oils t…

My AC stopped working. In my spare time, I learned a new trade and replaced all my ductwork, the air handler, and the compressor unit with a new modern VRF system and am presently enjoying my air-conditioned home in this bay area heat wave.

Point being, you're asking the wrong guy.

Edit: I see you wrote "car's AC". My answer is pretty much the same.

Re: Do I Need Kubernetes?

#175
The article outlines a very nuanced detailing of how to answer that question, but I have a more blunt first consideration: If you need kubernetes, you don't need to ask whether you need it.

Basically, I think that a team/product knows when the time has come in which the infrastructure has grown in complexity so much for it to need something like kubernetes to orchestrate it. If there are doubts, then whatever current setup is in place* is probably still enough and kubernetes is beyond what the team requires.

I am very proud of the one time I managed to convince both my then tech lead and project manager, in one of my past jobs, to move away from kubernetes into a simpler architecture leveraging docker, compose and PaaS.

* Hopefully one using docker and compose or similar, as mentioned in the article.

Re: Do I Need Kubernetes?

#176
post #42

Earlier quoted context omitted.

There are a lot of projects these days that aim to use Kubernetes as a docker-compose environment. I personally use http://skaffold.dev/ with either a local Kubernetes cluster built with https://github.com/rancher/k3d or https://github.com/kubernetes-sigs/kind . I think there's a very easy argument to be made that says that running K8s locally is overkill, but what I will say is that if you run your applications loca…

Neither k3d (k3s) nor kind support building of images since they use containerd directly, which [building] seems to be a requirement for development environment. This means that you need to build your app using Docker, and then import it to k3d/kind environment, thus needing local registry (not enabled by default), which means that images are duplicated.

I use a `buildah` to build images in a k3s container. You'll have to enable user_namespace at boottime on your k3s host though.

Re: Do I Need Kubernetes?

#177
post #119
post #103

Earlier quoted context omitted.

Ask every enterprise that existed prior to 2018? Even for small and mid-size enterprises, manual deploys aren't that huge of a deal. Automation with some bash scripts can get you pretty far. Especially if you're only managing a monolith or two. I've worked in some platforms that absolutely defied automation due to their proprietary nature. It just meant that we'd need a few people to spend 1-2 hours every two weeks t…

To be clear, I was more asking how people achieve the sort of fast bootstrapped dev environments the parent comment describes using k8s, especially where you’re not necessarily talking about simple topologies like a monolith plus a database.

Option 1: Everyone develops on the CI/CD platform.

Ops gives devs "disposable environments" to do their testing in. Basically, GitHub + Jenkins + Terraform + AWS. I've used this to stand up real infrastructure every time a PR is opened, and pipelines run against the infra. Code and infra match each other because they both exist in the same branch/repo (monorepo; you can of course do multi-repo, just takes more coordination). It's all destroyed as soon as the PR is closed, but you can also keep it up to do dev work against. You can also keep one copy of the latest master branch up at all times (the "dev" or "cert" or "test" infrastructure) as a shared test environment. Downside: you have to have access to the network (which is in AWS, so that's not so difficult). Upside: the dev environment always mimics production, devs don't need to do anything to stand it up.

Option 2: A bunch of mocks, and scripts to stand up stuff in Docker, using docker-compose or something else. This becomes a bit of a problem to manage with lots of devs, though, and docker-compose is not a good model for production deployments.

Re: Do I Need Kubernetes?

#178

My assessment is that if you have a large, complex micro service environment with several applications, docker may be a good route to take as an interim to cloud native. If you have a relatively simple deployment structure (one big application with 10-20 services), maybe you don't need to add the docker skill to what you're already doing. If you're in the process of rebuilding your applications and you've decided clo…

Containers are a good tool for scaling resources?

Re: Do I Need Kubernetes?

#179
post #119

Earlier quoted context omitted.

To be clear, I was more asking how people achieve the sort of fast bootstrapped dev environments the parent comment describes using k8s, especially where you’re not necessarily talking about simple topologies like a monolith plus a database.

Option 1: Everyone develops on the CI/CD platform. Ops gives devs "disposable environments" to do their testing in. Basically, GitHub + Jenkins + Terraform + AWS. I've used this to stand up real infrastructure every time a PR is opened, and pipelines run against the infra. Code and infra match each other because they both exist in the same branch/repo (monorepo; you can of course do multi-repo, just takes more coordi…

Thank you for describing option 1, which is really what I was picturing but seemed ambitious enough that maybe nobody tried it.

Re: Do I Need Kubernetes?

#180
post #178

My assessment is that if you have a large, complex micro service environment with several applications, docker may be a good route to take as an interim to cloud native. If you have a relatively simple deployment structure (one big application with 10-20 services), maybe you don't need to add the docker skill to what you're already doing. If you're in the process of rebuilding your applications and you've decided clo…

Containers are a good tool for scaling resources?

It depends on the app. If it's an existing app, a container is fine. If you're building a new app and you don't care about the infrastructure, Serverless is better.

My problem is that eventually all apps will be rewritten...and it's probable they will be in some kind of Serverless manner.

Containers still have some separation of concerns issues as well as maintaining state or sharing data.

My default would be Serverless with a plan B for Containers and a plan C for VM's.

Post reply on HN