はじめに
- 今年はEKSでMattermostを構築するという機会を頂き、ひとまずMattermostを最低限動かす、というところまでは以下にまとめました。
課題いっぱい
-
最低限動かす
ことはできましたが、課題や改善点が盛りだくさんの状況です。まずは課題を洗い出していきたいと思います。 - 課題を明確にできれば、あとはコツコツ手を動かしていくだけですからね。
EKSMattermostの課題
- EKSのバージョンアップをするにはどうすればいい?
- Mattermostのバージョンアップをするにはどうすればいい?
- pod、nodeのオートスケーリングはどうすればいい?
- 監視はどうすればいい?
- helmの管理から外れて、独自に構築してしまった部分をどう管理すればいい?
EKSMattermostの課題:深堀り
- EKSのバージョンアップをするにはどうすればいい?
- これはk8sを使う上での最大の課題なのではないでしょうか。でも、そろろそろベストプラクティスが出てきているのではという感じもしています。この辺りは検証しながら自分なりのベストプラクティスを語れるようになりたいですね。
- で、バージョンアップするには、バージョンを上げた新しいノードグループを作成して、そちらにpodを移動する、というような動きになると思っていて、それを可能にするには、Nodeを指定してpodを移動するとか、このNodeにはこのpodがいてほしいとか、そういった制御もできるようになれればいいなあと思っています。
- Mattermostのバージョンアップをするにはどうすればいい?
- この課題にはアプリケーションに影響を与えずにアップデートするにはどうすればいい?という問題も含まれていると考えます。なので、podをローリングアップデート(最終的にはブルーグリーンも)できればいいのかなと思います。
- そのためには、deploymentのstrategyを編集するのかなと当たりをつけています。
- ブルーグリーンはhelmでもバージョン戻すこともできますが、もうちょっとgitops的な手法もできるようになりたいですね。
- pod、nodeのオートスケーリングはどうすればいい?
- オートスケーリングはHorizontal Pod AutoscalerやCluster Autoscaleの設定になってくると思うのですが、クラスター作成時にすでにCluster Autoscaleは設定できているのでは?と思っています。が、まだ挙動などは理解できていないので、深堀りしないといけません。
- 監視はどうすればいい?
- これはPrometheusとkibanaでダッシュボード見て最低限の確認ができればいいかなと考えています。実現方法もなんとなく見えてはいるのであとは検証できればというところですね。
- でも最低限の監視では不足しているところも出てくると思いますが、次の課題を見つけるためにもまずは構築してみようかなというところです。
- helmの管理から外れて、独自に構築してしまった部分をどう管理していく?
- これはKustomizeを利用することで対応しようとしているのですが、まだ何にもわからん状態です、、、
- とはいえ数ヶ月前まではhelmだって何にもわからん状態だったので、まずは触ってみるところからですね。でも
helmの管理から外れてしまった
という問題点は明確になっているのでここを解決する方法を探すという観点で進めていけばなんとかなりそうな感じもしています。
まとめ
- 課題を上げただけになってしまいましたので、最後に個人的なEKS学習方法を1つ紹介します。
- それは
Udemyで学ぶ!
です。- 米シリコンバレーエンジニア監修!AWS EKS KubernetesハンズオンBest Practices (2020) | Udemy
- 日本で普通に生活していてシリコンバレーのエンジニアさんにEKSを教わる機会はなかなかないと思うでの、Udemyで学びましょう。EKSに直接は関係してこないですが、普通に打ち込んでいるコマンドとかも勉強になりますし、説明は日本語なのですが、用語は英語的な発音なのでかっこいい発音を学ぶ機会にもなります。
- あとは、こうしてEKSに触れる機会を得られることは大きいと思います。個人でEKSを試すとなると料金が気になって作ってはすぐ壊して、となってしまいなかなか運用的な課題にまでは行き当たらないのかなと思います。
- ということなので、会社でお試しの環境がある人は是非がんがん手を動かしてEKSぶっ壊しながら学んでいきましょう。