Scaling deployment
WARNING
- Only SCALING UP is supported
- This is a major operation with following impacts:
- Service interruption for both API/GUI and base station flows
- Packets may be lost or queued during re-deployment
Planning the Scale Up
Before starting procedure:
- Ensure that your license matches capacities of targeted deployment.
- Prepare new worker nodes matching requirements of targeted segment (expressed in sizing matrix). The scaling up also impact storage cost by requiring more disk space capacities).
- Plan a maintenance window. This operation interrupt Uplink/Downlink processing by redeploying Data Path components.
- Get back the backed up
values-data-stack-all.yaml
andvalues-thingpark-stack-all.yaml
customization files used for initial deployment.
The Scale up procedure consists in:
- Backup your data from initial deployment,
- Uninstall both ThingPark Enterprise and ThingPark Data stacks,
- Install a new empty ThingPark Enterprise deployment,
- Restore data from backup done at Step 1
CAUTION
- Same version of ThingPark Enterprise must be used to deploy the scaled up infrastructure
- Backup must be done the closest of uninstall
Scale up procedure
1. Backup data
-
Run backup script using kubernetes api exec endpoint
# Set the deployment namespace as an environment variable
export NAMESPACE=thingpark-enterprise
kubectl exec -it -n $NAMESPACE deploy/tp-backup-controller -- backup -
Backup is pushed to blob storage
localhost ok: {
"changed": false,
"msg": "New backup thingpark-enterprise-backup-20220120091609 successfully pushed to remote storage"
} -
Take a note of backup name for restoration time
2. Uninstall
-
Start by uninstall charts
helm -n $NAMESPACE uninstall tpe tpe-controllers tpe-data tpe-data-controllers
-
Remove the namespace (required to cleanup all persistent data)
kubectl delete ns $NAMESPACE
3. New Helm Release deployment
Using the previously recovered values-data-stack-all.yaml
and
values-thingpark-stack-all.yaml
customization files, follow the
Deployment procedure to re-deploy
ThingPark Enterprise on your cluster.
WARNING
- Set
RELEASE
environment variable with same version of previous ThingPark Enterprise deployment - Set
SEGMENT
environment variable with targeted sizing
5. Data restoration
Trigger the data restoration (command will ask for confirmation) using the initial backup name:
kubectl exec -it -n $NAMESPACE deploy/tp-backup-controller -- restore -e backup_name=%backup name%