This is the source code of my infrastructure.
- I use Netcup as my server provider. See this guide on how to provision a Netcup server to be used for Kubernetes nodes.
- I use Hetzner as my object storage provider.
- I use Cloudflare as my DNS provider.
- I use a simple cluster configuration with single control plane node and multiple worker nodes.
- I use Ansible to bootstrap and configure my Kubernetes nodes. See this guide on how to bootstrap Kubernetes nodes.
- I use Kubeadm to initialize and manage my Kubernetes cluster. See this guide on how to initialize a Kubernetes cluster.
- I backup etcd daily to my object storage. See this guide on how to setup etcd daily backup.
- I use Helm to manage my Kubernetes applications.
- I use Flannel as my CNI plugin. See this guide on how to setup Flannel.
- I use OpenEBS LocalPV LVM as my CSI plugin. See this guide on how to setup OpenEBS.
- I use Kubernetes Metrics Server to provide metrics API for Kubernetes built-in autoscaling pipeline. See this guide on how to setup Metrics Server.
- I use Ingress NGINX as my ingress. See this guide on how to setup Ingress NGINX.
- I use Cert Manager to manage my TLS certificates. See this guide on how to setup Cert Manager.
- I use Grafana Loki to store my cluster's logs. See this guide on how to setup Grafana Loki.
- I use Grafana Mimir to store my cluster's metrics. See this guide on how to setup Grafana Mimir.
- I use Grafana Kubernetes Monitoring to collect logs and metrics from my cluster. See this guide on how to setup Grafana Kubernetes Monitoring.
- I use Grafana to visualize my cluster's logs and metrics. See this guide on how to setup Grafana.