DigitalOceanでマネージドKubernetesを使ってみる

インフラストラクチャ

DigitalOceanでマネージドKubernetesを使ってみる

プライベートの開発で学習も兼ねてk8sを利用したく、色々検討した結果、DigitalOceanが良さそうだったので、利用してみた。

www.digitalocean.com - The best managed Kubernetes service is the one that’s made for you

新規に始める場合は、プロモリンクやクーポンを使うと良いと思う。

自分はプロモリンクから登録するのを忘れて最初クレジットをもらい損ねたが、問い合わせしたら良きに図らってもらえた(クレジットもらった)。ありがたや。

一応リファラルリンクを貼っておく。

https://m.do.co/c/9fbf85c22695

Digital Oceanの良いところ

マネージドKubernetesの話しの前に、Digital Oceanの良いところを書いておく。

Kubernetesを利用しなくともDigitalOceanを利用したくなる機能が充実している。

  • 安い
    • Droplet(VM)はスペック毎に時間課金
    • 転送量はスペックごとに無償枠がある。超過すると$0.02/1GB。
      • Conohaだと転送量は従量課金がないので月額料金だけで済む。
      • 転送量をダッシュボードから確認することができない。これは気になる。vmstatを使って監視する体制を作ったほうが良さそう。
    • コストパフォーマンスは優れていると思う
  • 予算アラートがある
    • 管理画面から設定できる。メール通知のみっぽいが、API利用でSlack通知とか自分で調整できたりするかも?(ちゃんと見ていないので推測)
  • メトリクスが取れる
    • 基本的なメトリクスが充実している。
    • しかもアラートが設定できてしまう。slackやメール通知が可能。
  • openstackベースのAPIがある
  • DNSサービス無料
  • エコシステムが充実している
    • marketplace.digitalocean.com
    • 1clickで起動できる起動テンプレートみたいものが結構充実している。試用してみたいアプリケーションとかあれば便利かも。
  • 各種ドキュメントが分かりやすく整備されている
    • 個人差あるかもだが、安心感がある。
  • サポートがいい感じ(個人の感想)
    • 冒頭のクレジットの件でサポートのticketを切ったが、1日以内に対応してもらった。たまたまかもしれないが期待できそう。
    • サポートが不評な部分もあるっぽい。
  • サメのアイコンに愛着が湧く。(個人の感想)

Digital OceanのマネージドKubernetes概要

www.digitalocean.com - docs/kubernetesを参考に概要をまとめておく。

触ってみる

実際にDigitalOceanのKubernetesマネージドサービスを触ってみる。

Kubernetesクラスター起動

以下のような構成でKubernetesクラスターを起動した。

  • Region
    • Singapore
    • 日本から一番近いところを選択した
  • VPC Network:default-sgp1 DEFAULT
    • これはデフォルト。変更の余地なし。
  • Cluster capacity
    • Node pool name
      • test-k8s-node-pool
        • 任意の名前
    • Machine type
      • Basic nodes
    • Node plan
      • 1GB RAM usable(2GB Total)/1vCPU
      • $10/Month per node($0.015/hr)
    • Number Nodes
      • 2
  • Tags
    • test-k8s
    • クラスターに任意のタグを複数付けることができる。
  • Name
    • test-k8s-cluster
    • 任意のクラスター名を付けることができる。

月額料金はこれくらい。
MONTHLY RATE $20.00/month $0.03/hour

kubectlとdoctlをローカル環境にインストール

kubectlは以下参照。
kubernetes.io - install-kubectl

brew install doctl

Personal access tokensを用意

ダッシュボードのAPIメニューからPersonal access tokensを確認できる。
初回だとREADのみなのでWRITEも付与して、tokenを控えておく。
※初回だとtokenが生成されていないようなので、Regenerate tokenをすることをtokenを払い出す必要があるぽい。あるいは新規トークン作成でも良いと思う。

クラスターに接続

まずは認証をする。

doctl auth init

クラスター一覧を確認してみる。

doctl kubernetes cluster list

接続するクラスター名を指定してcontextを追加する。(./kube/configが更新される)

doctl kubernetes cluster kubeconfig save CLUSTER_NAME

ノードを確認してみる。

kubectl get no

これでサンプルのアプリをデプロイする準備ができたので、github.com - digitalocean/doks-exampleあたり試してみると良さそう。ロードバランサーが作成されて、ロードバランサーの課金が発生するので注意が必要。

所感

GKEで最安構成のk8s環境を作るのも魅力的だが、個人利用でマネージド使うならDigital Oceanのほうが良いかも。

ちょっと神経質かもしれないけど、転送量が従量課金なのは気になっちゃうので、Conohaも検討を続ける。

参考


関連書籍