Skip to main content

Overview

Xloud K8SaaS supports rolling Kubernetes version upgrades. Master nodes are upgraded first, followed by sequential worker node replacement — draining each node before removing it and adding a replacement with the new version. This approach maintains cluster availability throughout the upgrade process.
Kubernetes does not support skipping minor versions. Upgrade sequentially through each minor version (e.g., 1.27 → 1.28 → 1.29). Attempting to skip a version (e.g., 1.27 → 1.29 directly) is not supported and will fail.
Prerequisites
  • A cluster in CREATE_COMPLETE or UPDATE_COMPLETE status
  • A cluster template with the target Kubernetes version available in your project
  • Sufficient compute quota to temporarily run extra nodes during the rolling replacement

Pre-Upgrade Checklist

Verify the target template exists

Confirm a cluster template with the target Kubernetes version is available:
List available templates
openstack coe cluster template list
If the target version template does not exist, ask your administrator to create a public template or create a private one in your project.

Check cluster health

Verify cluster is healthy
openstack coe cluster show prod-cluster-01 \
  -f value -c status -c health_status
Proceed only when status = CREATE_COMPLETE or UPDATE_COMPLETE and health_status = HEALTHY.

Verify node readiness

Check all nodes are Ready
kubectl get nodes
All nodes must show STATUS: Ready before starting the upgrade.

Notify application teams

Inform application owners that the cluster will undergo a rolling upgrade. While the upgrade is non-destructive, pods will be evicted during node replacement. Ensure workloads use multiple replicas and have Pod Disruption Budgets configured.

Perform the Upgrade

Navigate to the cluster

Navigate to Container > Clusters. Click your cluster name.

Start upgrade

Click Actions → Upgrade Cluster. Select the target cluster template with the desired Kubernetes version and confirm.

Monitor progress

The cluster enters UPDATE_IN_PROGRESS status. The upgrade progresses through:
  1. Master nodes upgraded first (one at a time for HA clusters)
  2. Worker nodes drained and replaced sequentially
Use kubectl get nodes -w to watch node status changes in real time during the rolling replacement.

Verify completion

The cluster returns to UPDATE_COMPLETE when all nodes are on the new version.
All nodes show the new Kubernetes version in kubectl get nodes.

Post-Upgrade Validation

After upgrade completes, verify:
  • Cluster shows Health Status: HEALTHY
  • All nodes listed in the cluster detail show STATUS: Ready
Cluster is healthy and all nodes are at the target version.

Next Steps

Troubleshooting

Resolve upgrade failures and post-upgrade issues.

Node Groups

Manage specialized node pools after an upgrade.

Kubernetes Admin Guide — Certificates

Rotate cluster CA certificates after major version upgrades.

Access Cluster

Refresh kubeconfig after a cluster upgrade if the CA was rotated.