orangeitems’s diary

40代ITエンジニアが毎日何か書くブログ

Kubernetesの自前運用はやっぱりツライらしい

f:id:orangeitems:20191108183058j:plain

 

Kubernetesの自前運用は難しい

これから嫌でもコンテナと戦わなければいかないインフラエンジニアには何度でも読み返してほしい記事です。

 

www.atmarkit.co.jp

はてなのMackerelチームはKubernetesクラスタを自前で構築して運用していたが、撤退を選択したという。なぜ、Kubernetesの運用を諦めて撤退を選んだのか。はてなのMackerelチームでSREを務める今井隼人氏が語った。

 

考察

この話、20年前のLinux草創期を思い出すんです。

雑誌の付録にLinuxがCD-ROMで付いてたんです。最近のスマートなCentOSとかじゃなくてですね、何Linuxだか忘れたのですがインストールも含めて3日間ぐらいかけて取り組んだんですが結局失敗した記憶があります。

これからKubernetesなりコンテナがやってくるのはここ最近に書いた通りで、早くそっちの世界に行きたくてイノベーターたち(はてなのような)が取り組むわけですが、やっぱり今の段階はいろいろ大変なんです。草創期のLinuxとすごく似ています。

開発エンジニアはローカルでDockerを使ってコンテナでの開発に慣れてきてるもんだから、早くサーバーサイドもコンテナに対応してくれないか。CI/CDという言葉をすごくよく聞くようになったのですが、インフラエンジニアへの期待は日に日に高まっているのは間違いありません。

Kubernetesの嫌なところは・・。マイクロサービスの課題点と同義です。一つ一つの単位が小さいので管理対象の個数が莫大なのです。仮想マシン単位の場合は、端的に言ってWEBAPとDBの二層があり、それをスケールするかどうかだけの話でした。

各環境はプロテクトされていたために、開発者とすれば修正に大変な手間がかかる変わるに、変更管理は長いこと安定的に運用されてきました。管理単位が少なかったために見える化しやすかったのです。

ここが、マイクロサービスになると、機能が細分化してしまう。CI/CDの名のもとにどんどんアップデートされてしまう。そのうえで、Kubernetes自体がどんどんバージョンアップしていくのだけれども、それを適用したときにちゃんとコンテナたちが動くかわからない。

Kubernetesも致命的な脆弱性を過去出していますし、インフラ運用管理者としては、はてなのインタビューの通り、専任をつけつつ属人化しないようにしないと、まぁ、記事の通り破綻してしまいます。

今世の中に出ている、GKEだのAKSだのEKSっていうのは、その面倒なマネージド部分をパブリッククラウド側が巻き取ってくれているので、ユーザーはまだ利用しようという気概はあるのですが、本来のKubernetesのビジョンってそんなことじゃなかったはずだと思います。

ここ最近、コンテナやらKubernetesやらの話題が私に降りかかってきているので、話を整理するために集中的にコンテナコンテナ叫んでいるのですが、これ、ほんと世の中の雰囲気だけでイノベーティブに手を付けるのは、およしなさい、というところです。

 

Kubernetesの解説ビデオなどを見ると嫌になってくる

Kubernetes自体のコンセプトはよくわかっている前提で、入門のためのビデオがYoutubeによく落ちているのですが、聞いてるとイヤになってくる。いろんな考慮点が折り重なっていて、かつそれらを全て理解していないと動かない。コマンドで動かすのが当然で、それを流し込むのがYAMLと呼ばれる構成ファイル。

人間の道具としては、難しすぎると思います。

勉強したんですけど忘れる。使おうとすると思い出さなければいけない。その繰り返し。どんどん属人化していく。

Googleが20億のコンテナを運用しているというのは有名な話で、それぐらいの規模で運用するならまだ、専任を千人ぐらい(しゃれじゃない)用意してナレッジマネジメントできるのかもしれませんが。やっぱり中小企業で一人担当者とかにはツライですよまだ。

GoogleはAnthosというKubernetesをもっと抽象化して、コンテナを使いやすくしようとしています。

 

ascii.jp

日本市場でAnthosは使われるのか――。これについてGoogle Cloud 日本代表の阿部伸一氏は、「5年後のビジョンがある企業であれば、単なるリフト&シフトではなくモダナイゼーションまで考えている。Anthosでは、マイグレーションツールを使って簡単にモダナイズができるのでユーザーの心理的な障壁は少ないのではないか。自動化、マイクロサービス化と難しく考えずに、Anthosによるコンテナ化は“サーバー仮想化の延長”くらいのイメージでとらえてもらえればいい」と語った。

 

今のKubernetesのままでは、とても使いにくい。もうこれは運用界隈での共通知としておきたい。はてなに感謝。失敗例こそありがたい。

そのうえで次のソリューションが出始めている。どこのベンダーが勝つかはわかりませんが、決着がつき始めてからがようやく、コンテナの世界がサーバーサイドで本格普及するタイミングだと私は思います。

しかしまぁ、コンテナ自体はシンプルな技術なのですが、どうしてこんなことになってしまったかなぁ・・。