KubeCon North America:座談会で見えてきた退屈なKubernetesの次の世界
2019年11月のKubeCon North Americaには12,000人という過去最大の参加者が集い、ベンダー、コミュニティそしてユーザーが入り混じった形でさまざまなトピックについて情報交換が行われた。3日間の会期には数多くのセッションが行われ、CNCF配下のプロジェクトのアップデートからユースケース、そしてベンダーの宣伝まで、多種多様な情報に溢れたカンファレンスとなった。この膨大な情報を総括するために、クラウドネイティブなシステムに精通しているエンジニアを交えて座談会方式でインタビューを行うことで今回のカンファレンスを振り返りたい。
座談会の参加者はサイバーエージェントから青山真也氏、長谷川誠氏、日本電気からは元木顕弘氏、LINEからは室井雅仁氏、市原裕史氏、ヒューレットパッカードエンタープライズから吉瀬淳一氏の6名だ。サイバーエージェントの青山氏、長谷川氏はともに社内のプライベートクラウドにKubernetesを活用しているインフラ担当エンジニア、元木氏は今回初めてのKubeConへの参加だが、OpenStackではコミッターとして活躍しているエンジニアだ。室井氏、市原氏はともにかつてはNTTでOpenStackの開発に加わっていたエンジニアだが、現在はLINEに移って社内向けのクラウドインフラストラクチャーに携わっている。HPEの吉瀬氏は国内に限らず海外のエンタープライズ顧客向けのプロジェクトなどにも参画するクラウドに精通したエンジニアだ。
では今回のカンファレンスで面白かったモノがあればそれを教えて下さい。
青山:個人的には全体的にそれほど面白いというモノはなかったんですが、マニアックな話で気になったのはKubernetesのNamespaceを階層的にしようというプロジェクトですね。これはマルチテナンシーを想定したユースケースですね。KubernetesのNamespaceって、いっぱいボコボコ作られちゃいますけど、RBAC(Role Based Access Control)などの設定をテンプレート的に引き継ぎたいみたいなニーズがあるんですよね。これが今検討されているということで、そのセッションを聴きました。
長谷川:Kubernetesがboring(退屈)になったというのは、前回のKubeConなどでも言われ始めましたけど、確かにそうかもしれないなとは思いました。過去のKubeConではコンテナのランタイムに注目してセッションを聴いてみましたけど、今回はキーノートのプロジェクトアップデートでもランタイムの話は出てこなかったし、ある程度終わっちゃったトピックなのかなと感じました。Kata ContainerとかFirecrackerとか面白いものはあるんですが、あまり注目されていないですね。個人的にはネットワーク周りのCNI(Container Network Interface)のDeep Diveなどに参加しました。あとは、Podのスケジューリングの際のリソースの制御などのセッションも聴きました。
吉瀬:私もKubernetesそのものの話はあまり話題がなかったと感じていて、ソフトウェア自体が成熟してきたのかなとは思いますね。その大きな理由のひとつはCRD(Custom Resource Definition)がベータからGAになったことがあると思います。で、その先にあるトピックはマルチに構成したKubernetesをどう管理するのか?とか、エッジ側に置いたKubernetesのような所に焦点が移ってきているんだなということを感じましたね。キーノートで紹介されたWalmartの事例のように、マルチで構成されたKubernetesというシステムが現れているように、そろそろそういう使い方の大規模な導入事例が出てきているということですね。
室井:Kubernetes自体が完成されつつあるというのを感じましたね。なのでアーリーアダプターに取ってみると「もう通ってきた道なのでつまらない」という印象を抱いちゃうのは仕方がないのかなと。これはOpenStackでも通ってきた道なので、Kubernetesでも同じことになっているように思えます。
市原:今回一番面白かったのは、Lyftのエンジニアが発表したセッションでAWSの上にKubernetesのクラスターを構築して、EKSやECSを使わずにEC2のインスタンスの上に自前のCNIのプラグインを使って高速で遅延の少ないネットワークを構築したユースケースの話でした。マネージドではなく自分たちで作り込んでいるというユースケースで、全部自分たちで構築することでネットワークの要件を満たすっていうネットワーク屋さんにとっては凄く良くできている事例でしたよね。
参考:Lyftのセッションの動画 https://www.youtube.com/watch?v=Mj5zgbC6YDI
元木:3日目のキーノートではWalmartのユースケースでエッジに置いたKubernetesがちゃんと動いているという話がありましたけど、もうKubernetes自体ではなくそれを使ってどうやってビジネスを動かすか?みたいな話になってますよね。サービスメッシュやっている人もIstioをちゃんと理解してこうやって構成しようみたいなところに話が行っているという段階で。
参考:Walmartのセッションの動画:Low Latency Multi-cluster Kubernetes Networking in AWS - Paul Fisher, Lyft
市原:Walmartのユースケースで興味深かったのは、クラスターの中のだけじゃなくて他のクラウドと繋いで使うとか規模が大きくなっているという印象がある点でしたね。今回、OPA(CNCFのプロジェクト。Open Policy Agentの略でセキュリティを実装)とかNATS(CNCFのプロジェクト。メッセージングを実装)が紹介されていましたけど、どっちもある程度の大きさのシステムを想定しているような気がしています。SIG-Networkなどの議論でもクラスター間の通信などがホットな話題になっていますし、他のシステムとの繋ぎを意識したソフトウェアが出てきていると思います。あとIngressのAPIの今のバージョンがそろそろGAになりそうなのに、もう次のバージョンのAPIについての議論が始まっているという辺りにも、マルチテナンシーやマルチクラスターなどの部分に興味が集まっているという印象はありますね。
吉瀬:Day0のイベントでWeaveworksがプレゼンテーションしている話を聴いたんですが、そこではWeaveworksが作っているFluxと、Intuitが作っているArgoを一緒にして、GitOpsをもっと進めようみたいな動きがあるというのも関連してるのかなと。つまりマルチになった時に共通部分の構成をどうやって管理するのか? システム単位の構成をどうやって管理するのか? みたいな話ではGitOpsみたいな発想は欠かせないんですよね。
大規模なユースケースが出てきてそれを個別に実装するんじゃなくて、それをサポートするツールがオープンソースとして出てきて皆で使う、進化させるみたいなエコシステムができているというのがKubernetesの強みだなと思いますね。個人的にはKEDAが非常に気になりました。KEDAはMicrosoftとRed Hatが協力して開発しているイベントドリブンなPodのオートスケーリングを実現するものです。非常にシンプルにイベントをCRDに従って自動的にゼロからスケールさせるためだけのツールです。
参考:KEDAのGitHubページ:kedacore / keda
吉瀬:サーバーレスっていうと話が大きくなり過ぎるんで、そのスケールすることだけにフォーカスしたプロジェクトですよね。Knative Eventingと、めっちゃ被りますけど(笑)。
そうです。セッションの最後に「Knativeとは何が違うの?」という質問した人がいましたが、回答が「Knativeはいろいろできるけど、KEDAはファンクションの実行をパラレルにオートスケールすることだけしかやらないし、KubernetesのCRDだけで実装しているから、シンプルである」でした。
室井:他に面白かったのは、IstioをKubernetesのPodだけじゃなくて仮想マシンにも適用しようとするプロジェクトの話ですね。つまりIstio Agentを仮想マシンに入れることで、サービスディスカバリーをIstioからできるようになっていて、仮想マシンもコンテナと同じようにサービスメッシュのエンドポイントになり得るっていう。
レガシーなワークロードもIstioのエンドポイントとして使えるようになると。
長谷川:あるベンダーの人が言ってたんですが、サービスメッシュの事例ではコンテナだけではなく仮想マシンを使ってサービスメッシュを作るというのが多いらしいという話ですね。
あと「ついに来た!カオスエンジニアリング!」っていうのが個人的にはハイライトでしたね。
元木:そうですよね。カオスエンジニアリングって特にセッションもなくていきなりキーノートに来たので、これは仕込みなんじゃないか?と(笑)。
吉瀬:まぁ、デモで見せてたのは日本のシステムインテグレーターが普通にやっているような内容でしたけどね。なのであれなら受け入れやすそうだなとは感じました。現実的に足が地に着いた内容だったと思います。
室井:カオスエンジニアリングがこれまで余り拡がらなかったのは、事例がなかったことが大きかったのかなと。それがいきなりTargetという事例が来たのが大きいですね。なのでこれからは、Gremlin以外にもプレイヤーは増えていくんじゃないですかね。
日本でもカオスエンジニアリングをやるベンチャーが出てくると良いかなと思いますね。
長谷川:まだゲームデイというコンセプトというか手法は伝わっていないと思いますけど、これからですね。
元木:本番でテストするというのはカナリヤリリースの延長線上という感じですよね。
室井:ちょっと前にカオスエンジニアリングを検討した時に思ったのは、実際はシステムを壊すっていうのは簡単なんですよ。つまり仮想マシンを止めたりするっていうのは。でも問題は壊した後にちゃんと元に戻すっていうのができない、というかそこが自動化できないということだったんですね。つまりちゃんと復旧すればテストとしては成功でOKなんですけど、開発段階のテストって大体上手く行かないんで、それを手動で戻すっていう手間を考えたら躊躇しちゃうんですよね。でもKubernetesという宣言的にあるべき状態を定義して、システムがそれに従って元に戻してくれるという機能が実装されたことで、初めてカオスエンジニアリングにも意味がでてきたのかなと。
元木:戻したけど戻りきっていないっていう。あと次のテストが依存関係によってうまく実行できないとか。
市原:それはその上に載っているアプリケーションがステートフルになっていることにも関連してますよね。
青山:あと、今回のカンファレンスでは面白いというよりも「え~そんなことするの?」みたいな気分になることが多かったような気がします。そのこともあって、全体的に個人的な感想としてちょっとネガティブになっている要因かなと。
市原:それに関しては同意です。でもそれって結局、Kubernetesのユーザーが爆発的に増えて、これまでのGoogleがリードしていたキレイな実装から、さまざまなユースケースを想定した実装に移りかけているというのが原因なのかなとも思うんですよね。例えばIngressのAPIにしても、コマーシャルなソフトウェアのロードバランサーを嵌めようとしたら、パラメーターとか足らないものが一杯あるんですよね。なのでそういうベンダーの都合に合わせていろいろな思惑が入ってきていると。特に通信キャリアが入ってくると、IPv6あたりも「やって当たり前」みたいなことになりますよね。
吉瀬:これもいつか通った道っていう(笑)。
元木:今回、5Gの話もキーノートでやってましたけど、それってクラウドネイティブでやる必要あるの? みたいなことにも繋がっているのかなと思うんですよね。なのでこれは絶対に譲れないという部分をどれだけちゃんと守るのか? みたいなせめぎ合いが、これからは始まっていくのかなと。
市原:それってこれまでOpenStackとかが通ってきた道で、つまり通信キャリアがお金を持っていてそれに合うような仕様でベンダーが作るという構図が崩れないと変わらないと思いますね。
青山:通信キャリアが欲しいKubernetesと、サイバーエージェントとかNetflixとかのWebサービスを提供しているベンダーが欲しいKubernetesは違うんだと思うんですよ。でもそれって2つの別々のKubernetesができるのではなく、コアの部分は一つで各々の仕様はCRDで吸収していけるような気がしているんですけどね。だからそれを早く実現して欲しいなと。
吉瀬:そういえばOpenStackも、そうするためにBig Tentというコンセプトでやってましたよね。
元木:でもOpenStackは最終的に、競合するプロジェクトがあっても強いやつが生き残るっていう弱肉強食の世界になりました(笑)。
最後にこれだけは言っておきたいみたいなことはありますか?
吉瀬:これまでKubernetesは難しいことにチャレンジするというのがゴールというかやりがいみたいなもので進んでいたんだと思いますけど、これからはある程度、完成してきて簡単に、退屈になってきているんだと思うんですよね。なのでベンダー側は単に作るだけじゃなくて、実を採るみたいなフェーズになっていくんだと思います。その時にどれだけ頑張れるか? ここを問われているのかなと。
室井:2016年のシアトルのKubeConに参加したんですけど、その当時は「どのツールが一番簡単にインストールできるか?」みたいなセッションがあったことを思い出すと大分変わったんだなと思いますよね。これからが正念場だと思います。
過去最大の参加者を集めたKubeConでは、参加者が多様化することによってKubernetes自体の進むべき道、方向性を見失うのではないか? という懸念を共有できたインタビューとなった。Kubernetesが退屈で当たり前になるのと同時に、巨大なユースケースが出てくることでエコシステムが拡がり、新しいプロジェクトや新機能が実装されていくことは確実だろう。未だにバージョン1のKubernetesが今後どのような進化を遂げていくのか、今後も注目したい。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- KubeCon Europeに参加した日本人エンジニアとの座談会で見えてきたKubernetesの次の方向性とは
- KubeCon Europeでサービスメッシュの標準化を目指すSMIを発表。Istioの動向にも注目
- KubeCon NA 2020、サービスメッシュのLinkerdの概要とユースケースを紹介
- サービスメッシュのLinkerdの最新リリースと将来計画をBuoyantのCEOが解説
- OpenStack Days Tokyo 2017 関係者が語る本音ベースの座談会
- KubeCon+CloudNativeCon EU 2021、コロナ禍に対抗するシステムを支えるLinkerd
- KubeCon+CloudNativeCon NA 2020 IntuitとMayaDataによるカオスエンジニアリングのセッション
- KubeCon NA 2021からサービスメッシュの2セッションを紹介
- Open Infrastructure Summitで日本人コントリビュータ座談会を実施。今回のカンファレンスの見どころは?
- KubeCon Europe 2023から、Linkerdの最新情報とeBPFがサービスメッシュに使えない理由を解説したセッションを紹介