EdkaならHetznerにKubernetesを爆速デプロイ!自分専用クラスタを超簡単に構築しコスト削減も!
引用元:https://news.ycombinator.com/item?id=44915164
Kubernetes歴10年の僕がHetzner Cloudでのコスト削減を手伝ってきたんだ。k3sやhetzner-k3sでプロビジョニングは楽になったけど、設定はまだ大変。そこでEdkaを作ったよ。2分で本番環境クラスタを立ち上げ、自動化も可能。
Edkaはクラスタプロビジョニング、アドオン、アプリ、デプロイメントをサポート。技術スタックはTypeScript、Reactなど。
まだベータ版で趣味だけど、HetznerでKubernetes使ってる人、EKS/GKE/AKSの代替を探してる人からフィードバックが欲しいな。詳細:https://edka.io/
デモ:https://edka.io/apps/, https://edka.io/deployments/
HNトップに載って製品フィードバックをもらえたのは幸運だったよ。でもGitHubからレート制限くらっちゃった(これはすぐ直ったけど…)。その後Hetznerで一部障害が出て、インスタンスが作れず、多くのクラスタが「作成中」で止まっちゃったんだ。みんな、興味を持ってくれてありがとう!サイドプロジェクトなのにこんなことになるとは。これからも改善して、フィードバックに全部対応できるよう頑張るね。
それはみんなよくあることだよ :) 気にしないで、君はよくやった!プロジェクトを共有してくれてありがとう。
Hetznerについては今に始まったことじゃないよ。7月以降、10回のデプロイのうち1~2回は数時間から永久に「作成中」のままで止まっちゃうんだ。特にマルチノードクラスタをデプロイするときは本当にイライラするね。
多分僕はあまりデプロイしてないか、EUリージョンの方が安定してるのかも。クラスタプロビジョニング中の問題は経験してないな。7月以降、色々小さな問題はあったけど、僕の場合は主にファイアウォール設定など、プロビジョニングされたリソースの削除に関するものだったね。WebSocketもよく失敗して、更新を見るにはハードリフレッシュが必要なことにも気づいたよ。
Hetznerもサポートしているkops(https://github.com/kubernetes/kops)のような確立されたツールと何が違うの?
多分一番簡単なのはhttps://github.com/vitobotta/hetzner-k3sだね。Hetzner terraformプロジェクトは複雑だけど完全だよ。Edkaの主なアイデアは、HetznerでのKubernetesプロビジョニングだけでなく、ingress controllers、prometheus、elasticsearch、データベースなど、Kubernetesの機能を拡張する一般的なアプリやツールもシンプルにすることなんだ。
Talosもあるよ。これもHetznerをサポートしてる(https://www.talos.dev/v1.10/talos-guides/install/cloud-platf…)し、同様に効率化されてる。アイデアは全く同じじゃないけど、すごく似てるね。
これはhttps://github.com/vitobotta/hetzner-k3sを使うのとどう違うのか誰か知ってる?
k8sを立ち上げるのは簡単そうに見えるね。でもこれ、Hetznerのクラウドにデプロイされるんだね。うち(https://lithus.eu)ではちょっと不安定だったんだ。クライアントにはベアメタルの方を使ってるんだけど、そっちは安定してるよ。ただ、ある程度のクラスタサイズがないとベアメタル導入は費用や手間が見合わないから、これは注目していくよ。
Hetznerの強力なベアメタルインスタンスにk8sを自動デプロイするガイドはまだ見たことがないな。クラウドとベアメタル両方のインスタンスを含むクラスタを組むのが理想で、自分はそうしてるよ。昔はHetzner仮想スイッチでL2ネットワークを共有してたけど、今はTailscaleを使ってるんだ。TFとかのツールがAPIでノードの追加や削除をするけど、ベアメタルを扱うクラスのノードを渡せるようになれば最高だね。
CAPH(https://github.com/syself/cluster-api-provider-hetzner)が君の問題を解決してくれるかも?Cluster API(https://github.com/kubernetes/autoscaler/tree/a9cb59fdd2dd88…)を使って、Cluster Autoscalerと連携させればいいんだよ。
この会社がどこにあるのか、詐欺じゃないのかが分からないんだ。ウェブサイトには会社情報や連絡先がないし、プライバシーポリシーにあるメールアドレスもCloudflareで隠されてる。”Edka Digital S.L.”って書いてるけど、どの国で登録されてるのかも不明だよ。住所も運営者も登録も不明で、なんか怪しい感じがするね。VATについては書かれてるけど、EU VATなのかも定かじゃないし。
こんにちは。投稿でも言ったけど、これは個人的なサイドプロジェクトで、スペインでフリーランサーとして登録してるんだ。VAT番号ESY1848661Gで確認できるよ。フィードバックを集めるつもりで、正直こんなに注目されるとは思わなかった。プライバシーポリシーと利用規約は修正するよ。会社にするつもりだったけど、まだフリーランサーとしてやってるんだ。フィードバックありがとう!間違いは直すよ。
すぐに返信ありがとう!起業おめでとう。スペイン拠点なら、Hetznerみたいに「aviso legal」や「legal notice」(会社情報)が必要だよ。会社の実在を証明するためにね。スペインのS.L.は詳しくないけど、最低3000EURの資本金が必要で、全額払い込み不要なのは顧客にとってリスクかも。EU圏なら、顧客の信頼を得るためにも、これらの法的情報を明確に伝えることをおすすめするよ。
https://www.hola.com/aviso-legal/
https://www.hetzner.com/legal/legal-notice/
https://www.lawants.com/en/sl-spain/#:~:text=minimum%20share…
ありがとう!プライバシーポリシーと利用規約はすぐに更新したよ。数日中にすべての法的文書を詳しく見直すね。それまでは、ここhttps://www.einforma.com/rapp/ficha/empresas?id=dWSG1MwtU312… とここhttps://ceo.oepm.es/detalleExpediente?numExp=N0486066 で僕の法人情報を確認できるよ。
個人的には、ウェブサイトに名前と顔を出してる会社の方が信頼できるな。そうすれば、その人が実在するかどうかを確認できるからね(大抵はLinkedInで確認するよ)。
簡単に探せると思うけど、僕のLinkedInプロフィールはここだよ:https://www.linkedin.com/in/camilblanaru/
名前や顔はソフトな手がかりだけど、以前のSNS繋がりがないと確認が難しいよね。会社の登録情報は検証できるよ。
Hetznerにk3sをTerraformでデプロイするプロジェクトがあるよ。ちょっと手間だけど、自分で全部管理できるしTerraformやSSHで直せるよ。HetznerでマネージドKubernetesが見れるのは最高だね!
https://github.com/kube-hetzner/terraform-hcloud-kube-hetzne…
こっちのモジュールの方が断然いいよ!
https://github.com/hcloud-k8s/terraform-hcloud-kubernetes/tr…
俺、今これ使ってるんだ。
そうだね、これが一番完成されてると思う。俺のプロジェクトでは、Kubernetesの準備だけじゃなく、よく使うアプリやツール、低レベルの設定にも抽象化レイヤーを提供したいんだ。
フィードバックありがとう。プロジェクトがまだ新しかった頃に偶然見つけて、これいいなと思ったんだ。kube-hetznerはちょっと停滞してるみたいだね。次の大きなリリースに向けてたくさんのタスクがあるみたいだけど、もしかしたら出ないかもね。
すごくいいね!Kubernetesをデプロイする良いプロジェクトは多いけど、ダッシュボードで管理できて基本的なアプリも入れてくれるのはすごくスムーズに感じるよ。自分でKubernetesを設定するのは簡単だけど、いざ問題が起きると解決が大変だよね。コアビジネスじゃないなら、Kubernetesの管理は避け、アプリのデプロイに集中すべきだね。syself (https://syself.com)みたいなマネージドKubernetesもあって、月300ユーロでAWSを超える体験ができるのは超お得だよ。
Syself (https://syself.com)の推薦に賛成するよ。俺たちはPaaSプラットフォーム(Sherpa.sh)をHetznerとSyselfで動かしてるんだ。Vercelより5倍も安く、SyselfのおかげでK8sクラスターを自動でスケールできるんだ。hetzner-k3sとか色々試したけど、Syselfが一番だよ。サポートも最高!ダッシュボードがないのが唯一の欠点だけど、きっと開発中だろうね。もうSyselfなしじゃ考えられないよ。
興味ある人向けに、Kube-Hetzner (https://github.com/kube-hetzner/terraform-hcloud-kube-hetzne… 3k github stars) を使ったコースを今作ってるんだ。バックアップやリストア、トラブルシューティングとか、全部スクリプトで見せるよ。仕組みを理解しないとダメだからね。待機リストはここだよ: https://shipacademy.dev
HetznerでのK8sで一番困るのは、1台から中規模にベアメタルだけで移行する方法がないことだね。Gateway APIとEnvoyでIngressノードはできたけど、ストレージが問題なんだ。Ceph Rookは1台だと重すぎるし、ローカルボリュームから分散型に簡単に移行できる軽量なツールが見つからないんだよね。
このフォーカスは好きだな。まさか本番環境でK8sを使いたい人と、K8sの設定や管理にGUIを求める人がこんなに重なるとは思わなかったけど、俺が間違ってたのかもしれないね。
K8sクラスタで本番ワークロードを動かしたい人と、GUIでK8sクラスタをセットアップ・管理したい人の間に、そんなに大きな重なりがあるとは思わなかったな。でも、俺が間違ってるのかも。GKEとかEKSのユーザーがどれくらいいるか数えてみろよ?
K8sのインストールが壊れたら誰かが直してくれるってところが、魅力なんだろ?
もっとコメントを表示(1)
すごく良いアイデアで気に入ったよ!5月に連絡しようかと思ったけど、ベアメタルで動かしたかったからやめたんだ。Hetznerのベアメタルでこれを使える可能性はある?うちはK8sをHetznerのベアメタルで動かしてる。動かすのは大変だけど、専用10G LAN(同じラックにベアメタルのCassandraクラスタも)のおかげでパフォーマンスが段違いなんだ。コストもAX41-NVMeサーバが1台約EUR 64で、クラウドインスタンス(CCX43相当)だとコストがほぼ倍になるよ。
もしHetznerでカスタマイズされたインフラを使ったマネージドK8sに興味があるなら、https://loopback.cloud をチェックしてみるといいかもね。彼らはその分野に特化したドイツの会社だよ。
今、似たようなニーズを持つデータヘビーなクライアントの設定をしてるんだ。Hetznerのカスタムソリューションチームと協力して、25Gネットワーキングと100G AZインターコネクトを備えたマルチAZセットアップをプロビジョニングしてるよ。話したければプロフィール欄のリンクを見てくれ、メールはadam@…
俺はHetznerでクラウドインスタンスとベアメタルのVM(Proxmoxホスト)を使ったDocker Swarmを動かしてるよ。良い点は、Ubuntuノードを作るのにほぼ同じcloud-initスクリプトを使えること(ProxmoxもHetznerクラウドインスタンスもcloud-initをサポートしてるからね)。これらのノードをWireGuardで接続してるんだ。
Hetznerのクラウドサーバと同じようにベアメタルサーバをプロビジョニングできるのかって聞いてる?それとも、あなたのHetznerベアメタルサーバ上のクラスタを管理できるのかってこと?後者ならRancherみたいなツールの方が良いかもしれないね。
どっちかっていうと、俺が”自分のサーバを持ってくる”って方の、前者の意味で考えてたんだ。それが本当に理にかなってるのかは、まだちゃんと考えてないけどね。
Hetznerと直接連携しないと、それはちょっと難しいかもしれないね。彼らのAPIはベアメタルのプロビジョニングには対応してなくて、クラウドと’ストレージボックス’だけだったと思うから。
君が欲しいのはCluster-APIプロジェクトだよ。K8sクラスタのライフサイクル管理における”聖杯”だからね。
Hetznerがなんでマネージドコントロールプレーンを自分たちで提供しないのか疑問だよ。GKE/EKS/AKSにいる大量の顧客を取り込むためにも、少しの投資で大きなリターンがあるはずだよね。それに、いいIAMの仕組みがあれば、ただのサーバ置き場じゃなくて、完全なクラウドソリューションとして見られるようになるのに。インフラはあるんだから、あとはパッケージングするだけだよ。
Hetznerの社員が以前教えてくれたんだけど、彼らは何年もの間、自分たちのKubernetes-as-a-serviceソリューションを開発しようと頑張ってるんだって。今もまだ取り組んでるのかどうか気になるね。
何年も?!マジかよ。IAMの機能がないプラットフォームだし、特別なコンソールパスワードを誰が使ってるか記録するのも大変なんだろうね。
Hetznerは自分たちのマネージドサービスも開発中だけど、いつリリースされるか誰も分からないみたいだね。Redditのスレッドを見てみて。https://www.reddit.com/r/hetzner/comments/18yhy89/seems_like…
Hetznerのオブジェクトストレージがひどい出来だから、俺は絶対これを使わないと思うよ。
それは知ってるよ。俺もHetznerのオブジェクトストレージは使ってないし。ほとんどGCSが好きで、たまにS3とかR2を使うね。コンピュートのほうは特に問題ないよ。2年以上100%稼働してるクラスターもいくつかあるし。
俺はHetznerのオブジェクトストレージで問題ないけどね。
Hetznerのsubredditは問題に関する投稿でいっぱいだよ。
このサイトじゃ、ストレージがどう解決されるのか書かれてないな。例えばPostgreSQLを使うときに、このソリューションはローカルフォルダのプロビジョニングを使うの?
ごめんね、こんなに反響があると思わなかったよ。まだドキュメント化されてない部分もあるけど、何でも質問に答えるよ。PostgreSQLのポッドには、https://github.com/hetznercloud/csi-driverを使って永続ボリュームをアタッチしてるよ。
Hetznerの分散ストレージってどのくらい信頼できるのかな?俺はHetznerをベアメタルを提供するだけのコントロールプレーンだと見てたから、マネージドストレージはそこまで信頼できない気がするけど、経験が少ないのもあるんだよね。正直、Rookみたいなのが使われてないのがちょっと意外。でも、Hetznerのストレージを信じてうまくいくことを願うしかないって感じなのかな。
もしHetznerでPostgreSQLを探してるなら、Ubicloudをチェックしてみてほしいな。Hetznerを含むいろんなベアメタルプロバイダでホスティングしてるんだ。(俺がUbicloud PostgreSQLのリードエンジニアだから、質問があれば何でも答えられるよ)
ちょっと話題から外れるけど、RakuがHetzner APIをサポートしたって知ってた?これでデプロイのスクリプト言語としてRakuが使えるんだよ。詳細はこちら: https://raku.land/zef:wayland/WWW::CloudHosting::Hetzner
いくつか教えてほしいことがあるんだけど。
1) スケーリングの制限って何?プログラムで操作できるの?つまり、特定のタイプのPodを増やすリクエストを送ったりできる?
2) セキュリティ強化のために何をしたの?堅牢なPod/クラスタって言ってるけど、具体的にペネトレーションテストはした?ベストプラクティスに従っただけ?定期スキャンとかストレステストは?
質問ありがとう!
1) このプラットフォームは、君のHetznerアカウントにクラスタをデプロイする手助けをするコントロールプレーンなんだ。だからリソースは君がコントロールできて、Hetznerに直接利用料を払う形だよ。
2) 君はKubernetesクラスタにフルアクセスできるし、君自身のHetznerアカウントで動かすから、セキュリティは共有責任だよ。君の要件に合わせて設定を細かく調整できるんだ。プラットフォームのセキュリティは俺たちの責任で、ベストプラクティスに従い、内部のペネトレーションテストも実施したよ。まだベータ版だから、こういった製品への関心があるか試している段階なんだ。
これはサイドプロジェクトというより、もっと大きなものに見えるね。本当に良くできてるよ。
最近はHetznerにもたくさんのKubernetesプロバイダがいるけど、俺が本当に気に入ってるのはSyself.comだね。自己修復、ベアメタルサポート、OIDC統合とか、プロダクションレディなKubernetesをたくさん提供してるんだ。クラウドと移行の専門家として評価したけど、彼らはめちゃくちゃ性能が良かったよ。
俺が話してるのは、このhttps://syself.com/のことだよ。
Hetznerで暗号化されたディスクを使う良い方法を見つけた人、誰かいない?
もしHetznerでディスク暗号化が必要なら、俺がTerraformモジュールを作ったよ。デフォルトで暗号化ディスクが有効になったKubernetesクラスタをセットアップできるんだ。ここを見てみてね: https://github.com/hcloud-k8s/terraform-hcloud-kubernetes
インストーラーがLUKSに対応してるって。俺はdropbearを設定して、別の暗号化されたインスタンスで毎分スクリプトを走らせて、dropbearポートをチェックし、SSHでキーを渡して起動してるよ。OVHやHetznerでfastcommentsのためにやってることだね。
ストレージ暗号化でどんな脅威モデルを軽減したいの?物理ディスクが使用後にちゃんとワイプされないってこと?それならLUKSを使って、キーを別のマシンや外部ボリュームとか、どこか他の場所に保存すればいいんじゃない?
Kubernetesの視点から言うとね、OpenEBS MayastorもLocalZFSも、今はディスク暗号化に対応してるよ。
もっとコメントを表示(2)
暗号化ディスクはarchlinuxとLUKS、tinySSHで簡単に設定できるよ。SSH経由でリモート解除も可能だ。
https://syself.comみたいな既存のソリューションと比べてどうなの?ベアメタルサーバーもサポートしてる?
やあ、これ試してみるかも(Hacker Newsの「ハグ・オブ・デス」が落ち着いたらね)。SadServersでPoCのためにGKEクラスターを0.2vCPUのワークロードで動かしたら、1日CAD $50もかかってたんだ。GCPが何もしないPodでノードを1CPU使ってたり、隠れたPrometheusメトリクスとかで、コストがかさむことにはうんざりしたよ。
これはすごいタイミングだね。10年以上AWSの顧客だけど、最近は大変でね。移行を検討してるんだ。Terraformとコンテナベースのインフラなら、Claude Codeを使えばどこにでも簡単に移行できるはずだって思ってるよ。
まさに俺たちがやってることだよ!クライアントをAWSからHetznerのベアメタルKubernetesクラスターに移行させて、彼らのDevOpsチームにもなるんだ(Amazonよりずっと安くね)。ベアメタルでKubernetesクラスターを立ち上げるのは、特にモニタリングや分散ブロックストレージ(OpenEBSを使ってる)なんかでは結構大変で、数ヶ月はかかるかな。Hetznerのクラウドサービスの方が楽だろうけど、そっちは期待より信頼性が低いと感じたよ。もっと話したいならadam@…へどうぞ!
https://lithus.eu
その目的のために、https://loopback.cloudも確認してみるといいかもね。
僕は小さいKubernetesクラスターにはAWSを使ってるよ。S3とECR以外の”マネージド”AWS製品のほとんどは避けてる。僕のKubernetesスタックはpacker、tofu、k3s、zfsで構成されていて、簡単で簡潔、セルフマネージドだからコストも予測しやすいんだ。
タイトルに”Hetzner”、本文に”AWS KMS”ってあるけど、これで混乱してるのって私だけ?
フィードバックありがとう!混乱させるつもりはなかったよ。AWS KMSは、プラットフォームがVaultに機密データを保存する前後に暗号化・復号化するために使われてて、開発で使う技術スタックの一部なんだ。
Hetznerで動かしてても、AWSにシークレットを置くなら、結局AWSに依存し続けるってことだよね。Hetzner上で動くシークレット管理のソリューションを見つける方が良いと思うんだけど。
リリースおめでとう!WordPressがプロ向けアプリとしてあるみたいだね。WordPressホスティングにお金を払ってるユーザーとしては、WordPressインスタンスをメディアやDB含めて全て新しいホスト名で”フォーク”して、色々な試行やアップデートができる機能が欲しいな。
ありがとう!WordPressは無料で使えるようになる予定だけど、今はまだ完成してないんだ。多分来週には準備できると思うよ。
これってK3sをデプロイしてるの?それとも、コントロールプレーンとワーカープレーンが別インスタンスにあるようなフルKubernetesをデプロイしてるの?
これは、コントロールプレーンとノードプールが別々になってる、すぐに使えるKubernetesのセットアップだよ。
K3sもコントロールプレーンとワーカーノードプールを別々に実行できるよ。おもちゃのプロジェクトやシングルノードクラスタだけじゃなくて、結構大きなクラスタも動かせるんだ。
Hetznerの専用サーバー間の接続オプションってどうなってるの?同じラック内に専用スイッチを置いて料金を払うこともできるみたいだけど、それってラックの電源やスイッチで単一障害点のリスクが生じない?
リリースおめでとう!GitlabやGitlab Registry(あるいは他のRegistry)をサポートする予定はある?
ありがとう!うん、両方計画中だよ。レジストリはすごく簡単に実装できるはずだよ。
Syself.comと何が違うの?最近、Syself.comを調べてたんだけど。
まだSyself.comは試せてないけど、成熟した製品だと思ってるよ。このプラットフォームの狙いは、Kubernetesの知識がない開発者や小さい会社、あるいは開発やテスト目的でサクッとクラスタを立ち上げたい人にもっと使いやすくすることなんだ。
誤字だよ:「One Cluser always free」ってなってる。
修正したよ、ありがとう!
US VAリージョンで小さいクラスタをデプロイしようとしたら、ステータスが「Failed」と「Creating」を行ったり来たりして、どうやってトラブルシューティングすればいいか全く分からなかったよ。IDはこれ:7ad975fb-3c8e-47a9-b03d-9e6bec81f0db。
やあ、ごめんね。今すぐ調べるよ。
Hetzner以外にも拡張する予定はある?Hetznerは特定の用途(例えばVPNとか)でかなり制限があるから、Datapacketみたいなプロバイダーのサポートにすごく興味があるんだ。
彼らの驚くほどひどいAPIからすると、Datapacketへの拡張は無理だろうね。「create a server」のmutationですら、ユーザーデータをサポートしてないんだ。ここ見てみ:https://api.datapacket.com/#definition-ServerInput
最初はHetzner向けに設計されたんだけど、今の作り方ならどんなプロバイダーにも拡張できるはずだよ。
特に、独自のKubernetesディストリビューションを提供してるプロバイダーにはね。