News for hackers. Stuff that matters.
Re:Google admits Kubernetes container tech is too complex by trinovantes on Friday February 26, 2021 @01:29AM (#26271898)
Kubernetes has to be most complex software I've ever tried to learn. I eventually gave up and decided to stick with simple single machine docker-compose deployments. I figure by the time any of my personal projects actually need to scale beyond 1 machine, I'd probably have enough revenue that I can afford to hire someone else to worry about it.
Re:Google admits Kubernetes container tech is too complex by jillesvangurp on Friday February 26, 2021 @03:23AM (#26272509)
It's the right attitude. The management fees alone for this autopilot thing are 0.10$ per hour. Or about 70$/month. It's a bargain considering all the hidden costs kubernetes imposes in terms of requiring people that know how to tame the complexity associated with it (i.e. very expensive devops people costing magnitudes more than that). Automating those people away is worth money.

I like Cloud Run for the same reason because I can use it without needing a lot of devops skills in my team or without sacrificing my own time (because I have those skills but have more valuable things to do). It allows me to focus on keeping my CI/CD pipeline (cloud run sets that up with a button click) busy with new functionality. And our hosting cost are close to 0$ because we stay below the freemium layer until we actually need to scale.

Edit. corrected the typo 700->70

Re:Google admits Kubernetes container tech is too complex by wdenniss on Friday February 26, 2021 @02:23PM (#26278715)
Hey, it's William from Google here. You're right about the costs, I just wanted to point out that Autopilot does include one cluster in GKE's free tier. So you'll only pay the ~$73/month if you have more than 1 cluster.

There's (almost) no limit to what you can run in one cluster too, and Kubernetes namespaces can help to separate different environments to allow for sharing.

Cloud Run sounds like the perfect solution for your workloads though!

Re:Google admits Kubernetes container tech is too complex by je42 on Friday February 26, 2021 @05:27AM (#26273328)
yep, cloud run is pretty good. unfortunately, it doesnt cover all cases. (i.e. stateful stuff like: websockets and chunking, and recurring jobs)

for these case, i still have gke cluster around.

Re:Google admits Kubernetes container tech is too complex by flakiness on Friday February 26, 2021 @09:01AM (#26274799)
Nitpick FYI: WebSocket is coming. https://cloud.google.com/blog/products/serverless/cloud-run-...

(Still agree that Cloud Run isn't for everyone.)

Re:Google admits Kubernetes container tech is too complex by mping on Friday February 26, 2021 @03:40AM (#26272632)
I think you mean 70$, not 700$
Re:Google admits Kubernetes container tech is too complex by jillesvangurp on Friday February 26, 2021 @03:55AM (#26272719)
Eh yeah, thanks for correcting me.
Re:Google admits Kubernetes container tech is too complex by dilyevsky on Friday February 26, 2021 @02:59AM (#26272351)
Long time ago I worked on HA setups for telecom (Wimax/LTE) equipment. Kubernetes is complicated but has nothing on those systems. Just to give you some idea - https://www.metaswitch.com/hs-fs/hubfs/Blogs/3gpp-ts-23-228-... (doesn’t even cover everything)
Re:Google admits Kubernetes container tech is too complex by 2sk21 on Friday February 26, 2021 @08:16AM (#26274421)
The very term "HA" still gives me nightmares. It can be very hard to get HA to work correctly. Many years ago, I worked in a startup and one of our main offerings was an HA network device. It was unbelievably finicky to get it to work in the first place and even harder to update the software on an HA cluster.
Re:Google admits Kubernetes container tech is too complex by isbvhodnvemrwvn on Friday February 26, 2021 @09:26AM (#26275059)
It's HA by intimidation. The cluster is complex enough that nobody even wants to touch it, and since human errors are the most common type of error out there, it breaks much less often.
Re:Google admits Kubernetes container tech is too complex by dilyevsky on Friday February 26, 2021 @06:01PM (#26280860)
Yes I believe this is why you see things like k3s in some iot/edge deployment scenarios. Because other alternatives for HA like OpenSAF have been severely lacking for years
Re:Google admits Kubernetes container tech is too complex by NathanFlurry on Friday February 26, 2021 @02:00AM (#26272047)
I’d recommend giving Docker Swarm + Traefik a shot. It’s dead simple to set up manually and has very little “magic” in how things work under the hood. Plus much of your existing Docker Compose config will work out of the box. It vastly simplified the deployment process too.

I previously avoided Docker Swarm for ages since I assumed it involved the same level of complexity as k8s. I also initially figured that managed k8s would be a safer bet than managing my own Swarm cluster, but if you’ve used anybody’s managed k8s (or read https://k8s.af), you’ll realize that every cloud provider has their own closed source fork of k8s with plenty of nasty bugs that you can’t do anything about.

Re:Google admits Kubernetes container tech is too complex by sofixa on Friday February 26, 2021 @02:34AM (#26272216)
Docker Swarm is pretty much abandonware/on life support at best, so one should avoid using it for new stuff.

Hashicorp's Nomad is the best choice on the complexity for features scale IMHO, and that's why i'm writing an article how great it is, how easier some things are and what's missing compared to Kubernetes.

Re:Google admits Kubernetes container tech is too complex by KronisLV on Friday February 26, 2021 @05:31AM (#26273352)
And yet, Docker Compose is pretty popular for local development, so much so, that it's not uncommon to find a docker-compose.yml in the repositories for many open source projects. And Docker Swarm builds on that, by bridging the gap between Docker Compose and multi-server deployments, with tools like Swarmpit and Podman for easier management of it as well, much like Rancher does for Kubernetes. I agree that Docker Swarm isn't developed as actively as it should be, but disagree that it should be avoided and disagree that it should be allowed to die. In my opinion, it's a more minimalistic and more sane approach to container orchestration with minimal up front investment (just install Docker and edit your Compose files a bit with deploy constraints, you're ready to go).

Hashicorp's Nomad is good if you have a strong engineering department or need to run mixed workloads (e.g. both containers and native processes) because its abstractions are well suited for this, but HCL, their DSL for describing deployments, doesn't map nicely to neither Docker, nor Docker Compose files, knowledgebases or tutorials. Nomad's integration with Consul is a major boon, but the need to run your own CA for safe communication between nodes, Nomad's read-only Web UI, and the oddity of HCL at times also makes it a non starter for me and some other people.

At the end of the day, these are just two data points, sadly the job market for Kubernetes also dwarfs everything else and sadly many companies will be burned by this and will learn nothing at the end of the day. Ideally, i think that the best route would be evaluating the orchestrators and other technologies that you want to use by doing pilot projects and such, and looking at them in real world circumstances, to determine their fit for your goals and needs (Web UIs will matter for some, but not for others, for example; as will onboarding and the need for long term investment vs plug and play).

Edit: as for Kubernetes, personally i find the K3s distribution to be an almost reasonable alternative to Swarm/Nomad, if the situation calls for it: https://k3s.io/

Edit #2: it would actually be pretty awesome to read more about your experience in this article that you're writing!

Re:Google admits Kubernetes container tech is too complex by stewartmcgown on Friday February 26, 2021 @06:03AM (#26273541)
Absolutely. We use Swarm in production at ecoeats and it's a dream for simple clustering with multiple services. Using Hetzner clouds volume plugin gives EBS-like functionality too.
Re:Google admits Kubernetes container tech is too complex by rigrassm on Friday February 26, 2021 @02:29PM (#26278802)
> Nomad's read-only Web UI,

Nomad's UI has a good number of functionalities that can be controlled through it. Sure, there are some more lower level operations that are CLI only(though this seems to be something they are actively working to improve on) but most of that probably won't be needed but someone just trying to run a couple containers on a single node.

Re:Google admits Kubernetes container tech is too complex by KronisLV on Friday February 26, 2021 @07:50AM (#26274234)
Correction:

> Swarmpit and Podman

I actually meant Swarmpit ( https://swarmpit.io/ ) and Portainer ( https://www.portainer.io/ ).

Podman is another container runtime that acts as an alternative to Docker (even if it is not feature complete), so i misspoke.

Re:Google admits Kubernetes container tech is too complex by drewlander on Friday February 26, 2021 @09:00AM (#26274791)
We use swarm for a small cluster in production a well. Extremely easy, zero downtime deployments are fantastic. I can explain it to someone else and quickly get them up to speed. Having said that, the fact that it seems to be on life support has made me look at other alternatives, even a simple docker-compose per node.
Re:Google admits Kubernetes container tech is too complex by alephu5 on Friday February 26, 2021 @08:35AM (#26274586)
I quite like swarm for its compatibility with docker-compose, in particular to have the option of zero downtime deploys. If I wanted to manage a real cluster though I'd probably use nomad or GKE to avoid getting burned when the system is under load.
Re:Google admits Kubernetes container tech is too complex by fy20 on Friday February 26, 2021 @02:15AM (#26272119)
I use Swarm at home (only on a single node, because it turns out 3 are overkill for my needs) and it's been running great for 6 months so far. Before that I tried various incarnations of k8s and eventually they'd just destroy themselves up and require a rebuild (the main issue was persistent storage).

My only complaint with Swarm is there isn't an easy way to expose containers directly on the network (like host networking). I have a few containers (wireguard and minidlna) which need this, so those are running through docker-compose. I've tried macvlan but wasn't able to get that working in Swarm mode.

Re:Google admits Kubernetes container tech is too complex by lub on Friday February 26, 2021 @02:33AM (#26272213)
Did you try this?

  networks:
    - host
https://docs.docker.com/network/host/
Re:Google admits Kubernetes container tech is too complex by fy20 on Saturday February 27, 2021 @05:54AM (#26283996)
Maybe it has changed since I built it, but I wasn't able to get this working with Swarm services. I had to convert them to docker-compose to make it work. The docs suggest it should work with Swarm mode though, so maybe I need to try again.

Ideally I'd like to give each service its own IP on the network, which was possible with how I had k8s setup.

Re:Google admits Kubernetes container tech is too complex by diarrhea on Friday February 26, 2021 @05:30AM (#26273343)
Mind sharing a bit more on your home setup?

Asking because I never saw the point in multiple container replicas for simple self-hosted stuff. One container each has served me well so far [0] (Nextcloud, Bitwarden, GitLab), and if they crash, they just get restarted. Multiple containers increase throughput, supporting more users, is that it? It just sounds nightmarish in regards to storage and parallel, conflicting writes.

[0]: One container per component (web, db, cache, ...).

Re:Google admits Kubernetes container tech is too complex by fy20 on Saturday February 27, 2021 @05:49AM (#26283978)
I do have just one container of each thing, but I was originally planning to have multiple nodes. I have 3x ThinkCenter Tiny M73 (with the Pentium CPU) and thought one would be a bit underpowered for everything I wanted to run (it was for k8s), so was planning to distribute services automatically across the swarm. One node is more than enough though, so I'd actually be fine with just docker-compose, but splitting everything up into separate 'services' is nice.
Re:Google admits Kubernetes container tech is too complex by Seb-C on Friday February 26, 2021 @05:03AM (#26273155)
This is a honest question, but may I ask what you found to be hard about it?

For long I was scared of it because so many people say it's crazy complex. But actually it took no more than a dozen of hours for me to learn it and get a working setup on aws.

Maybe being full stack and having a strong knowledge of Linux and Docker helped.

Now I'm not pretending to be an expert with it, and there are certainly traps and mistakes that I didn't experience yet. But I don't understand what people find to be hard about it.

Re:Google admits Kubernetes container tech is too complex by arcturus17 on Friday February 26, 2021 @01:48AM (#26271992)
Maybe your starting instances are workhorses, but if you go from something like a t3.medium to two it’s a ~$60 / mth increase... Not something I’d personally optimize for.

Also why Docker in the first place? I’m genuinely wondering - in the stacks I run (Express / Python) it doesn’t seem necessary at low scale. Elastic Beanstalk, Heroku, Digital Ocean etc all offer facilities for single-command deploys that work out of the box.

Re:Google admits Kubernetes container tech is too complex by TobTobXX on Friday February 26, 2021 @01:58AM (#26272037)
I like Docker for the 'keeping it clean' aspect. Install php, composer and stuff juat because one of the projects you host requires it? Nope. Have to make excessive configuration on a system component just to run another application? Nope. Forgot how you set it up and now you are struggeling at the new machine? Use the Dockerfile.
Re:Google admits Kubernetes container tech is too complex by yyx on Friday February 26, 2021 @04:50AM (#26273079)
vagrant and ansible can help.
Re:Google admits Kubernetes container tech is too complex by AnHonestComment on Friday February 26, 2021 @02:00AM (#26272046)
I use Docker without the network virtualization as a package manager.

Docker make it easy to run the same version of code in different places and let’s things run next to each other without version conflicts.

Also, I think you’re in a very small minority not to care about $720/yr increases in your hobbies.

Re:Google admits Kubernetes container tech is too complex by arcturus17 on Friday February 26, 2021 @02:28PM (#26278788)
GP was talking about projects that had revenue, and about "hiring someone" past a single instance.

I replied that beyond a single instance, you can probably get away with not hiring a K8s devops person and just spinning another instance. I'm not sure you've read this whole thing right.

And yes, I certainly wouldn't mind paying an additional $720 / yr for a project that had revenue; I almost certainly wouldn't want to spend money hiring a specialist, or spend time hyperoptimizing that myself - I make that in about a dozen hours of work, so counting how far one can go down the rabbit hole of optimizing server costs, and the associated cost of opportunity, the economics are crystal clear.

I don't have any successful personal projects but I have significant experience working with clients, and they are sold on the reasoning pretty much every single time ("I can charge you $3,000 for developing this feature, or we can use a paid service for $720 a year").

I also don't see how Docker is going to save you that much money; if you need a certain amount of compute, you need a certain amount of compute. AWS ElasticBeanstalk for instance charges nothing for spinning up an additional instance compared to EC2; there is no overhead for the PaaS aspect of it, like there would be in Heroku. Digital Ocean app platform is the same as EB, AFAIK.

Re:Google admits Kubernetes container tech is too complex by AnHonestComment on Friday February 26, 2021 @07:05PM (#26281336)
GP talked about using Docker to do complex single host deployments until they needed horizontal scaling, which given max VM power, is after they can afford someone to manage it for them.

That makes me think they have multiple services of variable workload packed onto a single host, eg web server, async, and DB all on a single host via Docker.

That’s the antithesis of EB, which can only do horizontal scaling. Docker provides a way to replicate those multiple services in a deployment configuration when you want to set up a host image.

Not using Docker as an easy way to pack it all onto a single box as long as they can is just wasted expense.

Re:Google admits Kubernetes container tech is too complex by justsomeuser on Friday February 26, 2021 @04:45AM (#26273052)
I’m leaning towards using Ubuntu/systemd to start all my services, and using a single container per project with SQLite.

This way:

- I can easily move from dev to prod by using the private container registry

- I have apt-get on the server and just use the default Ubuntu

- No distributed/network state

I used to use Core OS, but all these container OSes are here today and gone tomorrow, and normally have their own config standard. At least with Ubuntu they have LTS and a bunch of Google pages for fixing stuff.

Re:Google admits Kubernetes container tech is too complex by notyourday on Friday February 26, 2021 @06:45AM (#26273801)
systemd-nspawn is the most underrated piece of software on any modern link system. It just works and does exactly what it needs to do. Not to mention using a directory structure as a container image?! What is this sorcery?!
Re:Google admits Kubernetes container tech is too complex by dtech on Friday February 26, 2021 @02:33AM (#26272211)
Yes, k8s is not built for solo outfits and small projects.

In places with 10+ developers and 10+ services on a single cluster it works surprisingly well from the user (developer) side.

Re:Google admits Kubernetes container tech is too complex by bavell on Friday February 26, 2021 @08:40AM (#26274633)
Hmm, I guess I should shut down my business then since I'm a solo founder using k8s exclusively for my hosting for 3+ years...

Definitely a learning curve but honestly not bad if you like ops. Absolutely possible and beneficial for any size team. As always, it depends on what your goals are and how you want to use k8s.

Re:Google admits Kubernetes container tech is too complex by wdenniss on Friday February 26, 2021 @02:28PM (#26278789)
In my opinion (and I'm biased as I work on GKE Autopilot), GKE is viable for a 1 developer project, especially with Autopilot mode (I have my own hobby projects deployed on GKE).

If you were self-hosting k8s, then I'd agree with you.

Re:Google admits Kubernetes container tech is too complex by je42 on Friday February 26, 2021 @05:36AM (#26273382)
I think it is more like: 10+ servers OR 10+ developers. you can have 10+ services as a single developer ;)
Re:Google admits Kubernetes container tech is too complex by emiliobool on Friday February 26, 2021 @04:01AM (#26272754)
docker swarm is a good alternative for you then, comes out of the box with docker and you only need to add a few lines to your docker compose files to make them swarm compatible
Re:Google admits Kubernetes container tech is too complex by einpoklum on Friday February 26, 2021 @05:15AM (#26273243)
> simple ... docker-compose deployments

So, not simple.