Altyapı, yazıya dökülmüş hâli.
Kendi barındırdığım bir kümeyi kurup defalarca yeniden kurarken tuttuğum notlar. Makale değil runbook bunlar — terminalin başında adım adım izlenmek için yazıldılar; ancak bir kez çarptıktan sonra önemi anlaşılan ayrıntılar dâhil.
Bu runbook’lar İngilizce tutuluyor. Komutlar ve yapılandırma her dilde aynı; üçe bölmek yalnızca bir kopyanın güncelliğini yitirmesi riskini ekler.
A Kubernetes cluster on bare-metal VMs, with kubeadm
From a fresh Ubuntu VM to a working single control-plane cluster: static networking, containerd, the kernel modules nobody mentions until it fails, kubeadm init, Flannel, Helm and the dashboard.
kubeadmcontainerdFlannelHelmUbuntuA highly available control plane behind HAProxy
Three control-plane nodes behind one TCP load balancer, so losing a node loses nothing. The whole trick is that the API server is fronted at layer 4, not layer 7.
HAProxyHAkube-apiserverTCPDeploying a NestJS API to Kubernetes with Ingress, TLS and MetalLB
A multi-stage image, a Deployment and Service, then the three pieces that turn a NodePort into something you would actually put a domain in front of: NGINX Ingress, cert-manager and MetalLB.
NestJSIngresscert-managerMetalLBHelmPublishing a Next.js app through a Cloudflare Tunnel
Serving a self-hosted app on a real domain without opening a single inbound port — and the resolver quirk that made it look broken when it was not.
CloudflarecloudflaredNext.jssystemd