ITコラム
Kubernetesを軸に再定義されつつある、新しい「クラウド対応」の意味とは
2019年4月2日
カテゴリー ITコラム
記事をシェアする:
著者:新野 淳一氏
ITジャーナリスト/Publickeyブロガー。
一般社団法人クラウド利用促進機構(CUPA)総合アドバイザー。
日本デジタルライターズ協会 代表理事。
Kubernetesが登場した頃、当初注目されていたのはコンテナオーケストレーション機能と、コンテナ上のアプリケーションが自由にクラウド間を移動できる、いわゆるハイブリッドクラウドやマルチクラウドの実現でした。
このKubernetesベースのハイブリッドクラウドやマルチクラウドはすでに複数のベンダから製品やソリューションが展開されるようになり、普及がはじまろうとしています。
しかしKubernetesの進化はそこにとどまらず、Knativeによるサーバレスプラットフォームの実現、ミドルウェアへの高可用性(HA)機能の提供、運用自動化の支援などに広がり、新しいプラットフォームになろうとしています。
Kubernetesはクラウドをどう変えようとしているのでしょうか。現状をまとめつつ展望してみましょう。
登場して3年でKubernetesはコンテナオーケストレーションの標準に
2014年6月にGoogleがオープンソースとして公開したKubernetesは、「コンテナマネジメントツール」や「コンテナスケジューラ」もしくは「コンテナオーケストレーションツール」であると紹介されました。
コンテナオーケストレーションツールとは、複数のコンテナからなるクラスタに対してロードバランスを提供する機能や、あるコンテナが異常終了したことを検知すると自動的に新たにコンテナを立ち上げるフェイルオーバーの機能などを提供するものです。コンテナを多数用いた分散アプリケーションの運用には、こうしたコンテナオーケストレーションツールの機能は欠かせないものとされています。
Kubernetesが登場してしばらくのあいだ、コンテナオーケストレーションの分野にはRancherやMesos、Swarmといった複数のツールが存在し、事実上の標準の座を争っていました。
しかしKubernetesが登場してから約3年後の2017年10月、それまで自社のコンテナオーケストレーションツールであるSwarmを持ってコンテナオーケストレーションツールの事実上の標準を目指していたDocker社が、Swamに加えてKubernetesもDockerに統合することをデンマークのコペンハーゲンで開催した自社イベント「DockerCon 2017 EU」で発表します。
この瞬間、Kubernetesはコンテナオーケストレーションツールの事実上の標準の座を射止めたことが誰の目にも明らかになりました。
ハイブリッドクラウド/マルチクラウドの基盤としてのKubernetes
この頃にはKubernetesを用いたハイブリッドクラウド/マルチクラウドを実現する製品が登場し始めます。
2017年6月には、IBMがKubernetesベースのIBM Cloud Privateを発表。すでにパブリッククラウドのIBM CloudでKubernetesのサポートを開始していた同社は、この製品によってパブリッククラウドとプライベートクラウドをKuberenetesでシームレスに統合するソリューションを提供。
2017年8月にはPivotalもKubernetesを用いたコンテナ環境「Pivotal Container Service」(PKS)を発表。Google Container Engime(GKE:当時の名称。現在はGoogle Kubernetes Engine)とKubernetesレベルで連係することにより、ハイブリッドクラウド/マルチクラウドの実現をアピールしました。
そして2018年6月にはKubernetesを統合したDocker Enterprise Edition(Docker EE)が登場。AWSやAzure、Googleが提供するKubernetesのマネージドサービスやオンプレミスのKubernetesなどをDocker EEが一元管理し、クラウド間のコンテナの移動などを実現する、マルチクラウド対応をKubernetesレベルで実現するものです。
もちろん、Kubernetesはさらに発展を続けます。コンテナオーケストレーションにとどまらない分散アプリケーションプラットフォームとして、さまざまな機能拡張が行われていくことになるのです。
Knativeによるサーバレスの実現も
2018年7月に発表された「Knative」は、Kubernetes上でサーバレスコンピューティング環境を実現することを目指したソフトウェアです。
現時点でのサーバレスコンピューティングは、代表的なAWS Lambdaをはじめ基本的にはクラウドに依存したプロプライエタリなアプリケーション実行環境であり、Knativeはそうしたサーバレス環境をオープンなものにすべく、開発が進められています。
2018年12月にリリースされたKubernetes 1.13では、ストレージベンダが自社製ストレージのためのプラグインを開発できるようにするための共通APIの「Container Storage Interface(CSI)」が正式版になりました。
個々のコンテナがそれぞれストレージと接続するのではなく、Kubernetesのレベルでストレージを管理することで、例えば、あるコンテナが何らかの理由で停止したとき、Kubernetesがコンテナのフェイルオーバーと同時にストレージのコネクションを適切な状態に設定してフェイルオーバー先のコンテナに接続できるようになります。
2019年3月にRed Hatが開設した「OperatorHub.io」は、Kubernetesの機能を拡張してアプリケーションの運用管理を支援する「Operator」と呼ばれるプラグインのオンラインマーケットです。
データベースの運用監視などはソフトウェアごとにノウハウがあります。OperatorはKubernates上でそうしたソフトウェア固有のノウハウやテクニックをプラグインとしてKubernatesに組み込む仕組です。そして「OperatorHub.io」は、そうしたプラグインを検索できるポータルになるわけです。
これによってKubernetesは運用自動化を支援するフレームワークへも拡張されていくことになります。
IBMはミドルウェアの一部機能もKubernetesへオフロード
Kubernetesはこれまでミドルウェアが備えていた機能の一部も置き換えつつあります。
IBMはWebSphereやDb2などをKubernetes対応するにあたり、それまでミドルウェア自体で抱えていたセッション管理、ルーティング、障害時リトライといった高可用性のための機能を取り出して、Kubernetesにオフロードしたことを明らかにしています。
日本IBM エグゼクティブアーキテクト 渡邉周一氏は、「これによりミドルウェアのコアだけがコンテナで稼働するようになるため、以前より軽快に動作するようになります」と、Kubernetesへのオフロードの利点を説明します。徹底的なKubernetes対応を突き詰めていくとアプリケーションの形はこうなる、という見本でしょう。
最近では2019年3月にRancher Labsが、クラウドほどコンピュータリソースが潤沢にあるわけではないエッジ環境でも動作する軽量なKubernetes実装「k3s」を発表しました。Kubernetesはクラウドにかぎらずあらゆる場所でコンテナを動かすための環境になろうとしています。
個別のクラウド対応と、クラウドに依存しないマルチクラウド対応の両立
過去約10年のあいだ、クラウドの進化とは、おもに各ベンダが提供する個別のパブリッククラウドの進化によって牽引されてきました。各ベンダとも、クラウド間の相互運用性よりもそれぞれのクラウドの進化や機能強化を優先して注力してきたともいえます。それゆえ、クラウドへの注目とは個別のクラウドの新機能への注目に近いものがありました。
しかしここ数年のKubernetesの急速な発展は、そうした個別のクラウドの進化に向いていた視線を明らかに奪っています。いまやほとんどすべてのパブリッククラウドが積極的にKubernetesのサポートを行っており、そのKubernetesのレイヤを通じてパブリッククラウド、プライベートクラウド、そしてエッジにまで広がるハイブリッドクラウドやマルチクラウドの実現は始まっています。
そしてここまで紹介してきたとおり、Kubernetesは個別のクラウドに依存しない分散アプリケーションプラットフォームとなり、ハイブリッドクラウドやマルチクラウドで実現できる機能がこれまで以上に急速に充実していくことは間違いないでしょう。もちろんそれと並行して今まで通り個別のクラウドの機能も進化していくことでしょう。
つまりこれからクラウドの進化はこの2つ、個別のクラウドの進化と、Kubernetesに代表される個別のクラウドに依存しない分散アプリケーション基盤の進化が並行して進んでいくことになるはずです。
日本IBMでお客様向けにシステムインテグレーション事業を担当するグローバル・ビジネス・サービス事業本部のCTO 二上哲也氏も、「アプリケーションを作るうえで、オンプレミスではこう作る、クラウド向けにはこう作る、ということではなく、どのプラットフォーム向けであっても同じように開発し、デプロイし、運用できることが生産性や効率化につながる」と、実際のシステム構築においてKubernetesで実現されるマルチクラウド対応には大きなメリットがあると発言しています。
これまでのクラウド対応とは、おもに特定のクラウドにフォーカスしてその上でシステムを構築することが中心でした。これからはそれに加えて、特定のクラウドに依存せず、ハイブリッドクラウドやマルチクラウドを用いた分散アプリケーション基盤で実現できることにも目配りをする。
この2つをアプリケーションに応じて適切に配分し構築することが、新しい「クラウド対応」と呼べるものになっていくのではないでしょうか。
女性技術者がしなやかに活躍できる社会を目指して 〜IBMフェロー浅川智恵子さんインタビュー
ジェンダー・インクルージョン施策と日本の現状 2022年(令和4年)4⽉から改正⼥性活躍推進法が全⾯施⾏され、一般事業主⾏動計画の策定や情報公表の義務が、常時雇用する労働者数が301人以上の事業主から101人以上の事業主 […]
Qiskit Runtimeで動的回路を最大限に活用する
私たちは、有用な量子コンピューティングのための重要なマイルストーンを達成しました: IBM Quantum System One上で動的回路を実行できるようになったのです。 動的回路は、近い将来、量子優位性を実現するため […]
Qiskit Runtimeの新機能を解説 — お客様は実際にどのように使用しているか
量子コンピューターが価値を提供するとはどういうことでしょうか? 私たちは、価値を3つの要素から成る方程式であると考えます。つまりシステムは、「パフォーマンス」、「機能」を備えていること、「摩擦が無く」ビジネス・ワークフロ […]