GKE Sandbox: Independent operating system kernel to each container
For anyone who hasn't seen this before. There is a pretty good gVisor Architecture Guide that explains how this works pretty well via a few diagrams [1]. Lots more info on these pages too [2, 3].<p>> <i>gVisor intercepts application system calls and acts as the guest kernel, without the need for translation through virtualized hardware. gVisor may be thought of as either a merged guest kernel and VMM, or as seccomp on steroids. This architecture allows it to provide a flexible resource footprint (i.e. one based on threads and memory mappings, not fixed guest physical resources) while also lowering the fixed costs of virtualization. However, this comes at the price of reduced application compatibility and higher per-system call overhead.</i><p>From what I understand, basically a user-space program that wraps your container and intercepts all system calls. You can then allow/deny/re-wire them (based on a config). So, you have pretty much complete control over what your apps can do.<p>This for me, is sort of the key takeway from the blog post too: "<i>because we use gVisor to increase the security of Google's own internal workloads, it continuously benefits from our expertise and experience running containers at scale in a security-first environment"</i>. So, Google's using something like this internally too for their own workloads, which should be a pretty good sign this works in real life.<p>[1] <a href="https://gvisor.dev/docs/architecture_guide/" rel="nofollow">https://gvisor.dev/docs/architecture_guide/</a><p>[2] <a href="https://github.com/google/gvisor" rel="nofollow">https://github.com/google/gvisor</a><p>[3] <a href="https://gvisor.dev/" rel="nofollow">https://gvisor.dev/</a>