KubeCon EU 2021でRed Hatが発表した複数のKubernetesを制御するkcpを紹介
この記事では、KubeCon+CloudNativeCon EU 2021でRed Hatが発表したkcpを紹介する。セッションはKubeConのプレカンファレンスとして2021年5月4日に開催されたOepnShift Commons Gatheringのキーノートの一部として行われた。タイトルは「Kubernetes as the Control Plane for the Hybrid Cloud」、つまりKubernetesを複数のKubernetesをコントロールするためのコントロールプレーンとして使うためのツール、kcpを紹介するものだ。kcpはKubeCon EU 2021のキーノートの中でも短いデモとして紹介されており、Red Hatが大きな期待をかけていることがわかる。
Coleman氏はKubernetesのRed Hat版ディストリビューションであるOpenShiftのアーキテクト、Fernandes氏はOpenShiftを含むクラウドプラットフォーム事業のVP兼General Managerという肩書きだ。
最初にFernandes氏が、Red Hatのここ数年のテーマである「Open Hybrid Cloud」戦略を解説した。Red Hat Enterprise Linuxをベースにして物理サーバー、仮想サーバー、プライベートクラウド、パブリッククラウド、エッジの各インフラストラクチャーにおいて、レガシーなアプリケーションからクラウドネイティブなアプリケーションも実装できるプラットフォームがOpen Hybrid Cloudだと説明した。以下の資料において、右端にエッジが追加されていることに注目だ。
その上で最下層のRHELの上にOpenShiftを位置付けて物理サーバーからエッジまですべてをカバーできるというポートフォリオを説明。ここではすでにOpenStackは除かれており、Red Hatの最優先インフラストラクチャープロダクトがOpenShiftへと完全に移行していることがわかる。
その上で3大パブリッククラウドプロバイダー(AWS、Azure、GCP)に加えてIBM Cloud上の実装である「Red Hat OpenShift on IBM Cloud」によって、マネージドのニーズにも対応していることを紹介した。
またKubernetesがOpenShiftのコアであり、UpstreamのKubernetesの安定版として非公開のコードは一切なく、Community First、Upstream FirstのRed Hatの戦略に沿ったソフトウェアとして7年前から開発が進んでいることを説明した。その上でKubernetesの進化として3つのポイントを挙げて解説した。
この要点とは、以下の3点だ。
- KubernetesがAPIを中心とした宣言的かつ自律的なシステムとして設計されたこと
- CRD(Custom Resource Definition)を中心として拡張できること
- APIを使って複数のインフラストラクチャーを管理できること
その上でベアメタル、オンプレミス、パブリッククラウド、プライベートクラウド、エッジなどの複数の環境に拡がるKubernetesを管理するために何が必要か? これをRed Hatは考えたという。
複数実装されたKubernetesを上位からコントロールしようという考えは、KubernetesのSIG(Special Interests Group)としてMulticlusterのグループの検討項目として存在するし、Multi-tenancyのための仕組みとしてFederation V2が検討されている。同時にCluster APIの中で検討されている内容と重なる部分もあるだろう。またKubernetesのワークロードを区分する仕組みであるnamespaceについても、階層的なnamespaceを実装するためにHierarchical Namespaceも検討されている。過去のKubeConにおけるHuaweiやAnt Financialなどによるセッションでは「K8s on K8s」の方法でマルチクラスターを実装するべきだという提案を行っていた。
参考:KubeCon China:サーバーレスとマルチテナンシーのセッションに注目
今回のkcpは、KubeCon China 2019で提案された「K8s on K8s」に近いと言える。一方これまでのアプローチと異なる点として、上位のコントロールプレーンに位置付けられるKubernetesを必要最低限の機能に絞った形で実装していることが挙げられる。HuaweiやAlibaba Cloudなどは巨大化するクラスターを分割管理する必要性からマルチクラスター/テナンシーに向かったと思われる。一方Red Hatの提案は、どちらかというとエッジを視野に入れた異なるインフラストラクチャーでも管理を可能にするという部分に要点があるように思われる。
ここからはコマンドラインを使ったデモを行ったColeman氏だが、デモそのものはKubeCon EUのキーノートで使われた動画の方がわかりやすいかもしれない。
KubeCon EUでのデモ:KubeCon EU 2021 The Hybrid Control Plane
ここからはGitHub上のkcpリポジトリーに存在するドキュメントから、いくつかポイントを絞って「kcpとは何か?」を紹介したい。
公式サイトは以下から参照して欲しい。このスクリーンショットはそのサイトから撮っている。
公式サイト:kcp-dev kcp
ここでは「kcp is a minimal Kubernetes API Server」とあるように、Kubernetesの主要コンポーネントであるAPI Serverを改造して機能を絞ったものが、kcpであるということがわかる。PodやNode、Deploymentなどの主要なリソースの管理は行わず、namespaceとCRDなどの限られた要素だけを理解するということが明記されている。
この部分ではマルチクラスターのユースケース、マルチテナントのユースケース、ローカルでの開発環境、エッジにおける省資源環境での実装などが挙げられている。マルチクラスター、マルチテナントはFederation V2と重なる領域だし、ローカルの開発環境からクラスターへのアクセスという部分ではCNCFのSandboxプロジェクトであるTelepresenceとも重なることになる。
Red Hatのスタンスとしては、kcpはあくまでもプロトタイプであり、PoCなどでの評価に留めて欲しいと強調している。その一方で、OpenShiftによるハイブリッドクラウドを目指すRed Hatからすれば、スリムダウン化したAPI Serverはすでに市場に存在しているKubernetes関連のソフトウェアとの親和性が高いこと、新しいAPI、管理方法などを学ぶ必要がないことなどを訴求ポイントにして支持を集めたいというのが本音だろう。
ライバルのMicrosoftは分散システム向けのランタイムとしてDapr(Distributed Application Runtime)を公開している。アクターモデルなどのアプリケーション領域に踏み込まずにシンプルにKubernetesのエコシステムを最大限に活用するという意味ではkcpの筋は良いと言えるだろう。
次のポイントはkcpの設計ゴールを解説したページからのものだが、kcpによる直近の効果としてアプリケーション開発者とアプリケーション運用管理者それぞれに挙げている内容を解説したものだ。
kcpのデザインゴール:kcp as a minimal control plane for Kube-like Applications
開発者にとっては、すでに存在するアプリケーションを複数のインフラストラクチャーですぐに実行できることなどが挙げられている。アプリケーション運用担当者にとっては複数の開発チームに最小限の権限を付けて環境を提供できること、マルチテナントによる分離、CRDをそれぞれのチームに分離できることなどが挙げられている。
今後、kcpがどのように他の主要ベンダーや顧客から支持されるのか、注目していきたい。
OpenShift Commons Gatheringのプレゼンテーション:Kubernetes as the Control Plane for the Hybrid Cloud Clayton Coleman Red Hat OpenShift Commons 2021
連載バックナンバー
Think ITメルマガ会員登録受付中
全文検索エンジンによるおすすめ記事
- レッドハットが「OpenShift Commons Gathering Japan 2021」を開催、キーパーソンが語るハイブリッドクラウドを実現するための3つのポイントとは
- KubeCon@San Diego前日に開催のOpenShiftのコミュニティイベント
- OpenShift Commons Gatherings開催。Red Hatが強力に推すKubernetesディストリビューションの最新情報を紹介
- 日本初の「OpenShift Commons Gathering」がオンライン開催、キーパーソンが国内外におけるOpenShiftの新事例と推進戦略を語る
- OpenShift Commons GatheringからMicroShiftとCockroachDBを紹介
- CNDT2021、Kubernetesのマルチテナントを実装したIIJのSREが語る運用の勘所
- Red Hatが示したOpenShiftの将来とは
- KubeCon Europe 2024のキーノートからツァイスのWebAssemblyを使った事例を紹介
- Red Hatの製品担当VPにインタビュー。機械学習のインフラとしてのOpenShiftとは
- OpenShift Commons Gathering 2017で垣間見たRed Hatの本気