Architecture overview
Puppet Application Manager (PAM) runs on Kubernetes. We provide several supported configurations for different use cases.
PAM can run on Puppet-supported or customer-supported Kubernetes clusters. Due to potential variations in the architecture of customer-supported clusters, the architecture overview provided on this page assumes PAM is running on Puppet-supported clusters. For more information on installing on a customer-supported Kubernetes cluster, see Install Puppet applications using PAM on a customer-supported Kubernetes cluster.
Terminology
Throughout this documentation, we use a few terms to describe different roles nodes can take:
- Primary - A primary node runs core Kubernetes components (referred to as the Kubernetes control plane) as well as application workloads. At least three primaries are required to support high availability for Puppet Application Manager. These are also sometimes referred to as masters.
- Secondary - A secondary node runs application workloads. These are also sometimes referred to as workers.
Puppet Application Manager is built on the KOTS (Kubernetes
off-the-Shelf) project, and we occasionally use its CLI tools (kubectl
, kots
) to manage
the installation.
Standalone architecture
Standalone is optimized for limited resources, storing data directly on disk. If you need to remove optional components like Prometheus and Grafana to decrease resource utilization, see Optional components. While additional compute capacity can be added through secondary nodes, this does not provide increased resilience as data is only stored on the node where a component service runs.
For information on migrating data from standalone to HA deployments, see Migrating data between two systems with different architectures.
HA architecture
A high availability (HA) architecture provides high availability for scheduling application services during failure and uses Ceph for distributed storage in case of node failure. Individual applications may still experience some loss of availability (up to 10 minutes) if individual services do not have replicas and need to be rescheduled. For more information, see Reduce recovery time when a node fails. An HA implementation requires a cluster of three primary nodes. Additional compute capacity can be added through secondary nodes.
The HA architecture installs Prometheus and Alertmanager. These are used to provide system monitoring in the Puppet Application Manager UI. Prometheus and Alertmanager are unauthenticated on ports 30900 and 30903, and you are recommended to control access to these ports via firewall rules. For information on how to remove Prometheus and Alertmanager, see Optional components.
Puppet Application Manager architectures
The following diagram and lists outline some of the core components involved in standalone and HA architectures and how they communicate. For a detailed list of ports used by Puppet Application Manager, refer to the Cluster port requirements sections of the PAM system requirements. For firewall information, refer to Web URL and port requirements for firewalls.
- Standalone architecture
- Puppet Application Manager
- Lives on a cluster within a Linux host.
- UI ports
- The application UI communicates on 80/443 to the Linux host.
- Backplane and internal ports
- Backplane ports include 8472 (UDP) and 10250 (TCP).
- Additional default ports
- 30900: Prometheus UI
- HA cluster architecture
- Control plane (primaries)
- Multiple primaries that can also run application workloads.
- Workers (secondaries)
- Can be added later to add capacity for running application workloads.
- Network or Application Balancer
- The balancer communicates out to the control plane (primaries) and workers (secondaries).
- Backplane and internal ports
- Backplane ports include 2379/2380 (TCP), 8472 (UDP), and 10250 (TCP).
- Additional default ports
- 30900: Prometheus UI
UNSUPPORTED: Legacy architecture
The Puppet Application Manager legacy architecture reflects an older configuration that used Ceph 1.0 which hosted data directly on the file system. Installing the legacy architecture is no longer supported.
For information on upgrading to a newer version of the legacy architecture, see PAM legacy upgrades and PAM offline legacy upgrades.