Hetzner
- Hetznerへの移行は主にコスト削減のため。Hetznerの価格は世界的に見ても競争力がある。
- Hetznerは仮想マシンとベアメタルマシンを提供しており、AWSと比べると機能は限定的だが、価格でそれを補っている。
- Hetznerへの移行により、インフラコストを75%以上削減した。
Kubernetes on Hetzner
セルフマネージド Kubernetes
- DigitalOceanでKubernetesを運用しており、Hetznerでもセルフマネージド方式で運用している。
- Hetznerはマネージド Kubernetes コントロールプレーンを提供していないため、自分たちで管理する必要がある。
- TerraformとPuppetを使ってノードを管理・構成している。
ノードの役割
- クラスター内の役割をシンプルに保つため、
control-plane、worker、database というノード命名規則を使っている。
- 役割の追加は簡単だが、リソース利用の効率を損なう可能性がある。
ノード構築
- Terraformを使ってクラスターをブートストラップする。
- Hetznerはマネージドファイアウォールとネットワーキングを提供しており、Terraformで簡単に構成できる。
- サーバーはTerraformで完全に管理され、役割ごとのモジュールを作成することでサーバー追加を簡単にしている。
ネットワーキング
- ノードへの管理接続にはTailscale VPNを使用している。
- TailscaleはNATホールパンチングを提供するため、ポートを閉じたままでも安全に接続できる。
- HetznerのマネージドファイアウォールとUbuntuのUFWを使ってポートを遮断している。
- Calicoを使ってコンテナネットワークインターフェースを構成している。
ストレージ
- HetznerはnVME SSDとSSDベースのブロックストレージを提供している。
- Hetznerのボリュームにはスナップショット機能がないため、データバックアップは手動で行う必要がある。
- データベースノードではLocal Persistence Volume Static Provisionerを使ってローカルボリュームを事前プロビジョニングしている。
バックアップ
- Hetznerはボリュームバックアップを提供していないが、サーバー全体のバックアップは提供している。
- VMwareのVeleroを使ってネームスペースとPVCをバックアップしている。
- PostgresではpgBackRestを使用している。
追加機能
- SealedSecretsを使ってシークレットを管理。
- Node Exporter、Prometheus、Grafana、Lokiを使ってクラスターを監視。
- Alertmanagerを使ってSlackとの通知連携を行う。
HetznerでKubernetesを運用することについての所感
- Hetznerへの移行には約1週間かかり、追加のテストとチューニングに4週間を要した。
- Hetznerの価格は妥当で、他のプロバイダーと比べても低く維持されると考えている。
- HetznerにはIP品質の問題やカスタマーサービスの制約がある。
- Hetznerは新機能の投入が速い一方、採算の低いサービスはすぐに終了する可能性がある。
- 中央ヨーロッパのデータセンターは、ドイツのFalkenstein、Nuremberg、フィンランドのHelsinkiにある。
要約
- この移行はスムーズに進み、インフラコストを75%以上削減しつつ、クラスターのコンピューティングリソースを2倍に増やした。
- Hetznerはコスト削減が必要な場合に非常に有力な選択肢である。
- Hetznerのオープンソースコントローラーにより、ロードバランサー管理と永続ボリューム接続が容易になる。
1件のコメント
Hacker Newsのコメント