KubeCon EU 2021でRed Hatが発表した複数のKubernetesを制御するkcpを紹介

2021年8月24日(火)
松下 康之 - Yasuyuki Matsushita
Red Hatがスリム化したKubernetesのAPI Server、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が大きな期待をかけていることがわかる。

プレゼンテーションを行ったのはRed HatのClayton Coleman氏とJoe Fernandes氏だ

プレゼンテーションを行ったのはRed HatのClayton Coleman氏とJoe Fernandes氏だ

Coleman氏はKubernetesのRed Hat版ディストリビューションであるOpenShiftのアーキテクト、Fernandes氏はOpenShiftを含むクラウドプラットフォーム事業のVP兼General Managerという肩書きだ。

最初にFernandes氏が、Red Hatのここ数年のテーマである「Open Hybrid Cloud」戦略を解説した。Red Hat Enterprise Linuxをベースにして物理サーバー、仮想サーバー、プライベートクラウド、パブリッククラウド、エッジの各インフラストラクチャーにおいて、レガシーなアプリケーションからクラウドネイティブなアプリケーションも実装できるプラットフォームがOpen Hybrid Cloudだと説明した。以下の資料において、右端にエッジが追加されていることに注目だ。

Red Hatの最近のテーマである「Open Hybrid Cloud」を説明

Red Hatの最近のテーマである「Open Hybrid Cloud」を説明

その上で最下層のRHELの上にOpenShiftを位置付けて物理サーバーからエッジまですべてをカバーできるというポートフォリオを説明。ここではすでにOpenStackは除かれており、Red Hatの最優先インフラストラクチャープロダクトがOpenShiftへと完全に移行していることがわかる。

OpenShiftで物理サーバーからエッジまでカバー

OpenShiftで物理サーバーからエッジまでカバー

その上で3大パブリッククラウドプロバイダー(AWS、Azure、GCP)に加えてIBM Cloud上の実装である「Red Hat OpenShift on IBM Cloud」によって、マネージドのニーズにも対応していることを紹介した。

パブリッククラウドでも実装が進むOpenShift

パブリッククラウドでも実装が進むOpenShift

またKubernetesがOpenShiftのコアであり、UpstreamのKubernetesの安定版として非公開のコードは一切なく、Community First、Upstream FirstのRed Hatの戦略に沿ったソフトウェアとして7年前から開発が進んでいることを説明した。その上でKubernetesの進化として3つのポイントを挙げて解説した。

Kubernetes APIに関する3つの要点

Kubernetes APIに関する3つの要点

この要点とは、以下の3点だ。

  • KubernetesがAPIを中心とした宣言的かつ自律的なシステムとして設計されたこと
  • CRD(Custom Resource Definition)を中心として拡張できること
  • APIを使って複数のインフラストラクチャーを管理できること

その上でベアメタル、オンプレミス、パブリッククラウド、プライベートクラウド、エッジなどの複数の環境に拡がるKubernetesを管理するために何が必要か? これをRed Hatは考えたという。

Kubernetesを徹底的に削ぎ落してそれを上位のコントローラーとして使う発想

Kubernetesを徹底的に削ぎ落してそれを上位のコントローラーとして使う発想

複数実装された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

kcpはGitHub上で公開されている

kcpはGitHub上で公開されている

ここからはGitHub上のkcpリポジトリーに存在するドキュメントから、いくつかポイントを絞って「kcpとは何か?」を紹介したい。

kcpはAPI Serverの最小の形

kcpはAPI Serverの最小の形

公式サイトは以下から参照して欲しい。このスクリーンショットはそのサイトから撮っている。

公式サイト:kcp-dev kcp

ここでは「kcp is a minimal Kubernetes API Server」とあるように、Kubernetesの主要コンポーネントであるAPI Serverを改造して機能を絞ったものが、kcpであるということがわかる。PodやNode、Deploymentなどの主要なリソースの管理は行わず、namespaceとCRDなどの限られた要素だけを理解するということが明記されている。

「kcpで何ができるのか?」を解説

「kcpで何ができるのか?」を解説

この部分ではマルチクラスターのユースケース、マルチテナントのユースケース、ローカルでの開発環境、エッジにおける省資源環境での実装などが挙げられている。マルチクラスター、マルチテナントは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の意味

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

著者
松下 康之 - Yasuyuki Matsushita
フリーランスライター&マーケティングスペシャリスト。DEC、マイクロソフト、アドビ、レノボなどでのマーケティング、ビジネス誌の編集委員などを経てICT関連のトピックを追うライターに。オープンソースとセキュリティが最近の興味の中心。

連載バックナンバー

サーバー技術解説

Tigeraのアドボケイトが、x86とARMのマルチアーキテクチャークラスターを解説

2022/4/7
ARMの優位性を解説しながら、ARMをx86クラスターに追加するマルチアーキテクチャークラスターを、デモを用いて解説。
システム開発イベント

KubeCon NA 2021からサービスメッシュの2セッションを紹介

2022/3/18
KubeCon NA 2021からサービスメッシュのLinkerdの最新情報とIstioを使ったユースケースのセッションを紹介する。
セキュリティイベント

KubeCon NA 2021、ソフトウェア開発工程のタンパリングを防ぐSLSAを解説

2022/3/9
KubeCon NA 2021のプレカンファレンスから、ソフトウェアサプライチェーンを実装するフレームワークSLSAを取り上げたセッションを紹介する。

Think ITメルマガ会員登録受付中

Think ITでは、技術情報が詰まったメールマガジン「Think IT Weekly」の配信サービスを提供しています。メルマガ会員登録を済ませれば、メルマガだけでなく、さまざまな限定特典を入手できるようになります。

Think ITメルマガ会員のサービス内容を見る

他にもこの記事が読まれています