See also: How to manage machines
In Juju, a machine is the term used to describe a cloud instance that was requested by Juju. Specifically, it refers to compute resources, whether bare-metal servers, virtual machines, system containers, or Kubernetes pods.
Note: Although a Juju machine can denote any one of a bare-metal server, machine, system container, or Kubernetes pod, a machine charm refers strictly to charms that can run on physical machines, virtual machines, and LXD containers – charms made to run in Kubernetes are called Kubernetes charms.
See more: Charm(ed operator)
Machines will usually house a single unit of a deployed application, but this is not always the case. If directed by the user, a machine may house several units (e.g. to conserve resources) or possibly no units at all: a machine can be created independently of applications (
juju add-machine), though usually this is with the intention of eventually running an application on it.
Represented below are two Juju machines for a non-Kubernetes deployment.
machine 0 has a single charm deployed directly to the machine whereas
machine 1 has two charms, one deployed directly to the machine and one deployed to a LXD container within the machine: