Once a workload has been configured, users can published it to a set of clusters as determined by the "Placement Policy".
The Controller allows users to perform this via multiple approaches
- The Application Console GUI or
- The Rafay CLI or
- Programmticaly using the provided REST APIs
Multi Cluster Deployments¶
The Rafay Controller allows users to publish/deploy their workloads to "multiple" clusters as defined in the workload's placement policy.
In the example below, the "helloapp" workload has been deployed to three (3) clusters managed by the Controller.
Deployment Control Loop¶
Once publish is initiated, a deployment "control loop" is created on the Controller for the workload.
The controller notifies the target clusters that they have a job to perform
The target clusters PULL the workload configuration from the Controller
The target clusters PULL the container images from the container repository and and deploy the Kubernetes resources as specified in the workload.
Once the workload's resources are operational on the target cluster, the controller is notified about the successful deployment
Once the controller receives confirmation of a successful deployment, it updates status appropriately
Ongoing Health Checks¶
Once the workload has been successfully deployed to all clusters, the workload's deployment Control Loop at the Controller continuously checks whether the workloads on the target clusters are operational or not.
Recovery from Failure¶
If a workload is no longer in the desired state on a cluster, the Controller will detect it and automatically attempt to bring it back to the desired state without any user intervention.
Workload owners are also notified when there a workload has a failure on one/many clusters.
Wizard based Workloads¶
For workload wizard based workloads, the controller implements a number of guard rails before deployment is intiated.
The checks are automatically performed to ensure there are no misconfigurations. A self explanatory error message is displayed if the checks fail.