Studyplus Engineering Blog

スタディプラスの開発者が発信するブログ

Kubernetesハンズオンを行いました

はじめまして、Studyplus開発部でサーバーサイドを担当している栗山です。

背景

Studyplusではコンテナ化を進めたいと思っていますが、まだAWS Elastic BeanstalkEC2上でアプリケーションが動いています。 今後コンテナ化するにあたり、

  • コンテナ化を進めていきたいが、コンテナのデプロイや管理はどうすればいいかわからない。
  • コンテナ管理するためにKubernetesというのが良いらしいが覚えることが多くて難しそう。
  • そもそもコンテナよくわからないし、敷居が高そう

といった不安や疑問が部内にあったのでそれらを解消すべく、Kubernetesのハンズオンを実施しました。

目的

ハンズオンの目的としては以下です。

  • Kubernetesが何を解決するかを知る
  • Kubernetesの機能を知る
  • Kubernetesの各概念を知る
  • GCP上のKubernetesに簡単なアプリケーションをデプロイして、実際にKubernetesのスケーリング機能や耐障害性等々を体験してもらう。

ハンズオンの進め方

ハンズオンの資料は以下にあります。

まず最初にKubernetesの特徴や何ができるか、そして各概念の説明をしました。

  • Kubernetesの各概念の理解 (※説明が間違っている可能性があるので間違いを見つけた場合はPRを送ってもらえると助かりますm( )m)

Kubernetesには様々な機能、リソースがありますが、まずは基本であるPod, ReplicaSet, Deployment, Service, Ingressを理解してもらうことに重点をおきました。

その次に、実際にGCP上でアプリケーションを動かしてもらいました。

GCPを選んだのは

  • GCPは2014年からKubernetesをマネージドサービスとして提供しており、Kubernetesとの親和性が高い
  • Studyplusでは主にAWSを使っているので、違ったクラウドを体験することは見識を広める意味でもプラスになる

といった理由からです。 実際触ってみると、GCPは非常にシンプルでKubernetesがシームレスに組み込まれており、Kubernetesを動かすには最適な環境だと感じました。

このハンズオンは、説明と実際に手を動かすのに全部で1時間半〜2時間くらい必要となります。 そのためスムーズに進める必要があり、以下のことを注意して行いました。

  • ハンズオン資料のコードをコピペすれば動くようにしておく
    • しかしコピペを間違う人もでてくるので、必要なファイルは全て予め用意しておきダウンロードすれば済むようにした
  • 事前に時間がかかる作業(例えばGCPアカウント作成や、SDKインストール作業等々)はハンズオンの前に各自で行ってもらう
  • 出来るだけ早く理解してもらうために、説明文はできるだけ丁寧かつ正確に書いておく。また喋る予定の内容も全て書いておいて読めば分かるようにしておく。
  • 予期せぬエラーがでたり躓いて先に進めない人が出ないように、問題なく進めているかこまめに確認を取る。人数が多いと躓く人が多くなるので、一回のハンズオンの参加者は4人くらいにした。

まとめ

Kubernetes自体の素晴らしさもあり、ハンズオン後はKubernetesを使っていく機運が高まりました。 実際に運用していないのでまだ見えていないつらみやデメリット等があると思いますが、それを上回るメリットがあるように感じているので、今後はKubernetesの導入を進めていけたらと思っています。

スタディプラスではKubernetes導入を一緒に進めていく仲間を募集しております! ご応募お待ちしております!!

補足

ハンズオンの内容は、 WEB+DB PRESS Vol.99のKubernetes特集の内容を参考にしました。ありがとうございました。 また、Kubernetesを知るためにはKubernetes完全ガイドという本が2018/9に発売されており、これを読めば完全に理解できると思います。本当に最高の本です。