SlideShare una empresa de Scribd logo
1 de 15
©2020 VMware, Inc.
CRX:
Container Runtime
Executive
ESXi上で動くコンテナの仕組み
22nd August 2020
ヴイエムウェア株式会社
村田 一平
©2020 VMware, Inc.
Agenda
2
Table of Contents
• VMwareがコンテナを扱うワケ
• CRXとは
• CRX Architecture詳細 全体像
• CRX Architecture詳細 コンテナ起動時のシーケンス
• 性能
• ユースケース
©2020 VMware, Inc. 3
VMwareがコンテナを扱うワケ
VMwareとは:
• 仮想化市場で有名な会社
• サーバ仮想化(vSphere)、ストレージ仮想化(vSAN)、
ネットワーク仮想化(NSX)、デスクトップ仮想化(Horizon), etc
なぜ仮想屋がコンテナランタイム?
• 仮想マシン(VM)とコンテナの一元管理
• リソースの最適化(集約・高速) ハイパバイザ
(ESXi)
VM
Container
同じ扱い
©2020 VMware, Inc. 4
VMwareがコンテナを扱うワケ
VMwareとは:
• 仮想化市場で有名な会社
• サーバ仮想化(vSphere)、ストレージ仮想化(vSAN)、
ネットワーク仮想化(NSX)、デスクトップ仮想化(Horizon), etc
なぜ仮想屋がコンテナランタイム?
• 仮想マシン(VM)とコンテナの一元管理
• リソースの最適化(集約・高速)
コンテナランタイム:CRX
ハイパバイザ
(ESXi)
VM
Container
同じ扱い
©2020 VMware, Inc. 5
CRXとは
CRX: Container Runtime Executive
(旧:Container Runtime for ESXi)
= ESXi上で動くコンテナランタイム
= コンテナ起動のための最小限の仮想マシン
= Linux Kernel + 最小限のコンポーネント
ESXi
VM
Ubuntu
Docker
VM
OS
(Photon)
vSphere
Agent
一般的な
スタック
CRX
©2020 VMware, Inc. 6
CRX Architecture詳細 全体像
ESXi
VM
OS
Spherelet
API
Master
Master Node
k8s
Sched
Image
Service
Hostd
Sched
ExtensionvCenter
Kubectl
CRX
CRX-tool
libcontainer
CRX-init
initrd
kernel
Spherelet
Agent
©2020 VMware, Inc. 7
CRX Architecture詳細 コンテナ起動時のシーケンス
API
Master
Scheduler
Extension
DRS vCenterkubectl
kubectl create
Hostd
Spherelet
Agent
Spherelet
Request Pod
location
Decide location
Request VM
creation
Create CRX(VM)
CRX Power on
VM UUID
Node, VM UUID
Add UUID to
annotation
Node, Pod spec
Request Pod creation Reconfigure CRX
Request Pod creation
kernel init
CRX
Boot init process
Initialize OS
Boot
Spherelet Agent
Pod status
vSphere
k8s Master
Request Pod
creation
Initialize network, etc
Assign VMDK, vNIC
Boot Container, etc
©2020 VMware, Inc. 8
高速起動のコツ(1) − ブートプロセス
API
Master
Scheduler
Extension
DRS vCenterkubectl
kubectl create
Hostd
Spherelet
Agent
Spherelet
Request Pod
location
Decide location
Request VM
creation
Create CRX(VM)
CRX Power on
VM UUID
Node, VM UUID
Add UUID to
annotation
Node, Pod spec
Request Pod creation Reconfigure CRX
Request Pod creation
kernel init
CRX
Boot init process
Initialize OS
Boot
Spherelet Agent
Pod status
vSphere
k8s Master
Request Pod
creation
Initialize network, etc
Assign VMDK, vNIC
Boot Container, etc
©2020 VMware, Inc. 9
高速起動のコツ(1) − ブートプロセス
API
Master
Scheduler
Extension
DRS vCenterkubectl
kubectl create
Hostd
Spherelet
Agent
Spherelet
Request Pod
location
Decide location
Request VM
creation
Create CRX(VM)
CRX Power on
VM UUID
Node, VM UUID
Add UUID to
annotation
Node, Pod spec
Request Pod creation Reconfigure CRX
Request Pod creation
kernel init
CRX
Boot init process
Initialize OS
Boot
Spherelet Agent
Pod status
vSphere
k8s Master
Request Pod
creation
Initialize network, etc
Assign VMDK, vNIC
Boot Container, etc
ブートプロセス
1. BIOS(UEFI)のブート
2. ブートローダによるカーネルのロード
3. カーネルの起動
カーネルの自己展開
組み込みドライバのロード
initrdの展開
4. initプロセスの起動
©2020 VMware, Inc. 10
高速起動のコツ(1) − ブートプロセス
API
Master
Scheduler
Extension
DRS vCenterkubectl
kubectl create
Hostd
Spherelet
Agent
Spherelet
Request Pod
location
Decide location
Request VM
creation
Create CRX(VM)
CRX Power on
VM UUID
Node, VM UUID
Add UUID to
annotation
Node, Pod spec
Request Pod creation Reconfigure CRX
Request Pod creation
kernel init
CRX
Boot init process
Initialize OS
Boot
Spherelet Agent
Pod status
vSphere
k8s Master
Request Pod
creation
Initialize network, etc
Assign VMDK, vNIC
Boot Container, etc
ブートプロセス
1. BIOS(UEFI)のブート
2. ブートローダによるカーネルのロード
3. カーネルの起動
カーネルの自己展開
組み込みドライバのロード
initrdの展開
4. initプロセスの起動
©2020 VMware, Inc. 11
高速起動のコツ(2)− 共有
initrd
Container
vmlinux
Container Container Container
・vmlinux, initrdはメモリ上でファイル共有
→キャッシュミス、PageFault削減
・initrdのメモリアライン最適化
(cpio改造によるアラインメント)
initrd
vmlinux
initrd
vmlinux
initrd
vmlinux
initrd
vmlinux
VisorFS
(tmpfsみたいなもの)
©2020 VMware, Inc. 12
性能
©2020 VMware, Inc. 13
性能
VM Creation: 200 ~ 300 ms
VM Power On: 300 ~ 400 ms
spherelet client/agent: 100 ~ 200 ms
0
1000
2000
3000
4000
5000
起動時間(ms)
Podの起動時間(Pauseコンテナ)
注意点:
K8sクラスタ上でのPodの起動時間 < CRXでPodを起動する時間
©2020 VMware, Inc. 14
ユースケース
• CRX単体でのユースケース
• as a Serviceの提供
• セキュリティ要件が厳しい場合
• 仮想マシンとCRXを使ったコンテナを組み合わせた場合のユースケース
• VMとPodで同じように管理・監視したい場合
• 柔軟にリソースを活用して運用したい場合
→ 例えば、DR用リソースをVMにもPodにも利用可能
©2020 VMware, Inc.
Thank You

Más contenido relacionado

La actualidad más candente

La actualidad más candente (20)

Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
Knative Eventing 入門(Kubernetes Novice Tokyo #11 発表資料)
 
AWS Systems manager 入門
AWS Systems manager 入門AWS Systems manager 入門
AWS Systems manager 入門
 
Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022Infrastructure as Code (IaC) 談義 2022
Infrastructure as Code (IaC) 談義 2022
 
Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例Amazon EKS によるスマホゲームのバックエンド運用事例
Amazon EKS によるスマホゲームのバックエンド運用事例
 
コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」コンテナの作り方「Dockerは裏方で何をしているのか?」
コンテナの作り方「Dockerは裏方で何をしているのか?」
 
P2P Container Image Distribution on IPFS With containerd and nerdctl
P2P Container Image Distribution on IPFS With containerd and nerdctlP2P Container Image Distribution on IPFS With containerd and nerdctl
P2P Container Image Distribution on IPFS With containerd and nerdctl
 
今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた今話題のいろいろなコンテナランタイムを比較してみた
今話題のいろいろなコンテナランタイムを比較してみた
 
マーブル図で怖くないRxJS
マーブル図で怖くないRxJSマーブル図で怖くないRxJS
マーブル図で怖くないRxJS
 
Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~Amazon EKS への道 ~ EKS 再入門 ~
Amazon EKS への道 ~ EKS 再入門 ~
 
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
PostgreSQLをKubernetes上で活用するためのOperator紹介!(Cloud Native Database Meetup #3 発表資料)
 
BuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルドBuildKitによる高速でセキュアなイメージビルド
BuildKitによる高速でセキュアなイメージビルド
 
AKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみたAKS と ACI を組み合わせて使ってみた
AKS と ACI を組み合わせて使ってみた
 
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
Docker入門-基礎編 いまから始めるDocker管理【2nd Edition】
 
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
コンテナセキュリティにおける権限制御(OCHaCafe5 #3 Kubernetes のセキュリティ 発表資料)
 
Planet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: BigdamPlanet-scale Data Ingestion Pipeline: Bigdam
Planet-scale Data Ingestion Pipeline: Bigdam
 
iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方iostat await svctm の 見かた、考え方
iostat await svctm の 見かた、考え方
 
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
ゲームアーキテクチャパターン (Aurora Serverless / DynamoDB)
 
CFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service BrokerCFの便利機能を他の環境でも。Open Service Broker
CFの便利機能を他の環境でも。Open Service Broker
 
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?Azure でサーバーレス、 Infrastructure as Code どうしてますか?
Azure でサーバーレス、 Infrastructure as Code どうしてますか?
 
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
PFNのML/DL基盤を支えるKubernetesにおける自動化 / DevOpsDays Tokyo 2021
 

Similar a CRX: Container Runtime Executive 

クラウド概略(プレゼン)
クラウド概略(プレゼン)クラウド概略(プレゼン)
クラウド概略(プレゼン)
真乙 九龍
 

Similar a CRX: Container Runtime Executive  (20)

クラウド概略(プレゼン)
クラウド概略(プレゼン)クラウド概略(プレゼン)
クラウド概略(プレゼン)
 
第6回「VMware vSphere 5」(2011/08/11 on しすなま!)
第6回「VMware vSphere 5」(2011/08/11 on しすなま!)第6回「VMware vSphere 5」(2011/08/11 on しすなま!)
第6回「VMware vSphere 5」(2011/08/11 on しすなま!)
 
NSX-Tから見たvSphere with Kubernetesのネットワーキング
NSX-Tから見たvSphere with KubernetesのネットワーキングNSX-Tから見たvSphere with Kubernetesのネットワーキング
NSX-Tから見たvSphere with Kubernetesのネットワーキング
 
Cloudstack Day 2014 ここまできた、VSC for ACSが 実現する先進的なプライベートクラウド
Cloudstack Day 2014 ここまできた、VSC for ACSが実現する先進的なプライベートクラウドCloudstack Day 2014 ここまできた、VSC for ACSが実現する先進的なプライベートクラウド
Cloudstack Day 2014 ここまできた、VSC for ACSが 実現する先進的なプライベートクラウド
 
20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要20220302_TechDojo_OpenShift_BootCamp_1章概要
20220302_TechDojo_OpenShift_BootCamp_1章概要
 
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
[Microsoft Tech Summit] Linux/Java にも対応! Azure Service Fabric を使ったマイクロサービス開発
 
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
Cluster API によるKubernetes環境のライフサイクル管理とマルチクラウド環境での適用
 
Getting started with Windows Containers
Getting started with Windows ContainersGetting started with Windows Containers
Getting started with Windows Containers
 
Dev ops meetup_01_photonos_tomochikak
Dev ops meetup_01_photonos_tomochikakDev ops meetup_01_photonos_tomochikak
Dev ops meetup_01_photonos_tomochikak
 
Running Kubernetes on Azure
Running Kubernetes on AzureRunning Kubernetes on Azure
Running Kubernetes on Azure
 
これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門これから始めるAzure Kubernetes Service入門
これから始めるAzure Kubernetes Service入門
 
vmware-meetup7
vmware-meetup7vmware-meetup7
vmware-meetup7
 
VMwareの歩き方 ~SDDCに向けた最強アンダーレイとは?
VMwareの歩き方 ~SDDCに向けた最強アンダーレイとは?VMwareの歩き方 ~SDDCに向けた最強アンダーレイとは?
VMwareの歩き方 ~SDDCに向けた最強アンダーレイとは?
 
【検証してみた】いま話題のVMware on IBM Cloud SoftLayer 配布版
【検証してみた】いま話題のVMware on IBM Cloud SoftLayer 配布版【検証してみた】いま話題のVMware on IBM Cloud SoftLayer 配布版
【検証してみた】いま話題のVMware on IBM Cloud SoftLayer 配布版
 
経験者も必見!「vSphere 5.1 環境構築 徹底解説」
経験者も必見!「vSphere 5.1 環境構築 徹底解説」経験者も必見!「vSphere 5.1 環境構築 徹底解説」
経験者も必見!「vSphere 5.1 環境構築 徹底解説」
 
VMware vForum/VSS2013にて発表されたNetAppセッションコンテンツ
VMware vForum/VSS2013にて発表されたNetAppセッションコンテンツVMware vForum/VSS2013にて発表されたNetAppセッションコンテンツ
VMware vForum/VSS2013にて発表されたNetAppセッションコンテンツ
 
Hyper-V仮想マシンをAzureへV2C移行
Hyper-V仮想マシンをAzureへV2C移行Hyper-V仮想マシンをAzureへV2C移行
Hyper-V仮想マシンをAzureへV2C移行
 
Easy avi deploy_ver2.0.4
Easy avi deploy_ver2.0.4Easy avi deploy_ver2.0.4
Easy avi deploy_ver2.0.4
 
Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会Wakame Project - 自作クラウド研究会
Wakame Project - 自作クラウド研究会
 
AKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab ContentsAKS (k8s) Hands on Lab Contents
AKS (k8s) Hands on Lab Contents
 

CRX: Container Runtime Executive 

  • 1. ©2020 VMware, Inc. CRX: Container Runtime Executive ESXi上で動くコンテナの仕組み 22nd August 2020 ヴイエムウェア株式会社 村田 一平
  • 2. ©2020 VMware, Inc. Agenda 2 Table of Contents • VMwareがコンテナを扱うワケ • CRXとは • CRX Architecture詳細 全体像 • CRX Architecture詳細 コンテナ起動時のシーケンス • 性能 • ユースケース
  • 3. ©2020 VMware, Inc. 3 VMwareがコンテナを扱うワケ VMwareとは: • 仮想化市場で有名な会社 • サーバ仮想化(vSphere)、ストレージ仮想化(vSAN)、 ネットワーク仮想化(NSX)、デスクトップ仮想化(Horizon), etc なぜ仮想屋がコンテナランタイム? • 仮想マシン(VM)とコンテナの一元管理 • リソースの最適化(集約・高速) ハイパバイザ (ESXi) VM Container 同じ扱い
  • 4. ©2020 VMware, Inc. 4 VMwareがコンテナを扱うワケ VMwareとは: • 仮想化市場で有名な会社 • サーバ仮想化(vSphere)、ストレージ仮想化(vSAN)、 ネットワーク仮想化(NSX)、デスクトップ仮想化(Horizon), etc なぜ仮想屋がコンテナランタイム? • 仮想マシン(VM)とコンテナの一元管理 • リソースの最適化(集約・高速) コンテナランタイム:CRX ハイパバイザ (ESXi) VM Container 同じ扱い
  • 5. ©2020 VMware, Inc. 5 CRXとは CRX: Container Runtime Executive (旧:Container Runtime for ESXi) = ESXi上で動くコンテナランタイム = コンテナ起動のための最小限の仮想マシン = Linux Kernel + 最小限のコンポーネント ESXi VM Ubuntu Docker VM OS (Photon) vSphere Agent 一般的な スタック CRX
  • 6. ©2020 VMware, Inc. 6 CRX Architecture詳細 全体像 ESXi VM OS Spherelet API Master Master Node k8s Sched Image Service Hostd Sched ExtensionvCenter Kubectl CRX CRX-tool libcontainer CRX-init initrd kernel Spherelet Agent
  • 7. ©2020 VMware, Inc. 7 CRX Architecture詳細 コンテナ起動時のシーケンス API Master Scheduler Extension DRS vCenterkubectl kubectl create Hostd Spherelet Agent Spherelet Request Pod location Decide location Request VM creation Create CRX(VM) CRX Power on VM UUID Node, VM UUID Add UUID to annotation Node, Pod spec Request Pod creation Reconfigure CRX Request Pod creation kernel init CRX Boot init process Initialize OS Boot Spherelet Agent Pod status vSphere k8s Master Request Pod creation Initialize network, etc Assign VMDK, vNIC Boot Container, etc
  • 8. ©2020 VMware, Inc. 8 高速起動のコツ(1) − ブートプロセス API Master Scheduler Extension DRS vCenterkubectl kubectl create Hostd Spherelet Agent Spherelet Request Pod location Decide location Request VM creation Create CRX(VM) CRX Power on VM UUID Node, VM UUID Add UUID to annotation Node, Pod spec Request Pod creation Reconfigure CRX Request Pod creation kernel init CRX Boot init process Initialize OS Boot Spherelet Agent Pod status vSphere k8s Master Request Pod creation Initialize network, etc Assign VMDK, vNIC Boot Container, etc
  • 9. ©2020 VMware, Inc. 9 高速起動のコツ(1) − ブートプロセス API Master Scheduler Extension DRS vCenterkubectl kubectl create Hostd Spherelet Agent Spherelet Request Pod location Decide location Request VM creation Create CRX(VM) CRX Power on VM UUID Node, VM UUID Add UUID to annotation Node, Pod spec Request Pod creation Reconfigure CRX Request Pod creation kernel init CRX Boot init process Initialize OS Boot Spherelet Agent Pod status vSphere k8s Master Request Pod creation Initialize network, etc Assign VMDK, vNIC Boot Container, etc ブートプロセス 1. BIOS(UEFI)のブート 2. ブートローダによるカーネルのロード 3. カーネルの起動 カーネルの自己展開 組み込みドライバのロード initrdの展開 4. initプロセスの起動
  • 10. ©2020 VMware, Inc. 10 高速起動のコツ(1) − ブートプロセス API Master Scheduler Extension DRS vCenterkubectl kubectl create Hostd Spherelet Agent Spherelet Request Pod location Decide location Request VM creation Create CRX(VM) CRX Power on VM UUID Node, VM UUID Add UUID to annotation Node, Pod spec Request Pod creation Reconfigure CRX Request Pod creation kernel init CRX Boot init process Initialize OS Boot Spherelet Agent Pod status vSphere k8s Master Request Pod creation Initialize network, etc Assign VMDK, vNIC Boot Container, etc ブートプロセス 1. BIOS(UEFI)のブート 2. ブートローダによるカーネルのロード 3. カーネルの起動 カーネルの自己展開 組み込みドライバのロード initrdの展開 4. initプロセスの起動
  • 11. ©2020 VMware, Inc. 11 高速起動のコツ(2)− 共有 initrd Container vmlinux Container Container Container ・vmlinux, initrdはメモリ上でファイル共有 →キャッシュミス、PageFault削減 ・initrdのメモリアライン最適化 (cpio改造によるアラインメント) initrd vmlinux initrd vmlinux initrd vmlinux initrd vmlinux VisorFS (tmpfsみたいなもの)
  • 12. ©2020 VMware, Inc. 12 性能
  • 13. ©2020 VMware, Inc. 13 性能 VM Creation: 200 ~ 300 ms VM Power On: 300 ~ 400 ms spherelet client/agent: 100 ~ 200 ms 0 1000 2000 3000 4000 5000 起動時間(ms) Podの起動時間(Pauseコンテナ) 注意点: K8sクラスタ上でのPodの起動時間 < CRXでPodを起動する時間
  • 14. ©2020 VMware, Inc. 14 ユースケース • CRX単体でのユースケース • as a Serviceの提供 • セキュリティ要件が厳しい場合 • 仮想マシンとCRXを使ったコンテナを組み合わせた場合のユースケース • VMとPodで同じように管理・監視したい場合 • 柔軟にリソースを活用して運用したい場合 → 例えば、DR用リソースをVMにもPodにも利用可能