Getting Started with kOps on Hetzner Cloud
WARNING: Hetzner Cloud support on kOps is currently in alpha, meaning it is subject to change, so please use with caution. The original issue ticket is #8983.
Requirements
- kOps version >= 1.24
- kubectl version >= 1.23
- Hetzner Cloud account
- Hetzner Cloud token
- SSH public and private keys
- S3 compatible object storage (like MinIO)
Environment Variables
It is important to set the following environment variables:
export KOPS_FEATURE_FLAGS=Hetzner
export HCLOUD_TOKEN=<token>
export S3_ENDPOINT=<endpoint>
export S3_ACCESS_KEY_ID=<acces-key>
export S3_SECRET_ACCESS_KEY=<secret-key>
export KOPS_STATE_STORE=s3://<bucket-name>
Some S3 compatible stores may also require to set the region:
export S3_REGION=<region>
Creating a Single Master Cluster
In the following examples, example.k8s.local
is a gossip-based DNS cluster name.
# create a ubuntu 20.04 + calico cluster in fsn1
kops create cluster --name=my-cluster.example.k8s.local \
--ssh-public-key=~/.ssh/id_rsa.pub --cloud=hetzner --zones=fsn1 \
--image=ubuntu-20.04 --networking=calico --network-cidr=10.10.0.0/16
kops update cluster my-cluster.example.k8s.local --yes
# create a ubuntu 20.04 + calico cluster in fsn1 with CPU optimized servers
kops create cluster --name=my-cluster.example.k8s.local \
--ssh-public-key=~/.ssh/id_rsa.pub --cloud=hetzner --zones=fsn1 \
--image=ubuntu-20.04 --networking=calico --network-cidr=10.10.0.0/16 \
--node-size cpx31
kops update cluster --name=my-cluster.example.k8s.local --yes
# validate a cluster
kops validate cluster --name=my-cluster.example.k8s.local
# delete a cluster
kops delete cluster --name=my-cluster.example.k8s.local --yes
# export kubecfg
# See https://kops.sigs.k8s.io/cli/kops_export_kubeconfig/#examples.
# update a cluster
# See https://kops.sigs.k8s.io/operations/updates_and_upgrades/#manual-update.
Features Still in Development
kOps for Hetzner Cloud currently does not support the following features:
- Multiple SSH keys
- Autoscaling using Cluster Autoscaler
- Terraform support
Next steps
Now that you have a working kOps cluster, read through the recommendations for production setups guide to learn more about how to configure kOps for production workloads.