30 lines
858 B
Markdown
30 lines
858 B
Markdown
# hcloud-k8s
|
|
|
|
My Kubernetes cluster on Hetzner Cloud. Uses [hcloud-k8s/kubernetes/hcloud](https://registry.terraform.io/modules/hcloud-k8s/kubernetes/hcloud/latest) terraform module which runs Talos Linux (no SSH, API-only, immutable OS).
|
|
|
|
## What's in here
|
|
|
|
- 1 control plane + 2 workers (cx23, Helsinki)
|
|
- Cilium CNI with WireGuard encryption
|
|
- cert-manager for TLS
|
|
- Traefik ingress
|
|
- State stored in Hetzner Object Storage (S3)
|
|
|
|
## Setup
|
|
|
|
```bash
|
|
cp terraform.tfvars.example terraform.tfvars
|
|
# fill in your hcloud token
|
|
|
|
cp backend.conf.example backend.conf
|
|
# fill in s3 access_key and secret_key
|
|
|
|
terraform init -backend-config=backend.conf
|
|
terraform apply
|
|
```
|
|
|
|
Kubeconfig gets written to `./kubeconfig` after apply.
|
|
|
|
## Scaling to HA
|
|
|
|
Change control plane `count` from 1 to 3 in `main.tf` and re-apply. Talos handles etcd member joining automatically.
|