Platform for Platforms のあり方とその実践Kohei Ota (@inductor), Architect at HPE/CNCF Ambassador
View Slide
© 2021 Cloud Native Computing Foundation2自己紹介Kohei Ota (@inductor)•アーキテクト@HPE•CNCF Ambassador•Google Developer Expert (GCP)•CloudNative Days Tokyo 運営•昔、コロニーな生活ガチ勢でした
© 2021 Cloud Native Computing Foundation3自己紹介Kohei Ota (@inductor)•アーキテクト@HPE•CNCF Ambassador•Google Developer Expert (GCP)•CloudNative Days Tokyo 運営•昔、コロニーな生活ガチ勢でした最近好きな本:SREの探求
© 2021 Cloud Native Computing Foundation4Table of Contents改めて Platform for Platforms とはKubeCon セッションにおける実例エコシステムを用いた様々な実現方法まとめ
Platform for Platforms の考え方
© 2021 Cloud Native Computing Foundation6Today’s biggest topic
© 2021 Cloud Native Computing Foundation7Today’s biggest topicKubernetesはプラットフォームを作るためのプラットフォーム。それがゴールなのではなく、始まりなのである。
いい話だなぁ... The end
んなわきゃない
© 2021 Cloud Native Computing Foundation10Kubernetesの3つの顔Marketing CommitteeTechnicalOversightCommitteeGoverningBoardEnd UserCommunityContainerOrchestrationDistributedsystemPlatformforPlatforms• 複数の「ノード」を束ねるクラスタリング• 柔軟なジョブスケジューリング• Raftベースの分散KVS• 高速で簡単なスケーリング• ロードバランサーとの統合• 柔軟で簡単なデプロイ手段• インフラ基盤との強力な連携• 拡張を前提に作られた APIやリソース• 大きなコミュニティとエコシステム
© 2021 Cloud Native Computing Foundation11Kubernetesの3つの顔Marketing CommitteeTechnicalOversightCommitteeGoverningBoardEnd UserCommunityContainerOrchestrationDistributedsystemPlatformforPlatforms• 複数の「ノード」を束ねるクラスタリング• 柔軟なジョブスケジューリング• Raftベースの分散KVS• 高速で簡単なスケーリング• ロードバランサーとの統合• 柔軟で簡単なデプロイ手段• インフラ基盤との強力な連携• 拡張を前提に作られた APIやリソース• 大きなコミュニティとエコシステム● 宣言的なリソース管理の仕組み● カスタムリソース定義による拡張性● 様々なベンダー・コミュニティによる実装
© 2021 Cloud Native Computing Foundation12Kubernetes が生まれてから6年...•Borg の思想から生まれた OSS は”えんたーぷらいず”で騒がれるまで急速に成長– マルチテナントなど要件の厳しい環境を実現するためセキュリティやクラスター管理の仕組みが成長– GitOpsを軸としたエッジ、IoT環境の管理などIoTEdge&MoreSecurityCloudNativeClusterAPIKubernetesisBoringSecurityandObservabilityIntroductionofOperators2015 2016 2017 2018 2019 2020Kubernetesrelease2021PlatformforPlatforms
© 2021 Cloud Native Computing Foundation13個人的にわかりにくいと思うポイント「コンテナをいい感じに管理したい」から Kubernetes に入門するとこうした実態とのギャップに驚きやすい→ Why?1. 分散システムという前提が理解できていない場合がある2. 運用とともに作り込みが必要な点は既存ツールと同じ3. (特に)規模の大きい環境では、Kubernetesが持つ標準化の仕組みに乗っかることが利点になっていきやすい→ 拡大予定なく小さい環境を作り込むメリットが薄い
© 2021 Cloud Native Computing Foundation14個人的にわかりにくいと思うポイント「コンテナをいい感じに管理したい」から Kubernetes に入門するとこうした実態とのギャップに驚きやすい→ Why?1. 分散システムという前提が理解できていない場合がある2. 運用とともに作り込みが必要な点は既存ツールと同じ3. (特に)規模の大きい環境では、Kubernetesが持つ標準化の仕組みに乗っかることが利点になっていきやすい→ 拡大予定なく小さい環境を作り込むメリットが薄い例えば:マルチテナント例えば:オンプレでは難しいコンピュートとストレージの分離例えば:環境に依存しない既存 OSS の活用
© 2021 Cloud Native Computing Foundation15個人的にわかりにくいと思うポイント「コンテナをいい感じに管理したい」から Kubernetes に入門するとこうした実態とのギャップに驚きやすい→ Why?1. 分散システムという前提が理解できていない場合がある2. 運用とともに作り込みが必要な点は既存ツールと同じ3. (特に)規模の大きい環境では、Kubernetesが持つ標準化の仕組みに乗っかることが利点になっていきやすい→ 拡大予定なく小さい環境を作り込むメリットが薄い例えば:マルチテナント例えば:オンプレでは難しいコンピュートとストレージの分離例えば:環境に依存しない既存 OSS の活用良くも悪くもオンプレ上で受けられる恩恵が多い (ように見える)→ このような枠組みの活用こそが「クラウドネイティブ」であるという考え方もある※ ただし、クラウドではマネージド Kubernetesもあるので、 それ自体も大きなメリット
Platform for Platforms とは規模拡大につれ必要となる「関心の分離」に対する1つの考え方である
KubeCon セッションにおける実例
© 2021 Cloud Native Computing Foundation18ここで1つ前置きここでの解説は私の個人的な意見を多分に含みます加えて、時間の都合省略する部分もあります発表者の意見を必ずしも反映しているものではないため、興味が沸いたものについては実セッション・実スライドをご覧になることを強く推奨します
© 2021 Cloud Native Computing Foundation19過去のKubeConで発表されたケーススタディの例- 国防総省における利用例 (Istioとかも使ってるやつ)- 「国防総省でもK8s入れてるのに入れてないの?」- 冗談はさておき DevSecOps の実例としては貴重- D2IQ (旧 Mesosphere) とのコラボレーション- リードしていた Nicolas 氏の辞職が気になる- CERN (世界最大の素粒子物理学研究所)- キーノート中にヒッグス粒子の発見を Kubernetes クラスター上でシミュレーションして再現していたのが印象的- Mesos to Kubernetes な事例- Uber とか Appleとか- Airbnb における運用知見の継続的な共有- 個人的に好きなセッションが多い
© 2021 Cloud Native Computing Foundation20過去のKubeConで発表されたケーススタディの例- 国防総省における利用例 (Istioとかも使ってるやつ)- 「国防総省でもK8s入れてるのに入れてないの?」- 冗談はさておき DevSecOps の実例としては貴重- D2IQ (旧 Mesosphere) とのコラボレーション- リードしていた Nicolas 氏の辞職が気になる- CERN (世界最大の素粒子物理学研究所)- キーノート中にヒッグス粒子の発見を Kubernetes クラスター上でシミュレーションして再現していたのが印象的- Mesos to Kubernetes な事例- Uber とか Appleとか- Airbnb における運用知見の継続的な共有- 個人的に好きなセッションが多い他にもいろいろありますがここからは特にオモシロイと思ったものを紹介
© 2021 Cloud Native Computing Foundation21Mesos to Kubernetes な事例計算リソースを管理するための Apache Mesos をKubernetes に移行する事例数千個のマイクロサービスが1日平均1000回以上デプロイされる10000台以上のインスタンス(コンテナは10万台オーダー)で作られたインフラベアメタル → 静的環境でのコンテナ配置→ Mesos + Apache Aurora → Mesos + Peloton (社内独自のスケジューリングフレームワーク) と変遷将来的な規模拡大や拡張性が懸念となり、Kubernetes 移行を決断移行にあたって検証したことや比較の詳細などが描かれているhttps://www.youtube.com/watch?v=91c3iUI2K7M
© 2021 Cloud Native Computing Foundation22Mesos to Kubernetes な事例計算リソースを管理するための Apache Mesos をKubernetes に移行する事例数千個のマイクロサービスが1日平均1000回以上デプロイされる10000台以上のインスタンス(コンテナは10万台オーダー)で作られたインフラベアメタル → 静的環境でのコンテナ配置→ Mesos + Apache Aurora → Mesos + Peloton (社内独自のスケジューリングフレームワーク) と変遷将来的な規模拡大や拡張性が懸念となり、Kubernetes 移行を決断移行にあたって検証したことや比較の詳細などが描かれているhttps://www.youtube.com/watch?v=91c3iUI2K7M
© 2021 Cloud Native Computing Foundation23Mesos to Kubernetes な事例計算リソースを管理するための Apache Mesos をKubernetes に移行する事例数千個のマイクロサービスが1日平均1000回以上デプロイされる10000台以上のインスタンス(コンテナは10万台オーダー)で作られたインフラベアメタル → 静的環境でのコンテナ配置→ Mesos + Apache Aurora → Mesos + Peloton (社内独自のスケジューリングフレームワーク) と変遷将来的な規模拡大や拡張性が懸念となり、Kubernetes 移行を決断移行にあたって検証したことや比較の詳細などが描かれているhttps://www.youtube.com/watch?v=91c3iUI2K7M
© 2021 Cloud Native Computing Foundation24Mesos to Kubernetes な事例計算リソースを管理するための Apache Mesos をKubernetes に移行する事例数千個のマイクロサービスが1日平均1000回以上デプロイされる10000台以上のインスタンス(コンテナは10万台オーダー)で作られたインフラベアメタル → 静的環境でのコンテナ配置→ Mesos + Apache Aurora → Mesos + Peloton (社内独自のスケジューリングフレームワーク) と変遷将来的な規模拡大や拡張性が懸念となり、Kubernetes 移行を決断移行にあたって検証したことや比較の詳細などが描かれているhttps://www.youtube.com/watch?v=91c3iUI2K7M
© 2021 Cloud Native Computing Foundation25Mesos to Kubernetes な事例計算リソースを管理するための Apache Mesos をKubernetes に移行する事例数千個のマイクロサービスが1日平均1000回以上デプロイされる10000台以上のインスタンス(コンテナは10万台オーダー)で作られたインフラベアメタル → 静的環境でのコンテナ配置→ Mesos + Apache Aurora → Mesos + Peloton (社内独自のスケジューリングフレームワーク) と変遷将来的な規模拡大や拡張性が懸念となり、Kubernetes 移行を決断移行にあたって検証したことや比較の詳細などが描かれているhttps://www.youtube.com/watch?v=91c3iUI2K7M
© 2021 Cloud Native Computing Foundation26Mesos to Kubernetes な事例計算リソースを管理するための Apache Mesos をKubernetes に移行する事例数千個のマイクロサービスが1日平均1000回以上デプロイされる10000台以上のインスタンス(コンテナは10万台オーダー)で作られたインフラベアメタル → 静的環境でのコンテナ配置→ Mesos + Apache Aurora → Mesos + Peloton (社内独自のスケジューリングフレームワーク) と変遷将来的な規模拡大や拡張性が懸念となり、Kubernetes 移行を決断移行にあたって検証したことや比較の詳細などが描かれているhttps://www.youtube.com/watch?v=91c3iUI2K7M
© 2021 Cloud Native Computing Foundation27Airbnb におけるマイクロサービスとの戦いよくある VM + Monolithic Rails から Kubernetes + Microserviecs に移行する際にぶつかった問題の事例YAML 地獄との戦いに決着をつけるために新規サービスブートストラップ用の社内ツールを作った話他にも設定ファイルとアプリケーションコードを同時に編集することで構成が腐らないようにするなど、構成管理の工夫も見られましたKubeCon 以外では、同氏が過去の CloudNative Days で発表したマイクロサービス移行におけるサービスプロキシの必要性や依存関係との戦いに関するセッションも合わせてご覧くださいhttps://www.youtube.com/watch?v=ytu3aUCwlSg
© 2021 Cloud Native Computing Foundation28Airbnb におけるマイクロサービスとの戦いよくある VM + Monolithic Rails から Kubernetes + Microserviecs に移行する際にぶつかった問題の事例YAML 地獄との戦いに決着をつけるために新規サービスブートストラップ用の社内ツールを作った話他にも設定ファイルとアプリケーションコードを同時に編集することで構成が腐らないようにするなど、構成管理の工夫も見られましたKubeCon 以外では、同氏が過去の CloudNative Days で発表したマイクロサービス移行におけるサービスプロキシの必要性や依存関係との戦いに関するセッションも合わせてご覧くださいhttps://www.youtube.com/watch?v=ytu3aUCwlSg
© 2021 Cloud Native Computing Foundation29Airbnb におけるマイクロサービスとの戦いよくある VM + Monolithic Rails から Kubernetes + Microserviecs に移行する際にぶつかった問題の事例YAML 地獄との戦いに決着をつけるために新規サービスブートストラップ用の社内ツールを作った話他にも設定ファイルとアプリケーションコードを同時に編集することで構成が腐らないようにするなど、構成管理の工夫も見られましたKubeCon 以外では、同氏が過去の CloudNative Days で発表したマイクロサービス移行におけるサービスプロキシの必要性や依存関係との戦いに関するセッションも合わせてご覧くださいhttps://www.youtube.com/watch?v=ytu3aUCwlSg
© 2021 Cloud Native Computing Foundation30Airbnb におけるマイクロサービスとの戦いよくある VM + Monolithic Rails から Kubernetes + Microserviecs に移行する際にぶつかった問題の事例YAML 地獄との戦いに決着をつけるために新規サービスブートストラップ用の社内ツールを作った話他にも設定ファイルとアプリケーションコードを同時に編集することで構成が腐らないようにするなど、構成管理の工夫も見られましたKubeCon 以外では、同氏が過去の CloudNative Days で発表したマイクロサービス移行におけるサービスプロキシの必要性や依存関係との戦いに関するセッションも合わせてご覧くださいhttps://www.youtube.com/watch?v=ytu3aUCwlSg
© 2021 Cloud Native Computing Foundation31Airbnb におけるマイクロサービスとの戦いよくある VM + Monolithic Rails から Kubernetes + Microserviecs に移行する際にぶつかった問題の事例YAML 地獄との戦いに決着をつけるために新規サービスブートストラップ用の社内ツールを作った話他にも設定ファイルとアプリケーションコードを同時に編集することで構成が腐らないようにするなど、構成管理の工夫も見られましたKubeCon 以外では、同氏が過去の CloudNative Days で発表したマイクロサービス移行におけるサービスプロキシの必要性や依存関係との戦いに関するセッションも合わせてご覧くださいhttps://www.youtube.com/watch?v=ytu3aUCwlSg
© 2021 Cloud Native Computing Foundation32Airbnb におけるマイクロサービスとの戦いよくある VM + Monolithic Rails から Kubernetes + Microserviecs に移行する際にぶつかった問題の事例YAML 地獄との戦いに決着をつけるために新規サービスブートストラップ用の社内ツールを作った話他にも設定ファイルとアプリケーションコードを同時に編集することで構成が腐らないようにするなど、構成管理の工夫も見られましたKubeCon 以外では、同氏が過去の CloudNative Days で発表したマイクロサービス移行におけるサービスプロキシの必要性や依存関係との戦いに関するセッションも合わせてご覧くださいhttps://www.youtube.com/watch?v=ytu3aUCwlSg
© 2021 Cloud Native Computing Foundation33Walmart の Edge + Istio な事例世界最大のスーパーマーケットチェーン Walmart の店舗に置かれている POSレジの仕組みを Kubernetes + Edge + Istio で作ったという話旧態依然なオンプレの仕組みを置き換えたいが、単にクラウド移行してもいちいちクラウドと通信していては決済時の体験が非常に悪い店舗に自律動作可能な何かを置けば良いのでは?→ 店舗にクラスターを置いちゃえ!という思い切りのある事例おもしろポイント1. クラスター構成は GitOps で配信 (オンサイトでの作業を減らす)2. Istio を使い、店舗のサービスが死んだ場合はクラウド側と通信するような仕組みを実現https://www.youtube.com/watch?v=sfPFrvDvdlk
© 2021 Cloud Native Computing Foundation34Walmart の Edge + Istio な事例世界最大のスーパーマーケットチェーン Walmart の店舗に置かれている POSレジの仕組みを Kubernetes + Edge + Istio で作ったという話旧態依然なオンプレの仕組みを置き換えたいが、単にクラウド移行してもいちいちクラウドと通信していては決済時の体験が非常に悪い店舗に自律動作可能な何かを置けば良いのでは?→ 店舗にクラスターを置いちゃえ!という思い切りのある事例おもしろポイント1. クラスター構成は GitOps で配信 (オンサイトでの作業を減らす)2. Istio を使い、店舗のサービスが死んだ場合はクラウド側と通信するような仕組みを実現https://www.youtube.com/watch?v=sfPFrvDvdlk
© 2021 Cloud Native Computing Foundation35Walmart の Edge + Istio な事例世界最大のスーパーマーケットチェーン Walmart の店舗に置かれている POSレジの仕組みを Kubernetes + Edge + Istio で作ったという話旧態依然なオンプレの仕組みを置き換えたいが、単にクラウド移行してもいちいちクラウドと通信していては決済時の体験が非常に悪い店舗に自律動作可能な何かを置けば良いのでは?→ 店舗にクラスターを置いちゃえ!という思い切りのある事例おもしろポイント1. クラスター構成は GitOps で配信 (オンサイトでの作業を減らす)2. Istio を使い、店舗のサービスが死んだ場合はクラウド側と通信するような仕組みを実現https://www.youtube.com/watch?v=sfPFrvDvdlk
© 2021 Cloud Native Computing Foundation36Walmart の Edge + Istio な事例世界最大のスーパーマーケットチェーン Walmart の店舗に置かれている POSレジの仕組みを Kubernetes + Edge + Istio で作ったという話旧態依然なオンプレの仕組みを置き換えたいが、単にクラウド移行してもいちいちクラウドと通信していては決済時の体験が非常に悪い店舗に自律動作可能な何かを置けば良いのでは?→ 店舗にクラスターを置いちゃえ!という思い切りのある事例おもしろポイント1. クラスター構成は GitOps で配信 (オンサイトでの作業を減らす)2. Istio を使い、店舗のサービスが死んだ場合はクラウド側と通信するような仕組みを実現https://www.youtube.com/watch?v=sfPFrvDvdlk
© 2021 Cloud Native Computing Foundation37Walmart の Edge + Istio な事例世界最大のスーパーマーケットチェーン Walmart の店舗に置かれている POSレジの仕組みを Kubernetes + Edge + Istio で作ったという話旧態依然なオンプレの仕組みを置き換えたいが、単にクラウド移行してもいちいちクラウドと通信していては決済時の体験が非常に悪い店舗に自律動作可能な何かを置けば良いのでは?→ 店舗にクラスターを置いちゃえ!という思い切りのある事例おもしろポイント1. クラスター構成は GitOps で配信 (オンサイトでの作業を減らす)2. Istio を使い、店舗のサービスが死んだ場合はクラウド側と通信するような仕組みを実現https://www.youtube.com/watch?v=sfPFrvDvdlk
© 2021 Cloud Native Computing Foundation38Walmart の Edge + Istio な事例世界最大のスーパーマーケットチェーン Walmart の店舗に置かれている POSレジの仕組みを Kubernetes + Edge + Istio で作ったという話旧態依然なオンプレの仕組みを置き換えたいが、単にクラウド移行してもいちいちクラウドと通信していては決済時の体験が非常に悪い店舗に自律動作可能な何かを置けば良いのでは?→ 店舗にクラスターを置いちゃえ!という思い切りのある事例おもしろポイント1. クラスター構成は GitOps で配信 (オンサイトでの作業を減らす)2. Istio を使い、店舗のサービスが死んだ場合はクラウド側と通信するような仕組みを実現https://www.youtube.com/watch?v=sfPFrvDvdlk
© 2021 Cloud Native Computing Foundation39Walmart の Edge + Istio な事例世界最大のスーパーマーケットチェーン Walmart の店舗に置かれている POSレジの仕組みを Kubernetes + Edge + Istio で作ったという話旧態依然なオンプレの仕組みを置き換えたいが、単にクラウド移行してもいちいちクラウドと通信していては決済時の体験が非常に悪い店舗に自律動作可能な何かを置けば良いのでは?→ 店舗にクラスターを置いちゃえ!という思い切りのある事例おもしろポイント1. クラスター構成は GitOps で配信 (オンサイトでの作業を減らす)2. Istio を使い、店舗のサービスが死んだ場合はクラウド側と通信するような仕組みを実現https://www.youtube.com/watch?v=sfPFrvDvdlk
© 2021 Cloud Native Computing Foundation40事例を見て思うこと今回紹介した事例はどこもそれなりに規模が大きい自前でプラットフォームを作り込んでいくことに大きな意義がある組織日本国内にもいくつかそうした組織はあるが、必ずしもそうではない
でもこれ大きすぎて参考にならない... 😇
わかる(それはそう)
© 2021 Cloud Native Computing Foundation43Kubernetes が生まれてから6年...•Borg の思想から生まれた OSS は”えんたーぷらいず”で騒がれるまで急速に成長– マルチテナントなど要件の厳しい環境を実現するためセキュリティやクラスター管理の仕組みが成長– GitOpsを軸としたエッジ、IoT環境の管理などIoTEdge&MoreSecurityCloudNativeClusterAPIGettingBoringSecurityandObservabilityIntroductionofOperators2015 2016 2017 2018 2019 2020Kubernetesrelease2021PlatformforPlatformsKubernetes上でさまざまなリソースのライフサイクルを管理Kubernetesクラスター自体を複数管理できるようにするための仕組みリソース要求の厳しい環境でも動く軽量なKubernetesディストロマルチテナントで動かすための仮想的な分離の仕組みインフラを「触らずに」構成管理
Kubernetes のエコシステムを用いたさまざまな環境の実現
© 2021 Cloud Native Computing Foundation45Kubernetes オペレーターを使ったリソース管理ML platform、DBaaS、ストレージなど「プラットフォーム」を管理する考え方
© 2021 Cloud Native Computing Foundation46cert-managerJetstack社発のOSS暗号化通信に使う証明書の管理発行・更新の定義と自動化をCRDで管理
© 2021 Cloud Native Computing Foundation47Zalando Postgres Operatorヨーロッパで展開するファッションEC Zalando発のOSSPostgres as a Serviceを実現するためのオペレーター
© 2021 Cloud Native Computing Foundation48Cybozu MOCOサイボウズ社発のOSSMySQL as a Serviceを実現するためのオペレーター
マルチテナントを実現するための仕組み
© 2021 Cloud Native Computing Foundation50Kubernetes における基本的な権限分離Namespace + RBAC を用いた環境分離が一般的ただしクラスターワイドなリソースは分離が難しい
© 2021 Cloud Native Computing Foundation51Namespace を使ったシンプルな権限分離の例- Namespace: dev-1- dev-1 内だけでリソースを触れるような RBAC を設定- Namespace: staging- クラスター運用者相当または CD tool のみが操作可能- Namespace: production- クラスター管理者相当または CD tool のみが操作可能- Namespace: monitoring- クラスター内メトリクスが取得可能な RBAC を設定
© 2021 Cloud Native Computing Foundation52テナントが増えてくると...- Namespace: tenant-0-dev- Tenant 0の開発者がリソースを触れるような RBAC を設定- Namespace: staging-tenant-0- Tenant 0の運用者または CD tool のみが操作可能- Namespace: production-tenant-0- Tenant 0の管理者相当または CD tool のみが操作可能- Namespace: monitoring-tenant-0- Tenant 0の内メトリクスが取得可能な RBAC を設定みたいな設定が各テナントごとに生える
© 2021 Cloud Native Computing Foundation53テナントが増えてくると...- Namespace: tenant-0-dev- Tenant 0の開発者がリソースを触れるような RBAC を設定- Namespace: staging-tenant-0- Tenant 0の運用者または CD tool のみが操作可能- Namespace: staging-tenant-0- Tenant 0の管理者相当または CD tool のみが操作可能- Namespace: staging-tenant-0- Tenant 0の内メトリクスが取得可能な RBAC を設定みたいな設定が各テナントごとに生えるクラスターを別で立てれば良いのでは?→ インフラコストが単純に上がるので そう簡単に決められない
© 2021 Cloud Native Computing Foundation54Hierarchical Namespace の活用Namespace に階層構造を作れる仕組み親 Namespace と子 Namespace 間で継承したいリソースを定義しておくことで権限管理のコストを下げることができるリソース管理や構成管理など様々な用途でも使いやすい
© 2021 Cloud Native Computing Foundation55vclusterLoft Labs 発の OSSNamespace ごとにk3s ベースの環境が立ち上がり、仮想クラスターとして動作Pod 間通信は普通のクラスターと同じように動作Deployment などはホスト側で管理されず仮想クラスター内で完結Pod は 実リソースなのでホストクラスターに情報が渡りコンテナが作成される (PVなども同様)
© 2021 Cloud Native Computing Foundation56Cluster API細かい仕様については時間の都合上省略様々な環境でクラスターを自動的に作るための仕組みAnthos とか VMware TKG(Tanzu KubernetesGrid) の中で内部的に使われているEKSでも内部的に使われ始めたようです
© 2021 Cloud Native Computing Foundation57Cluster API細かい仕様については時間の都合上省略様々な環境でクラスターを自動的に作るための仕組みAnthos とか VMware TKG(Tanzu KubernetesGrid) の中で内部的に使われているEKSでも内部的に使われ始めたようです
© 2021 Cloud Native Computing Foundation58マルチテナントにおける分離レベルの考慮分離レベルをどう設定したいか- クラスター単位で分離- アプリが動くマシン単位で分離- 仮想クラスターによる分離- Namespace単位で分離- コンテナランタイムで分離分離レベルインフラコストランタイムとマシン単位の話は今回割愛Cluster API が活用できるなら便利だけどインフラのコストは高いまま
© 2021 Cloud Native Computing Foundation59テナント分離の比較Namespace分離仮想クラスタークラスター分離分離レベル 低い 高い 非常に高い各テナントへのアクセスNamespace単位なので自由度は低い仮想クラスター管理者であれば可クラスター管理者であれば可インフラコスト 非常に安い 安い 高いテナント間におけるリソースの共有簡単 簡単 難しいオーバーヘッド 少ない 少ない 大きいMinimum of three year commitment
© 2021 Cloud Native Computing Foundation60テナント分離の比較Namespace分離仮想クラスタークラスター分離分離レベル 低い 高い 非常に高い各テナントへのアクセスNamespace単位なので自由度は低い仮想クラスター管理者であれば可クラスター管理者であれば可インフラコスト 非常に安い 安い 高いテナント間におけるリソースの共有簡単 簡単 難しいオーバーヘッド 少ない 少ない 大きいMinimum of three year commitment仮想クラスターの登場によって、分離における選択肢が大きく広がりましたワークロードやステークホルダーの特性、インフラコストとのバランスを考えてやっていきましょう
まとめ
© 2021 Cloud Native Computing Foundation62まとめ● Kubernetes の実例は、もはや一言でまとめることができないくらい大小さまざまで多様化が進んできた● 運用の辛さを軽減するための自動化、分離、権限管理の仕組みがしのぎを削るフェーズとなり、いよいよ利用の広がりが目に見えてきた● プラットフォームを作るための構成要素が増え、選択肢を見据えるための目的がとても重要になってきたPlatform for Platforms とは多様化によって広がるエコシステムの大海原を我々開発者/運用者が今一度見直すために必要な、原点のようなものなのかも?皆さんの思う Platform for Platforms について、ぜひツイッターで教えて下さい!
Appendix: 時間があったら一瞬だけランタイムの話
© 2021 Cloud Native Computing Foundation64ランタイム事情Kubernetes 1.24 から Dockershim が完全に消えるCRI/OCI compliant なランタイム利用が全体に広がるこれまで Docker 一辺倒だったものが gVisor のようなマルチテナント前提のランタイムや、Kata, Firecracker などの VM型ランタイムに置き換えやすくなったさらに Krustlet + WASM を使った新しい分離の仕方も・・・今ランタイム界は激アツなのです!!
Thank you for your attention!The CNCF aims to help end users connect with other end users, recruit talent, and adoptcloud native successfully in a vendor neutral environment.