3 ms·
The design of K8s is ridiculous. The fact that you're forced to upgrade every 9 months is even more absurd. It's "opinionated", but the "opinions" are those of
by 0xbadcafebee 3y ago
The design of K8s is ridiculous. The fact that you're forced to upgrade every 9 months is even more absurd. It's "opinionated", but the "opinions" are those of one of the largest companies in the world, who hire the most engineers in the world, and everyone else is supposed to operate like that now.
K8s is a great example of a "tech jobs program": technology that is absurdly complicated to the point that you have to pay someone lots of money to make it keep working, but you can't afford not to pay for this, because everyone has decided to be stuck on it and now there's no alternative (and probably never will be)
- wg0 3y agoThe biggest foot gun and most complicated part IMHO is networking. It is a blackbox with many competing implementations and each implementation even differing in implementation details within it's own versions. In theory, it seems reasonable to say that K8s networking is an implemention detail which you shouldn't bother about but in practice, it's going to bite you because of some misconfigured component somewhere someday and you would have no idea what to make of thousands of iptable rules or BGP routes or even least inspectable eBPF mini programs. Paid support, consulting.
- Too 3y agoThis. Most application developers don’t give a rats ass about how 2 nodes are connected as long as the pods can speak to each other. Throw these guys in a devops team and give them the task to setup a 2 node k8s cluster and guess how much consideration they will pay to networking. Correct, zero. Except you can’t, because you have to choose a CNI plugin or choose a distribution that has made an opinionated choice for you. To lower the barrier of entry. A default installation must become a lot more opinionated with much less options and more sane and safe default.
- sangnoir 3y ago> K8s is a great example of a "tech jobs program" No, it is not. K8s is an example of how it's impossible to be a jack of all trades and retain simplicity. If a tool seeks to be all things to everyone, then there's no sweeping the inherent complexity under the carpet. Full-coverage solutions to complex domains are themselves complex by necessity - see SAP, Salesforce, Oracle, Windows backwards compatibility, or try writing a parser/stemmer for a spoken language that evolved naturally :)
- deleted 3y ago[deleted]
- 0xbadcafebee 3y agoThe complexity of an implementation is a different thing than the complexity of a design, and each determines things like how frequently it needs maintenance or how difficult it is to use. As usual, the devil's in the details. You can make something that has complexity without making it complicated or expensive to maintain. Take cars for example. There are many cars today that have a barrage of complex features, yet don't have costly maintenance bills and aren't difficult to use. That's because they have been engineered purposefully to reduce that complexity, and because the people that make them are masters of their craft, trying to create a premium product. Materials engineers, structural engineers, sound engineers, mechanical engineers, and more, all work toward the best design possible, to implement the most functionality with the minimum number of defects. They can tell you how likely it is for the paint to begin chipping on a new tailgate due to potential contamination in an alloy. And they'll use that knowledge to make it less likely that you'll have to take your car in for repair. The software world today - especially where customers are an afterthought (such as backend software) - does not make attempts to improve its design or implementation to reduce the need for repairs. Instead they just "manage" it for you, doing constant maintenance on the constantly breaking vehicle they drive for you, while charging you a subscription fee. (the auto industry noticed how profitable this is, and is now doing the same wherever it can) K8s is a great example of terrible design and half-assed implementation. It was not designed to be easy to install, configure, operate, upgrade, or maintain. It was designed the way a company designs software for its own internal use: start with some "opinions" that are more about inflated intellectual ego than practicality, throw some shit together that "basically works", and keep introducing breaking changes so it can never be operated continuously without requiring constant reworking and changing how it's run. If a car were produced like this, nobody would buy it. But it's handed out "for free", so we all just accept it and end up driving this janky-ass school bus that constantly needs its components changed while the bus is running. But you can't ask a regular person to change the parts on a bus mid-cross-country-tour, so you have to hire a mechanic to sit there on the bus. It doesn't have to be that way, it just is because the people who made that bus don't give a shit about hiring a mechanic, they have 10,000 mechanics already.