4 ms·
Because everyone here is hell bent on "spooky arcane oldhat sysadmin deploy techniques", I'll share my setup using k8s. - CI on github actions - Project manag
by Fiahil 5y ago
Because everyone here is hell bent on "spooky arcane oldhat sysadmin deploy techniques", I'll share my setup using k8s.
- CI on github actions
- Project management on post-its (short) and READMEs (long term)
- deployment is done by a github action trigger on the `main` branch
- Hosting is using AKS, GKE, or on-prem k3s on a raspberry pi. Want to restart a service ? just kill the pods.
- Devops took about 2 days of work initially and now shared by every project for less than 30 minutes by project.
- Deloying a test cluster (or a test k3s node) is reproducible on whatever hardware / cloud provider you get, sometimes I often create a full-blown dummy cluster for running test scenario
- Certificate renewal is automatic (cert-manager)
- DNS record creation to services/ingress is automatic (ExternalDNS)
- Authentication using OAuth/OIDC is also set up automatically on whatever identity provider you have
- Database backup is automatic
- Load Balancing is built-in
- Job scheduling is built-in (and -fuck- logs are much more accessible on a failed job container than in a custom cron + sh solution)
- Service discovery is not needed
- Monitoring and alerting is not, but cloud providers often have something for you
Note: this is highly effective because I already had significant K8s experience, so, if you're still learning about what Ingress-Controller to choose for your OIDC proxy, then don't go that route.
- caffeine 5y agoHey, this is pretty cool (I am doing the oldhat stuff, so interesting to hear about something different) >> Job scheduling is built-in (and -fuck- logs are much more accessible on a failed job container than in a custom cron + sh solution) Can you expand on this? How do you handle logs?
- Fiahil 5y agoI don't handle anything, I just output to stdout and I can access any directly from its container. Job or Pod, it's the same. If I had a larger log volume, I would have some kind of log aggregator to send them to ES or cloud provider monitoring stack
- techn00 5y agoHow did you set up the DNS part?
- Fiahil 5y agoVia annotations on my ingresses, and, of course, with this : https://github.com/kubernetes-sigs/external-dns https://github.com/kubernetes-sigs/external-dns
- davidgl 5y ago> Note: this is highly effective because I already had significant K8s experience, so, if you're still learning about what Ingress-Controller to choose for your OIDC proxy, then don't go that route. What would you recommend instead ?
- Fiahil 5y agoLearn about kubernetes for 6 to 9 months, full-time, and come back to it. You have a lot of freelance work and devops positions that will give you that experience. You shouldn't try to do this alone, you need guidance to understand how this ecosystem works.