はじめに
クラウド本部クラウド推進部の小野里と申します。
新卒で入社した1年目のエンジニアで、IDCFクラウドの新機能開発を担当しています。
IDCFクラウドではクラウドネイティブなサービスを提供できるよう日々尽力しており、そのなかでも Kubernetes は特に注目している技術です。過去には、コンテナを動かすことに特化したLinuxディストリビューションである「CoreOS」のテンプレートをリリースしたり、Kubernetes 関連の大規模なイベントであるKubeConに参加したりしています。
今回は、クラウドネイティブ化の潮流の真っ只中にある当社クラウド推進部に配属された新卒エンジニアが、「 Kubernetes ってなんて読むんですか?」状態から始まり、Kubernetes にアプリケーションをデプロイできるようになったまでの勉強について、方法別に振り返りたいと思います。
書籍
どちらの本も、実際に Kubernetes を動かしながら学んでいこう!という内容になっています。
本の解説を読んで、さまざまなコマンドを実行して、出力された結果を理解して…と、時間はかかりますが、しっかり頭に落とし込みたい人には向いている方法だと思います。
本によって解説の仕方や切り込み方が異なるので、いくつか読んでみるのが大事だと分かりました。
私の場合は、「Kubernetes 実践入門」を読んで Kubernetes でどんなことができるのか?という全体感を掴んだ後、「Kubernetes 完全ガイド」で各リソースについて知識を深堀りしていきました。
Kubernetes 実践入門
Mattermost というSlackライクなチャットアプリケーションを題材に、ローカル開発環境にアプリケーションをデプロイするところから運用するところまでを学べる本です。
PC上のVM内にシングルノードの Kubernetesクラスタを構築する Minikube というツールを使って、アプリケーションのデプロイなどを行っていきます。Minikube を使うことでローカル環境で Kubernetes を動かせるようになるので、お手軽に勉強を始められます。
実際にチャットができるアプリケーションをデプロイするので、学習のアウトプットがわかりやすいのも初心者にはやりやすかったです。
「Kubernetes 実践入門 プロダクションレディなコンテナ&アプリケーションの作りかた」
著者:須田 一輝, 稲津 和磨, 五十嵐 綾, 坂下 幸徳, 吉田 拓弘, 河 宜成, 久住 貴史, 村田 俊哉 /ゼットラボ株式会社
出版社:株式会社技術評論社
gihyo.jp
Kubernetes 完全ガイド
リファレンス本として、気になったことを詳しく知りたいときに重宝している本です。
DaemonSetなど各リソースについてはもちろん、サービスメッシュやアーキテクチャについても詳細に書いてあり、説明文もわかりやすかったのでとても理解が捗った本です。
イラストも多用されており、分かりやすいだけでなくイメージとして覚えられるので頭に残りやすかったです。
GKEを使って複数ワーカーノードで構成されたクラスタに Kubernetes の様々なリソースをデプロイしていくので、実践に則した内容になっています。
Istioなど、まだまだ新しい技術にも触れられているので、長く読んでいける本だと思います。
「 Kubernetes 完全ガイド」
著者:青山 真也/株式会社サイバーエージェント
出版社:株式会社インプレス
book.impress.co.jp
講習
CloudNative Days Tokyo 2019
クラウドネイティブ界隈の情報収集ができる、開発者向けのイベントです。
ここで紹介するハンズオントレーニング以外にも、カンファレンスなども開催されているようです。
いずれのハンズオンも急ぎ足で進むので、その場ですべて理解するのは大変ですが、資料がとても丁寧なので復習して理解を深めることができました。
1日で Docker / Kubernetes を基礎から学べる少数限定トレーニング
Docker の説明から Kubernetes や Rancher、Prometheus の説明など盛り沢山な内容でした。GKE を使ってWordPress をデプロイしながら Kubernetes の魅力を体感できるハンズオンになっていました。
コンテナとは?などの基礎を重点的に学びつつ監視などの実践的な知識も付けられるので、初心者にとっても非常に有意義なトレーニングでした。
講師:市川 豊/株式会社エーピーコミュニケーションズ
eventregist.com
Kubernetes 上でアプリケーションを本番運用できることを目指す少数限定トレーニング
先ほど紹介した「 Kubernetes 実践入門」の著者が、この本に沿ってトレーニングをしてくれる贅沢なハンズオンでした。
本一冊分の内容を1日でやってしまうので、スピードが非常に早く、ある程度 Kubernetes を触ったことがある人向けのトレーニングでした。
実際にマニフェストを書いて Kubernetes にデプロイしたりするので実践的で、講習が終わって Kubernetes の勉強が進んでから参考になることが多かったように思います。
講師:須田 一輝, 稲津 和磨, 五十嵐 綾, 坂下 幸徳/ゼットラボ株式会社
eventregist.com
講演
Google Cloud Next 2019 in Tokyo
Google Cloudの最新の動向や導入事例を大量に見聞きできる、大規模なイベントです。
私はコンテナ関係のさまざまな導入事例を聞いて回りました。
8月開催で、このときは内容がほとんどわかりませんでした。それでも熱量は肌で感じとることができましたし、これから Kubernetes を勉強していくぞ!と、モチベーションが高くなったのを覚えています。
Kubernetes の読み方すら知らなかった私ですが、メーラーや音楽配信アプリなど、Kubernetes がインフラを支えているアプリケーションに普段からお世話になっていることを知ったときは衝撃的でした。
Kubernetes Meetup Tokyo
「Kubernetes 実践入門 プロダクションレディなコンテナ&アプリケーションの作り方」の著者メンバーがオーガナイザーを務める、 Kubernetes 関連では一番大きいMeetupです。レベルが高く、かつ面白いお話を聞ける貴重な場です。
あまりの人気にいつも満席になってしまいますが、YouTubeでLive配信もしてくださるので、その場に行けなくても参加できますし、あとでじっくり復習することもできます。
手を動かす系
ここでは、本を読んだりイベントに参加したりしながらちょっとずつ勉強した Kubernetes を、実際に自分なりに使っていこうという試みをしたときの紹介をします。
Morio Library
Morio Libraryは、当社クラウド本部の新卒研修で作成した図書館ツールです。詳細は他の記事で熱く語られているので、そちらをぜひご覧ください。
このMorio Libraryのインフラ部分を構築する際に、コンテナをちょっと勉強したし実際に使ってみるか、とDockerにチャレンジしました。
データの永続化やアプリケーション間の通信など、やってみないとわからない躓きポイントがたくさんあることに気付けました。
簡単なWebアプリケーションを Kubernetesクラスタにデプロイする
Go 言語の勉強をするために作成したWebアプリケーションを、IDCF クラウド上に作成した Kubernetesクラスタにデプロイしました。
本で勉強しているときは、本に書いてあるコマンドを直打ちすればできていたことも、自分でやろうと思うと躓くポイントが非常に多く、一番辛い勉強法でした。
本で得た知識を実践していく段階なので、辛いながらも一番身になったのは間違いありません。
おわりに
あれこれやっていますが、まだまだクラウドネイティブなエンジニアへの道のりは遠いです。 CNCF ( = Cloud Native Computing Foundation) が発行している Cloud Native Trail Map(上図)によれば、Kubernetes を理解してやっとStep3のようです…
とにかく覚えることが多く、新しい技術もどんどん出てきます。周辺エコシステムも盛り沢山です。
勉強するのは大変ですが、それだけに魅力ある技術が沢山詰まった分野だと感じています。
今後も Kubernetes をはじめとしたクラウドネイティブ技術と共に成長する IDCFクラウドにご期待ください!