This setup uses terraform to create a single instance Hetzner cloud server and installs Kubernetes using kubeadm on it.
- Creation of local kubectl config
~/.kube/config-<master ip>
- Dashboard
- Container Storage Interface driver for Hetzner Cloud Volumes
- Helm / Tiller
- Nginx ingress controller
- cert-manager
- Firewall using
ufw
- Terraform >= v0.12.0 must be installed
Create a file terraform.tfvars
with
hcloud_token = "<your Hetzner API token>"
ssh_keys = ["<your Hetzner cloud ssh key to use for the server>"]
private_ssh_key_path = "<path to local ssh key>"
email = "<email to use for Let's Encrypt registration>"
master-node-name = "<node name>"
Then call
terraform init
terraform apply
terraform destroy
Get a token using
kubectl -n kubernetes-dashboard describe secret $(kubectl -n kubernetes-dashboard get secret | grep admin-user | awk '{print $1}')
Start a proxy with kubectl proxy
.
Forward the port using
kubectl --namespace monitoring port-forward svc/prometheus-k8s 9090
Then goto http://localhost:9090/
Forward the port using
kubectl --namespace monitoring port-forward svc/grafana 3000
Then goto http://localhost:3000/ and use user/password admin/admin.
Forward the port using
kubectl --namespace monitoring port-forward svc/alertmanager-main 9093
Then goto http://localhost:9093/