急成長を続けるKubernetesの最新動向(後編)
普段はロスアンゼレスに在住し、
今回のブログは、
CNCFエコシステム
CNCF(Cloud Native Computing Foundation)では、下記の図を作成し、頻繁に改定しています。
この表は、CNCFの定義する、クラウドネーティブランドスケープと呼ばれるもので、CNCFが定義する下記のカテゴリーに該当するベンダーやテクノロジーを整理したものです。
App Definition & Development - アプリケーション開発ツールとデータベース
- 言語フレームワーク
- データ分析
- ストリーミング
- SCM
- アプリ統合、レジストリサービス
- CI/CDツール
Orchestration and Management - オーケストレーション/運用管理
- オーケストレーション
- サービスディスカバリ
- サービス管理
Runtime - ランタイム ツール
- ストレージ
- コンテナランタイム
- ネットワーキング
Provisioning - プロビジョニング ツール
- インフラ自動化
- ホスト運用管理
- セキュリティー
Cloud - クラウドインフラ
- クラウドプラットホーム技術 ※このカテゴリーはCNCFの対象外
Platforms - プラットホーム
- PaaS、コンテナ運用
- サーバレス/イベントベース
Observability & Analysis - 監視/分析
- 監視
- ログ収集/分析
- トレーシング
上記の図においては、基本的にCNCFで採用されているプロジェクト(現時点で合計16個)は大きい箱で記載されていて、これに加えて、関連するオープンソース技術と商用製品として提供される技術も記載されています。
ここで注目すべきは、CNCFは決してKubernetesに限定した活動をしているわけでは無い、ということです。
Cloud Nativeの名が指す通り、クラウド上でアプリを開発、運用するための次世代のアーキテクチャを定義し、その普及を促進することが目的であって、Kubernetesはどの道具の一つとしての役割にすぎない、ということです。
もう少し厳密に説明すると、CNCFの定義するクラウドネーティブなシステムは次の要件を満たしている必要があります。
- コンテナによるパッケージング
アプリケーションやプロセスをコンテナを単位として稼働し、再利用による応用性や開発スピードの向上に活用する。 - 動的な管理
サービスのスケジュール等の管理を集中的なオーケストレーション機能で行う。下位のハード(CPU/ネットワーク/ストレージ)やVM/OSリソースのより有効な利用による総合的なコスト削減を実現する。 - マイクロサービス志向
各アプリやプロセスが疎結合で通信しあいながらも、各サービスの役割は明確に定義されている環境を通して、アプリケーション全体の管理効率を向上させる。
まだ、クラウドネーティブの市場は始まったばかりで、ランドスケープに現在登録されている技術やベンダーはコンテナ技術を早い時点で採用しているITリーダ企業とスタートアップで占められています。
カテゴリーについても今後広がって行く可能性を秘めながらも、CNCFの方針としては、これ以上カテゴリーは増やさない、という意思は強いようです。
少し気になるキーワード
2018年初頭の時点でCNCFのメンバーは170社を超え、新しいプロジェクトやツールが日毎に登場しています。特に注目を浴びている新規のプロジェクトやツールをいくつか紹介したいと思います。
Istio
Istioは、マイクロサービス環境におけるサービス間の接続、管理を行うためのプラットホームで、Google、IBM、Lyft社で共同開発されているものです。
特にマイクロサービスにおけるサービスメッシュの機能を提供することを目的としており、すでにCNCFのプロジェクトとして採用されている、Envoyと呼ばれるプロキシーエージェント(各サービス内のpodにサイドカーとしてインストールされるコンテナで、podのテレメトリー情報を収集する役割)を利用して、そこからデータを収集して様々な分析を行うコントロールプレイン(control plane)と呼ばれる機能を提供します。
IstioのControl Plane側から次のAPIが定義されています。
- Pilot:サービス間通信(HTTP, gPRC, WebSocket, TCP, 等)の自動的な負荷分散
- Istio-Auth:サービスに対するアクセス管理機能のAPI
- Mixer:サービスの性能監視やログ管理などを行うためのデータ収集
Kubernetesでのコンテナ運用がプロダクションに移行し、システムの規模が大きくなってくると、全体の運用管理を一括して提供できるツールの必要性が高まり、Istioが大きく注目されはじめています。
CNCFのもう一つのプロジェクトである、LinkerdはTwitter社が開発したサービスメッシュのプロキシーであるが(Envoyと同等)、2017年の7月にはLinkerdがIstioと統合されています。
Linkerdの商用版を開発しているBuoyant社は、Conduitと呼ばれるサーバーメッシュ機能を開始。この製品は、Kubernetes専用であることと、超軽量なRustと呼ばれるプロキシ(Envoy相当)を提供していることが特徴です。
Kata Containers
Open Stack Foundationの新規プロジェクトとして12月に発表されたばかりの技術で、コンテナを稼働することに特化した、軽量化VMスタックです。VMが元来持つ、性能面のオーバヘッドを加えずに、コンテナのアプリケーション間の独立性(isolation)をVMのレイヤーで確保することを目的としています。基本的に、1つのVMの上に、1つのコンテナが動くイメージです。
現在、このVMはKVMベースで開発されており、今後はXenもサポートをする予定です。一方、ESXについてはVMWareがvSphere Integrated Containers、と呼ばれる、同等の機能を自社開発しているため、本プロジェクトの対象外となっています。
Kata Containerは、Intelの開発したコンテナプラットホーム Clear Containerと、HyperHQ社の runVという2つの技術がベースとなっています。
HyperHQ社は中国系のITベンダーです。一方、Clear Containerのコンテナセキュリティー技術はCoreOSのrktでも採用されています。
Helm Charts
Helmは、複数のKubernetesデプロイメントの設定情報をテンプレート化し、パッケージ化することにより容易に再生、バージョン管理、ロールバック、等の運用ができるようにするメカニズムです。
Chartはパッケージ化されたフォーマットで、Helmはそれを管理するツールの名称。HelmはLinuxでいうところのyumとかaptで、Chartはdebsとrpmsに相当します。
プロダクション環境で大量のコンテナを運用する際に、各々のKubernetesのリソースを一括管理し、CI/CDプラットホーム化するのに非常に便利なツールとして注目されています。
コミュニティですでに作成されたChartを集約し、それを自由に引用できるパブリックなChartレポジトリも存在してます。
Rook
CNCFの15番目のinceptionレベルのプロジェクトとして2018年の1月末に採用された、かなり新しいプロジェクトです。
アプリケーションの利用する分散ストレージをKubernetes上で実装、運用管理するための機能として提供されています。
ストレージ/ファイル管理の運用や保守のライフサイクルで必要な機能(プロビジョニング、セキュリティー管理、ポリシー管理、ライフサイクル管理、リソース管理、等)をKubernetes環境下で自動化することができるようになります。
当面はCephのブロックストレージだけをサポートしますが、今後、Cephのオブジェクトストレージや他のストレージエンジンもサポートする予定にあります。
関連リンク
急成長を続けるKubernetesの最新動向(前編)
コンテナプラットフォームのエンタープライズ活用における良いところ
~ Kubernetes編 ~
この記事の著者:鈴木いっぺい
アメリカに在住20+年、最近は成長著しいオープンソース系の市場を中心に、有望企業を開拓し、日本への市場展開を支援するITプロフェッショナル。現在は、クリエーションライン(株)の取締役/CSOとして、DevOps、ビッグデータ/分析、コンテナ技術を持つベンダーの日本代理店運営、日本法人/JVの設立、買収/投資、等のプロジェクトを立ち上げ、推進する事に注力。
アメリカのオープンソース系ベンダーとのコネクションは強く、多くのベンダーから日本市場展開に対する相談を受ける。
- 関連キーワード:
- Kubernetes
- コラム
DevOps Hubのアカウントをフォローして
更新情報を受け取る
-
Like on Facebook
-
Like on Feedly