liveBook · Manning

Virtual machine

As explained in Kubernetes for Developers

A virtual machine is a software-emulated computer that provides an application with an isolated operating environment and typically includes a guest operating system.

A virtual machine is a software-emulated computer that gives an application its own operating environment. Each application can run with isolated dependencies and allocated resources instead of sharing them directly on one host. section 1.1

This isolation solves problems found when multiple applications share directories, dependencies, CPU, memory, and network ports. The trade-off is operational overhead: every VM has the complexity of an individual host, including an operating system and its packages to maintain. section 1.1

Compared with neighboring deployment models:

  • Shared hosting installs multiple applications on one host, increasing coordination around dependencies and resources. section 1.1
  • Virtual machines separate applications into individual operating environments, improving isolation while requiring an operating system per application. section 1.1
  • Containers package the application and its dependencies without installing and managing another operating-system kernel, preserving many VM benefits with less overhead. section 1.1
  • Kubernetes operates above compute instances such as VMs, allowing workloads to request CPU, memory, disk, or GPU without managing individual machines. section 1.2.2

One application per VM

A deployment can package each application into its own VM so dependencies remain isolated and resources can be divided and allocated independently. Scaling still requires managing the resulting individual hosts. section 1.1

Figure 1.1 Evolution of shared hosting architectures
01-01

The hosting-evolution diagram contrasts shared hosts, separate VMs, and containers, making the isolation-versus-overhead trade-off visible. section 1.1

How Kubernetes for Developers covers it

How deep it goes
Explains deployment motivation, isolation benefits, maintenance overhead, and the contrast with containers, without detailing virtualization internals.
Examples
Contrasts shared hosting, one application per VM, and the progression from VMs to containers.
What you can do after
Evaluate deployment architectures by weighing application isolation and resource allocation against operating-system maintenance overhead.
How it connects
Connects virtual machines with containers, operating systems, dependencies, compute instances, and Kubernetes workload abstraction.

Also explained in

Compare how 16 books explain virtual machine →

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Kubernetes for Developers. The section links point to the parts of the book it draws on.