How-torke2spray
Operate the cluster lifecycle
Check health, scale, upgrade, snapshot, recover, and remove nodes from an RKE2 cluster.
Core summary
- Every change begins with an Inventory review, Vault check, preflight, and current health check.
- Add workers through
scale.ymland add servers one at a time throughcluster.yml. - Upgrades sequence cordon, drain, release replacement, readiness verification, and uncordon.
- Recovery and removal require topology-specific prerequisites and exact confirmation.
- Do not treat CNI or cluster-CIDR changes as ordinary convergence of an existing cluster.
Follow the common execution sequence
Review Inventory and inline Vault diffs
Validate local Vault structure and remote topology
make inventory-vault-check make inventory-preflightPreserve the current cluster state
make cluster-healthConfirm targets and scope, then run the lifecycle
Verify completion with the same health checks
Select the operation entrypoint
| Task | Playbook or target | RKE2 behavior |
|---|---|---|
| Install or reconverge | cluster.yml / make cluster-converge | Configure servers and agents, then verify readiness |
| Add worker | scale.yml --limit=<worker> | Converge only the selected agent batch |
| Add server | cluster.yml --limit=<server> | Join one server at a time |
| Upgrade | upgrade-cluster.yml / make cluster-upgrade | Sequential drain and release replacement |
| Health | make cluster-health | Read-only service, API, Node, and etcd checks |
| Snapshot | make cluster-snapshot | Create an RKE2 embedded-etcd snapshot |
| Recovery | recover-control-plane.yml | Recover embedded etcd from a selected snapshot |
| Remove node | remove-node.yml | Drain, verify membership, and uninstall RKE2 |
| Reset all | reset.yml | Stop services and run the official uninstaller |
Enforce destructive-operation boundaries
- Remove only one server at a time and leave at least two servers.
- Do not remove the bootstrap server without a separate lifecycle-identity review.
- With an external load balancer, first remove the server from the
80,443,6443, and9345backends. - Do not use
recover-control-plane.ymlfor an external datastore. - Never bypass confirmations for
reset,remove,recover, or AddOn pruning.
Operational boundary
Off-host snapshot copies and long-term retention belong to a separate backup system; creating a local snapshot alone does not complete disaster recovery.
Conclusion
- Preserve evidence from checks before and after each change instead of treating the command as the whole operation.
- When a prerequisite is unclear, check Compatibility first.