See also: Juju Dev | Worker
Juju runs as agent processes; each Juju agent is a running instance of the
containeragent binary. Agents are deployed on the platform where Juju deploys user applications and manages their lifecycle. In general, all agents track state changes and respond to those changes. Agents are also responsible for all logging that goes on in Juju.
There are three types of agents in Juju: controller agents, unit agents and machine agents. An agent performs different roles depending on its type:
- A controller agent is responsible for running a Juju controller node.
- A unit agent is responsible for managing the lifecycle of an application’s unit running on the machine or the k8s pod.
- A machine agent manages its respective unit agents. In particular, it is the machine agent that creates unit agents for deployed application units. A machine agent also manages any containers that may be requested on that machine and also the resources on the machine, for example, storage for application units.
Agents perform their tasks using workers. For more, see Juju Dev | Worker.