3 ms·
I never quite got the K8S "it's too complex" hate, but to be fair I haven't scaled it very high. Sure, it's verbose and there are N levels of abstraction, but
by jschrf 4y ago
I never quite got the K8S "it's too complex" hate, but to be fair I haven't scaled it very high.
Sure, it's verbose and there are N levels of abstraction, but it's a declarative API for running foo across multiple environments of bar. I've always wanted this.
I like raw, versioned infrastructure config with no extra crap. I have a little K8S.yml snippet I copy+paste+tweak into repos when I want to throw an ad-hoc experiment into a cluster, and then a bigger setup for IRL projects that looks something like this:
- k8s
- base
- api.yml
- web.yml
- worker.yml
- namespace.yml
- ingress.yml
- overlays
- dev
... config to merge ...
- staging
... config to merge ...
- production
... config to merge ...
- shared
- ... variable declarations, base config maps, etc ...
Everything gets merged into a manifest.yml and version stamped and build-artifacted. Deployment just means applying the config overlays via kustomize based on environment and then pushing out.
If things break, I always have an absolute, pull-the-chute, versioned, formal safe point to go back to: kubectl -n production apply -f manifest.version.yml
- deleted 4y ago[deleted]