Runtime for ESXi) • ESXi上で動くコンテナランタイム • コンテナ起動のための最⼩限の仮想マシン • Linux Kernel + 最⼩限のコンポーネント ESXi VM Ubuntu Docker VM OS (Photon) vSphere Agent ⼀般的な スタック CRX
Extension DRS vCenter kubectl 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
Extension DRS vCenter kubectl 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
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を起動する時間
Platforms) CONFIDENTIAL Pod Scheduling Pod Initializing Pod Starting VM Creation: 200 ~ 300 ms VM Power On: 300 ~ 400 ms 0 1000 2000 3000 4000 5000 Pod Startup Latency Latency (ms) Pod Startup Breakdown 0 500 1000 1500 2000 2500 Pod Startup Latency Latency (ms) WCP Supervisor Cluster Openshift VS spherelet client/agent: 100 ~ 200 ms 0 500 1000 1500 2000 2500 3000 Pod Startup Latency Latency (ms) Vanilla K8S Pod Scheduling Pod Initializing Pod Starting Pod Scheduling Pod Initializing Pod Starting Internal Only
and TPM 2.0 • Minimum = No way for cracker • CRX binary is encapsulated in VIB(VMware Infrastructure Bundle) → Cannot modify it directly. Only modify via ESXi update.
List images • List active instances • Start instances • Kill instances • Garbage collect homes • Exec application in an instance crx-cli ESXi VM OS Spherelet API Master Master Node k8s Sched Image Service Hostd Sched Extension vCenter CRX CRX-tool libcontainer CRX-init initrd kernel Spherelet Agent