こんばんはエンジニアの眠れない夜です。
今日はGKEを使って最安値でKubernetesクラスタを作る方法をご紹介します。
Twitterで投稿したこちらを素に始めていきます。
GCEには
勝手にサーバーが停止するけど
80%OFFの値段で利用できる
プリエンプティブVMというものがある。Kubernetesはサーバーが停止しても
自動で復活する機能を備えているので
プリエンプティブVMを使ってクラスターを作ると
80%OFFの値段で利用できて
落ちても死なないクラスターができあがる。 pic.twitter.com/IXG67JNXwg— エンジニアの眠れない夜 (@sleepless_se) December 11, 2018
何がすごいってGPCのインスタンスを80%OFFで使えるなんて凄すぎです!
圧倒的な安さです。ツイートの画像ではstandard-1が最小ですが、実はf1-microもプリエンプティブでインスタンスを起動できます。
1ヶ月使って2.56ドル
3台起動してもわずか7.95ドルです!
プリエンプティブVM(バーチャルマシン)とは
メリット
・とにかく安い。
デメリット
・最大24時間で勝手に停止する
・いつインスタンスがが停止するかわからない
・自分がほしいタイミングでインスタンスを起動できるかわからない。
と、まぁ恐ろしくサーバーには向かないプリエンプティブVMなのですが、
Kubernetesの自己修復機能を利用すればそれを克服できて、お値段80%OFFでインスタンスを利用できるなんて凄い!!という話です。
GKEで最安値のKubernetesクラスタのレシピ
今回やってみることは
プリエンプティブVMを3台
+普通のインスタンス(f1-micro 無料)の
合計4台を使ってKubernetesクラスタを作ろうという試みです。
1台普通のインスタンスを使っているのは3台とも同時に停止する可能性もあるので、念の為1台は普通のインスタンスを用意します。
無料枠で利用できる(us-central1)を使えばこの部分にお金はかかりません。
プリエンプティブVMの(f1-micro)3台で約8ドルです。
プリエンプティブVMをKubernetesで起動する
google-cloud-sdkをインストールしていなくてgcloudコマンドが使えないという方はこちらの記事を参考にしてください。
いろいろ設定をしたり、アップデートをしたりしていますが、重要なのはたったの2行。この部分だけです。
# Create clustor and nodes
とコメントを書いている部分だけです。
--zone $ZONE
を指定しないと3つのゾーンで3台ずつインスタンスが起動し、9台のクラスターができあがります。
ゾーンの指定を忘れないようにしましょう。
逆にゾーンを指定せず、--num-nodes 3
この部分1にすると
3つのゾーンで1台ずつインスタンスが起動します。
こちらのほうが冗長性は高そうですが今回はシンプルにしたかったので止めました。
そして出来上がったのがこちら1枚目がプリエンプティブVM
2枚目が普通のインスタンス
3枚目がクラスタ全体です。
クラスタサイズが4つになり
合計コア数 4個
合計メモリ2.4GB
になっています。
これが1ヶ月7〜8ドルで利用できるならかなりお得ですよね。
そして、何よりKubernetesの練習にはぴったりです!
これからKubernetesを使ってみようと言う方はぜひ試してみてくださいね。
追記:
CPUについて
4コア表示されていますが、f1-microがもともと0.2 vCPU なので4コアでようやく0.8 vCPUにスペックになるのではないかと思います。
メモリについて
f1-microはメモリ0.6GBなのでKubernetesを動かすのはちょっとしんどいです。メモリ不足でいろいろエラーが出やすいのでもう少し大きなインスタンスの使用がおすすめです。特に常時起動のサーバーはエラーが出るとややこしいです。
[…] GKEで最安値のKubernetesクラスタを作る方法 […]
[…] GKEで最安値のKubernetesクラスタを作る方法 […]