Live data from Hacker News

Kubernetes for personal projects? No thanks

carlosrdrz.es

71–80 of 278 posts

Re: Kubernetes for personal projects? No thanks

#71
post #58

I work as an engine mechanic full time, and im learning programming as a hobby. Kubernetes to me is like the shade-tree mechanic vs the professional. Professional mechanics use high grade tools that can cost thousands of dollars each. We have laser alignment rigs, plasma cutters, computer controlled balancing and timing hardware, and high performance benchmarking hardware that can cost as much as the car you're worki…

This doesn't make sense, and it's really the opposite of what you're saying. K8s is hard, but for large scale you need something robust that's tested at that scale. A collection of shell scripts is more like a beginner tool set. Yes, it's easy to learn, but it will break when you get serious.

For large scale you have to first make your application capable of scaling. That's a bit that's missing from most of these conversations. Only the simplest programs can "scale up" by just adding more programs - most have to be re-architected to move all the state in the program to some other service.

That is to say, if scaling is your primary concern, you have a dozen other things more important to fix than your choice to use shell scripts vs. Kubernetes.

And, fwiw, Linux has run professional services somewhere around 10x longer on those "beginner tools" than containers have even existed.

Re: Kubernetes for personal projects? No thanks

#72
post #58

I work as an engine mechanic full time, and im learning programming as a hobby. Kubernetes to me is like the shade-tree mechanic vs the professional. Professional mechanics use high grade tools that can cost thousands of dollars each. We have laser alignment rigs, plasma cutters, computer controlled balancing and timing hardware, and high performance benchmarking hardware that can cost as much as the car you're worki…

This is an interesting perspective because I view k8s as the "shade-tree" version of a robust cloud platform. It's cheap, quick, dirty, and probably can take off a few of your fingers if not done carefully, but the payoff is in being able to spin up lots of resources very quickly.

What do the pros use, then? I hear of things like DC/OS, Openstack, I know that Google's got "Borg", which is like professional k8s.

Re: Kubernetes for personal projects? No thanks

#73
post #69
post #63

Earlier quoted context omitted.

> the same thing I do with SmartOS in a far more complex way Citation needed. Yes, Kubernetes runs on Linux kernel and until someone ports it to use something other than iptables and the linux cgroups API, that will be true. But I could say the same thing about being locked into SVR4/OpenSolaris, and I bet you a Coke that a lot more people will agree with me. The Kubernetes slack community has over 48,000 members and…

"Citation needed." https://wiki.smartos.org/display/DOC/Managing+Images https://wiki.smartos.org/display/DOC/How+to+create+a+Virtual... https://wiki.smartos.org/display/DOC/Managing+NICs https://wiki.smartos.org/display/DOC/Using+the+Service+Manag... ...and that's just a small, tiny sampling of what can be done, most of it doable across datacenters with Triton. With SmartOS, one virtualizes datacenters. "seriously wh…

So, am I understanding correctly that this is a virtualization solution? Isn't that not the same thing at all? Virtualization has a lot of overhead, and that would be my first concern, so can you address that?

(My platform team balked at me when I suggested OpenShift, because they had it confused/thought I was talking about OpenStack, and they didn't want to incur the overhead of a virtualization layer. It wasn't until I said for the fifth time that it's a container solution and does not require any virtualization, that they actually tuned back in and stopped asking what hypervisor it used.)

My point is not that I couldn't use it, but that again, we're not talking about the same ballpark. A virtualization solution is not a containers solution. Wait. Wait wait... I'm wrong, aren't I? From a quick google, it looks like Solaris Zones are almost exactly like containers in this way. So this actually does both, huh?

> maybe that should tell you how "simple" Kubernetes is then, unless they're all there to grill smores

I told you in my first post, I'm not going to sugarcoat it. Kubernetes isn't simple, there is some learning curve, but that once you get over it, you are actually over it.

Can you honestly say there is no learning curve to SmartOS?

> I'm a computer science major with formal education and certification in Solaris. ... How much support could I need with such excellent and comprehensive manual pages with lots of examples in them?

I'll take that as a "no". And from what you're saying, it sounds like there is actually no community slack? I don't believe you; come on, where do you go to gripe when you find something stupid? I've seen some projects that appear to only use Github, but when you dig a little deeper, they also have a Slack or some other community organizing platforms where you can reach a person who also uses the software like you do, without an established billing relationship (often times right away) and simply ask about their experiences.

Maybe it's an IRC channel? Maybe you are all consummate professionals and just use mailing lists, but I am skeptical of that.

Re: Kubernetes for personal projects? No thanks

#74
post #21

Oh man, the original article went way over the author's head. The point of the original article was that even though Kubernetes is primarily useful for tackling the challenges involved with running many workloads at enterprise scale, it can also be used to run small hobbyist workloads at a price point acceptable for hobbyist projects. Does that mean that Kubernetes should now be used for all hobbyist projects? No. If…

I do agree with you, but I don't think I really missed the point of the original article. From the original article: > However popular wisdom would suggest that Kubernetes is an overly complex piece of technology only really suitable for very large clusters of machines; that it carries a large operational burden and that therefore using it for anything less than dozens of machines is overkill. I think that's probably…

I don't understand what the operational burden is. We literally do nothing to our K8s cluster, and it runs for many months until we make a new updated cluster and blow away the old one. We've never had an issue attributed to K8s in the 2 years we have been running it in production. If we ever did, we'd just again deploy a new cluster in minutes and switch over. Immutable infrastructure.

It is not like I haven't done it the "old" way. I spent many years doing hand deploys, making deployers, running Ansible/Chef. It is just that we always found we can never confidently update servers running many apps as it would step on other applications. So we'd just make new ones, test and switch. This was not an easy process either. Plus we'd encounter issues like oh someone didn't make a startup script or filled up /var with logs, or had something eat up all the memory. All of these operational problems are gone with K8s. I know what you are thinking "well you did it wrong". Yes sometimes developers do things wrong. But in container/K8s land that wrong stuff is contained, and if you don't do things "right" you can't even run.

So we had operational issues there. Now we have a universal platform that someone can ship their app anywhere and have it run the same. That is a huge win. All for no extra work.

Re: Kubernetes for personal projects? No thanks

#75
post #49

Earlier quoted context omitted.

> using it for anything less than dozens of machines is overkill The question isn't really whether you need dozens of machines, it's whether you can foresee eventually maybe needing dozens of machines. Remember the bad old days when people said that relational databases were worthless because they "don't scale", that using Mongo and other NoSQL databases were practically a necessity for doing anything modern and "web…

Kubernetes has a definite whiff of NoSQL - a massively hyped tool/technique originating from Google with oversold benefits. I tried it about 6 months back with the intent of using it in a corporate prod environment and getting set up was... a massive pain in the ass to say the least - compared to the existing ansible set up. It was supposed to solve headaches, not cause them. I wasn't impressed. I wouldn't be surpris…

i set up a kubernetes cluster 1 year ago at work and a private one last weekend.

last year took, i think 2 days. my private one was up and running within ~1h, including writing the ansible role to first install binaries/dependencies and join the cluster as a worker node.

either you didn't use kubeadm to set it up or ... i have no idea how you could've possibly failed.

its pretty much

    (all) ${packagemanager} install docker-ce kubectl kubelet kubeadm
    (master) kubeadm init -> prints token
    (node) kubeadm join ${token}

Re: Kubernetes for personal projects? No thanks

#76
post #47

Earlier quoted context omitted.

I do agree with you, but I don't think I really missed the point of the original article. From the original article: > However popular wisdom would suggest that Kubernetes is an overly complex piece of technology only really suitable for very large clusters of machines; that it carries a large operational burden and that therefore using it for anything less than dozens of machines is overkill. I think that's probably…

I have to disagree. It doesn't introduce burden and complexity. They're already there whether you use Kubernetes or not. The difference is that if you did build it all by hand as the author said, if it ever scales, you're going to have double the job to make it scale. It's all a question of: do I think my software will succeed? If it's a hobby project that will never get big, it's not worth the hassle. If it actually…

Let's talk about complexity for a moment, for one aspect of a simple service: ingress.

Kubernetes:

    apiVersion: extensions/v1beta1
    kind: Ingress
    metadata:
      name: test-ingress
    spec:
      rules:
      - http:
          paths:
          - path: /testpath
            backend:
              serviceName: test
              servicePort: 80
Nginx:

    location /testpath {
        proxy_path http://127.0.0.1:8080
    }
Which is less complex? Which is beta, and thus could be changed over time (it happens a lot). Which one requires major (and breaking) infrastructure updates every 3 months?

> I'd argue you have less YAMLs with k8s than with Ansible for a small project.

Since you typically need one yaml document per K8s resource, and can describe multiple independent and idempotant actions in one Ansible document, I think this is easily demonstrable as false for small projects (and likely big projects as well).

Re: Kubernetes for personal projects? No thanks

#77
post #49

Earlier quoted context omitted.

I do agree with you, but I don't think I really missed the point of the original article. From the original article: > However popular wisdom would suggest that Kubernetes is an overly complex piece of technology only really suitable for very large clusters of machines; that it carries a large operational burden and that therefore using it for anything less than dozens of machines is overkill. I think that's probably…

> using it for anything less than dozens of machines is overkill The question isn't really whether you need dozens of machines, it's whether you can foresee eventually maybe needing dozens of machines. Remember the bad old days when people said that relational databases were worthless because they "don't scale", that using Mongo and other NoSQL databases were practically a necessity for doing anything modern and "web…

> A lot of engineers have this tendency to worry about scalability long before it's ever a problem.

"Premature optimization is the root of all evil" -- Donald Knuth

Translating the old suggestions [1] to the realm of devops, I think the point really is: if you are fairly certain that your optimization (k8, docker and so on) will result in "better" code and practices right away, then you should do it. If not, you shouldn't.

I personally find this stuff to be way overkill in a lot of cases. Does Kubernetes really accelerate your development process? If you are a two-men startup, your objective is to find ways to deliver value as quickly as possible, not to play at being Facebook. When you become Facebook (or even just Basecamp), you will then have enough resources to do this optimization. But if you feel your development process is really so much better with K8 and friends (because it's what you used in a previous job or something), by all means go for it.

[1] http://wiki.c2.com/?PrematureOptimization

Re: Kubernetes for personal projects? No thanks

#78
I read the article. I'm sorry, but my impression about it is the following: Why use Kubernetes in your personal projects when you have got no idea about it?. One think I have experimented after working with Docker for two years, is that once you know it, you will put every service inside a docker. It only takes 5 minutes to do it and the benefits are huge. Kubernetes might be an overkill, but containerize the apps is another thing.

Re: Kubernetes for personal projects? No thanks

#79
post #75

Earlier quoted context omitted.

Kubernetes has a definite whiff of NoSQL - a massively hyped tool/technique originating from Google with oversold benefits. I tried it about 6 months back with the intent of using it in a corporate prod environment and getting set up was... a massive pain in the ass to say the least - compared to the existing ansible set up. It was supposed to solve headaches, not cause them. I wasn't impressed. I wouldn't be surpris…

i set up a kubernetes cluster 1 year ago at work and a private one last weekend. last year took, i think 2 days. my private one was up and running within ~1h, including writing the ansible role to first install binaries/dependencies and join the cluster as a worker node. either you didn't use kubeadm to set it up or ... i have no idea how you could've possibly failed. its pretty much (all) ${packagemanager} install d…

Jeff Geerling even wrote an Ansible role to do all of the heavy lifting for you. I've used it alongside vagrant to spin up a three node cluster in ~15 minutes.

https://github.com/geerlingguy/ansible-role-kubernetes

Re: Kubernetes for personal projects? No thanks

#80
post #75

Earlier quoted context omitted.

Kubernetes has a definite whiff of NoSQL - a massively hyped tool/technique originating from Google with oversold benefits. I tried it about 6 months back with the intent of using it in a corporate prod environment and getting set up was... a massive pain in the ass to say the least - compared to the existing ansible set up. It was supposed to solve headaches, not cause them. I wasn't impressed. I wouldn't be surpris…

i set up a kubernetes cluster 1 year ago at work and a private one last weekend. last year took, i think 2 days. my private one was up and running within ~1h, including writing the ansible role to first install binaries/dependencies and join the cluster as a worker node. either you didn't use kubeadm to set it up or ... i have no idea how you could've possibly failed. its pretty much (all) ${packagemanager} install d…

I didn't fail, I just couldn't see a strong ROI after doing a spike.

I did use kubeadm. It required considerably more than just 3 simple steps required to get a basic working cluster up. Two days was more like it.

Post reply on HN