コンテナ対応ストレージの登場により、エンタープライズ領域へと広がるKubernetes
はじめに
KubernetesとDockerを組み合わせたコンテナの活用が企業コンピューティングの世界で広がっている。アプリケーションリソースをパッケージ化できるコンテナは、稼働する場所を選ばずに、迅速なアプリケーション開発を可能にするために、デジタル・トランスフォーメーション時代を象徴する技術として注目されている。
最近では、クラウドネイティブな開発者向けの技術とされ、データなどを保持しないステートレスな分野で使われてきたKubernetesが、ステートフルなエンタープライズシステムで利用されることで、Kubernetes上のデータマネジメントという運用面での新たなテーマも浮上してきている。
そんな中、ネットアップが開催するオンラインイベント「NetApp INSIGHT Japan」(LIVE配信:2021年2月25日~26日、オンデマンド配信:2月25日~3月19日)では「Kubernetesの現状とこれから」という題目でパネルディスカッションが行われた。
すでに基本的機能は成熟のフェーズに
パネルディスカッションに登壇したのは、サイバーエージェントで社内向けにKubernetes as a Serviceの開発と運用を担当する青山 真也氏、ヤフーのグループ企業であるゼットラボで、ヤフー向けのKubernetes as a Serviceの開発・設計を担当する坂下 幸徳氏、ネットアップでKubernetes対応ストレージのインテグレーションや技術情報の提供を担当する大野 靖夫氏。モデレータをITジャーナリストでPublikey代表の新野 淳一氏が務めた。
ディスカッションの最初のテーマは「Kubernetesの動向」。複数のDockerなどコンテナの管理や運用を自動化するコンテナオーケストレーションのプラットフォームとして成長し続けているKubernetesはどこまで技術的に成熟しているのか、どこまで普及するのかについて各自が持論を展開した。
青山氏は「ここ1、2年でKubernetesはかなり成熟してきたと感じています。クラウドでもオンプレでもKubernetes上で開発するのが当たり前になってきました」と切り出した。その分、仮想マシンの数は減ってきているという。実際の開発事例も豊富に出てきて、尖った技術ではなくなりつつあるという見方を示した。
坂下氏も「基本的な機能は成熟してきました」と青山氏に同意する。ヤフーでもコンテナが当たり前になりつつあるという。ロードバランサーやオブジェクトストレージなど、いくつかの機能はいまだ発展途上にあるが「日々アップデートされ進化しています」(坂下氏)という状況だ。
Kubernetesの機能が成熟してきたことは、周辺のビジネスにも変化をもたらす。ベンダーサイドに立つ大野氏は「機能が安定してきたことで、どうやって価値のある提案ができるかという段階に入ってきました」と変化を語る。Kubernetesの利用が広がっている背景にあるのは、開発スピードへの要求の高まりだ。大野氏は「ひとつのアプリケーションを育てているような企業はKubernetesに舵を切ってはいません。一方でソフトウェアとビジネスが直結し、迅速なソフトウェア開発が求められるインターネットサービスや金融分野などではコンテナによって小刻みにリリースを繰り返すような開発スタイルにシフトしています」と話す。
青山氏は開発スピードに加えて、ベストプラクティスが活用できるメリットを挙げる。「Kubernetesでオーケストレーションすることで、アプリケーションの更新がしやすく、開発や運用が容易になります」とその効果を強調する。Kubernetesのエコシステムが形成されつつあるということだろう。
ITインフラ管理の一元管理にも利用できる
こうしたKubernetesと相性が良いのはどんなシステムなのか。「短い開発サイクルでアップデートを繰り返すようなシステムです。Kubernetesはスケールアウトしやすいので、小さく始めて拡張していくようなビジネスにマッチしています」と坂下氏は強調。機能は充足しつつあるし、管理できる機器も増えているKubernetesだが、すべてのアプリケーションがKubernetesになると考えるのは早計のようだ。ここで坂下氏が示したのは、アプリケーションの稼働率のパターンによる違いから考えるというアプローチだ。
年間で計画メンテに充てる時間が1時間だと稼働率は99.988%になる。しかし、アプリケーションによってこの1時間をどう使うのかが違ってくる。基幹システムのようなステートフルなシステムでは、年に一度1時間かけてメンテナンスするイメージだ。この場合にはKubernetesである必要はない。一方、更新頻度が高いアプリケーションではメンテナンスも頻繁に行われる。「この場合、アップデートにかかる時間を極力短くする必要があります。それがKubernetesの世界なのです」と坂下氏。アップデートを高速化できるKubernetesを活用して一回を5分で済ませられれば、1年間で1時間しか使わずに99.988%の稼働率を実現できる。
リスクを避けるためにアップデートはできるだけ行いたくないというアプリケーションもあれば、機能を拡張し続けるために頻繁にアップデートしたいというアプリケーションもある。それによってどちらのパターンなのかが決まり、Kubernetesに対する必要度も変わってくる。坂下氏は「Kubernetesと仮想サーバーはそれぞれ得意、不得意があります。共存して使い分けていくべきだと考えています」と指摘する。
しかし、ITインフラを管理する立場からは、ITインフラが一元化されていた方が管理しやすい。「共通のやり方ですべてのITインフラを管理しようと思えば、今はKubernetesのレイヤーで抽象化することになるでしょう」と坂下氏は語る。青山氏も「ITインフラ管理はKubernetesを前提に考えています。足りない機能を追加できるKubernetesは丁度よい抽象化レイヤーです。管理の基盤としていきたいですね」とKubernetesの位置づけを語る。クラウドサービスにおけるOSのレイヤーと捉えることもできる。
一方で変化を嫌うユーザーがいることも確かだ。「すべてのお客様がKubernetesを使いこなす状況にはありません。今後も部分的にKubernetesが導入されて、仮想マシンと共存していくことになるでしょう」と大野氏は展望を示した。
今後望まれるデータマネジメント機能の強化
Kubernetesのアプリケーションの種類が増える中で、Kubernetesにおけるデータマネジメントはどうなっていくのだろうか。特にユーザーが期待するのは、スナップショットやバックアップ、クローン、レプリケーションなどのデータ保護機能だろう。
モデレータの新野氏の「今どのレベルにあるのでしょうか」との問いに対して大野氏は「Kubernetesの中にもある程度の仕組みはできてきました。コンテナ・ストレージ・インタフェース(CSI)を通して、コピーやレプリケーションの指示を出せるようにはなっています。ただエンタープライズのビジネスレベルにはまだ達していないように思えます」と答えた。
ストレージ専門の担当者に依頼してきたような設定が、Kubernetesでは簡単にできるようになるというメリットはあるが、ビジネスから要求されるデータの整合性などから考えるとKubernetesではさらにサポートや改善が必要になる。具体的にどんなところが不足しているのかという点について青山氏は「クローンやスナップショットを作成することは簡単にできますが、例えば、システムを横断して特定のタイミングでのバックアップをしようとすると別途商用サービスが必要になります」と指摘した。
こうした状況の中で注目されるのが、コンテナ対応ストレージだ。坂下氏は「求められる要件については、管理者視点とアプリケーション利用者視点の両方の視点から考える必要があります」と主張。管理者視点で求められるのは、障害発生時に自動で復旧できる機能だ。IPアドレスを追従して自動更新して更新時間を短縮する必要が出てくる。現在のCSIでは標準になっていない機能である。「しかし、Kubernetesの機能は日々進化しています。ストレージの管理面の機能もそこに追従できることが重要です」(坂下氏)。
アプリケーション利用者の視点からは「使いやすさ」が求められる。坂下氏は「現在Kubernetesのコミュニティのワーキンググループでは、アプリケーションドリブンのデータバックアップが議論されています」と最新動向を紹介した。アプリケーションが見えるというコンテナの利点を活かして、スナップショットを作成してストレージにバックアップするという一連の操作を、アプリケーションドリブンで自動化できれば、Kubernetesならではのデータ保護が確立できる。個々の機能はすでにあるので、組み合わせることでより高度化していくことが期待されている。
進化することでステートフルなアプリにも対応
Kubernetesを利用する上でストレージにはどのような条件が求められるのか。青山氏は「Kubernetesでストレージを利用する際に重視しているのはCSIドライバーがCSIに追従してアップデートされるかどうかです」と語る。そんな同社が選択したのがネットアップが提供する「Trident」だ。ストレージとKubernetesをつなぐプラグインで、コンテナ化したアプリケーションでオンデマンドの永続的なストレージを簡単に利用できる。「3カ月スパンで新しいバージョンがリリースされるので、ニーズにマッチしていました」と青山氏は選定理由を語る。
同じくTridentを利用している坂下氏は「ストレージはベンダーのアプライアンス製品のみを利用していくつもりはありません。SDSなども公平に性能やコストで評価し、アプリやデータの特性に応じて適材適所で利用していく予定です。もう1つのポイントはヤフーの中で運用ができるかどうかです。そのためには3カ月に一度のペースでリリースされるKubernetesに追従できるCSIドライバーが必要でした」と語る。
大野氏は「Kubernetesのディストリビューションのサポートサイクルに合わせたサポートを提供することを重視しています」とアップデートに対する考え方を語る。KubernetesがCSIをサポートした2019年2月からTridentのアップデートを繰り返してきた。現在同社ではKubernetesのパワーをさらに引き出すために、新しいプラットフォームの開発に取り組んでいる。それが「Project Astra」である。「現在ベータ版が利用可能になっています」と大野氏は現状を語った。完成すれば大量のデータを扱うアプリケーションをオンプレミスでもクラウドでも移動できるようになる。
青山氏は「Kubernetesはステートフルなアプリケーションはまだ苦手です。そこを補えるものが拡充すると運用がやりやすくなり、より付加価値が提供できます。バックアップの連携やCSIドライバーのUpdateには期待しています」と語る。
「仮想マシンよりも運用の階層が少ないKubernetesでストレージが安定して使えるようになると、管理もしやすくなるはずです。多くの活用事例が出てくることで、ノウハウを蓄積できるようになることにも期待しています」と坂下氏はベンダーからの情報提供の重要性を語った。
最後に大野氏は「Kubernetesの勢いは止まりません。データマネジメントの領域をProject Astraによって高度化することで、Kubernetesというテクノロジーを広めていくことに貢献したい」と積極的な取り組み姿勢を強調する。Kubernetesの広がりを実感でき、今後の発展が期待できるパネルディスカッションだった。
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- コンテナを導入しないと、どのような未来が待っていたのか?【後編】
- CNDT2021、Kubernetes上のステートフルアプリに関する深い考察をゼットラボのエンジニアが解説
- 詳解KubernetesにおけるPersistentVolume
- StatefulSetとPersistentVolumeを使ってステートフルアプリケーションを動かす
- SODA Data Vision 2023からKubernetes上のアプリケーションデータを保護するKanisterを紹介
- CSIによるKubernetesのストレージ機能
- Open Source Forum:Huaweiが開発をリードするSODAに注目
- OpenStack Summit Sydneyに見るOpenStackの今そしてこれから
- コンテナを導入しないと、どのような未来が待っていたのか?【前編】
- CNDT2020シリーズ:ヤフージャパンのインフラを支えるゼットラボが語るKubernetesストレージの深い話