This is an example of how to replace all 4 nodes on an HA cluster with 3 masters and 1 worker on GCP.
Worker
- On worker-1, run
sudo /opt/replicated/shutdown.sh
- On master-1 run
kubectl drain worker-1 --delete-local-data --ignore-daemonsets
gcloud compute instances delete worker-1
- On master-1 run
replicatedctl cluster delete-node worker-1
- Wait for worker-1 to come back up, then run the worker join script on it from the
/cluster
page of the console. - Exec into rook-ceph-operator pod in rook-ceph-system namespace and wait for
ceph status
to show 4 osds and no degraded data redundancy
Master
- (Airgap only). On master-3 run
kubectl patch deploy replicated --type='json' -p='[{"op": "replace", "path": "/spec/template/spec/nodeSelector", "value":{"node-role.kubernetes.io/master":""}}]'
- On master-3 run
sudo /opt/replicated/shutdown.sh
- On another master run
kubectl drain master-3 --delete-local-data --ignore-daemonsets
- Run
gcloud compute instances delete master-3
- On another master run
replicatedctl cluster delete-node master-3
- Wait for master-3 to come back up, then run the master join script on it.
- Update load balancer with new IP of master-3.
- Exec into rook-ceph-operator pod in rook-ceph-system namespace and wait for
ceph status
to show 4 osds and no degraded data redundancy. - (airgap only) Wait for the application
.airgap
bundles and the license.rli
file to be replicated to the new master. The file locations can be found withreplicatedctl params export | grep AirgapLicensePath
andreplicatedctl params export | grep AirgapPackagePath
.
Repeat master-3 steps 1-8 on master-2 and master-1