Skip to main content
Redhat Developers  Logo
  • AI

    Get started with AI

    • Red Hat AI
      Accelerate the development and deployment of enterprise AI solutions.
    • AI learning hub
      Explore learning materials and tools, organized by task.
    • AI interactive demos
      Click through scenarios with Red Hat AI, including training LLMs and more.
    • AI/ML learning paths
      Expand your OpenShift AI knowledge using these learning resources.
    • AI quickstarts
      Focused AI use cases designed for fast deployment on Red Hat AI platforms.
    • No-cost AI training
      Foundational Red Hat AI training.

    Featured resources

    • OpenShift AI learning
    • Open source AI for developers
    • AI product application development
    • Open source-powered AI/ML for hybrid cloud
    • AI and Node.js cheat sheet

    Red Hat AI Factory with NVIDIA

    • Red Hat AI Factory with NVIDIA is a co-engineered, enterprise-grade AI solution for building, deploying, and managing AI at scale across hybrid cloud environments.
    • Explore the solution
  • Learn

    Self-guided

    • Documentation
      Find answers, get step-by-step guidance, and learn how to use Red Hat products.
    • Learning paths
      Explore curated walkthroughs for common development tasks.
    • Guided learning
      Receive custom learning paths powered by our AI assistant.
    • See all learning

    Hands-on

    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.
    • Interactive labs
      Learn by doing in these hands-on, browser-based experiences.
    • Interactive demos
      Click through product features in these guided tours.

    Browse by topic

    • AI/ML
    • Automation
    • Java
    • Kubernetes
    • Linux
    • See all topics

    Training & certifications

    • Courses and exams
    • Certifications
    • Skills assessments
    • Red Hat Academy
    • Learning subscription
    • Explore training
  • Build

    Get started

    • Red Hat build of Podman Desktop
      A downloadable, local development hub to experiment with our products and builds.
    • Developer Sandbox
      Spin up Red Hat's products and technologies without setup or configuration.

    Download products

    • Access product downloads to start building and testing right away.
    • Red Hat Enterprise Linux
    • Red Hat AI
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Featured

    • Red Hat build of OpenJDK
    • Red Hat JBoss Enterprise Application Platform
    • Red Hat OpenShift Dev Spaces
    • Red Hat Developer Toolset

    References

    • E-books
    • Documentation
    • Cheat sheets
    • Architecture center
  • Community

    Get involved

    • Events
    • Live AI events
    • Red Hat Summit
    • Red Hat Accelerators
    • Community discussions

    Follow along

    • Articles & blogs
    • Developer newsletter
    • Videos
    • Github

    Get help

    • Customer service
    • Customer support
    • Regional contacts
    • Find a partner

    Join the Red Hat Developer program

    • Download Red Hat products and project builds, access support documentation, learning content, and more.
    • Explore the benefits

Upgrade Advanced Cluster Management hubs without disruption

March 23, 2026
Dang Peng Liu
Related topics:
KubernetesSystem design
Related products:
Red Hat Advanced Cluster Management for Kubernetes

    The challenge of upgrading Red Hat Advanced Cluster Management for Kubernetes hub clusters has traditionally been a high-risk operation. In-place upgrades carry several significant risks, including extended maintenance windows that can affect hundreds of managed clusters, a higher risk of upgrade failures potentially leaving hubs in inconsistent states, possible disruption to policy enforcement and governance, and critical downtime for management operations.

    For organizations running large-scale deployments with hundreds of Zero Touch Provisioning (ZTP) managed clusters, the stakes are even higher. A failed upgrade can impact production workloads across your entire fleet.

    The solution: Parallel hub deployment with cluster migration

    The multicluster global hub introduces managed cluster migration, a feature that fundamentally changes how you approach Red Hat Advanced Cluster Management hub upgrades. Instead of risky in-place upgrades, you can deploy a new Red Hat Advanced Cluster Management hub with your target version in parallel. Then, you can gradually migrate managed clusters from the old hub to the new hub and validate each migration status before proceeding. Finally, you should decommission the old hub only after full validation.

    This approach reduces upgrade risk to near zero while maintaining continuous management of your clusters.

    How it works: The migration architecture

    The migration process leverages the global hub as an orchestration layer between source and target hubs (Figure 1). When you initiate a migration, the global hub agent running on the source hub identifies all resources associated with the migrating clusters and packages them for transfer. These resources are then sent to the global hub manager on the target hub, which coordinates the deployment of cluster resources and triggers the re-registration process.

    During migration, the managed clusters remain fully operational. The klusterlet agent on each managed cluster receives instructions to disconnect from the source hub and establish a new connection to the target hub. This handoff happens seamlessly, with the cluster continuing to run workloads without interruption. The global hub monitors each phase of the migration, tracking progress at the individual cluster level and the overall batch level.

    The architecture ensures consistency by transferring resources in a specific order. Secrets and ConfigMaps are created first, followed by cluster deployment resources, and finally the ManagedCluster resource triggers registration. This sequencing prevents race conditions and ensures that all dependencies are in place before the cluster attempts to join the target hub. If any step fails, the global hub detects the failure and initiates an automatic rollback to restore the cluster's connection to the source hub.

    This diagram shows the migration process and ACM hub architecture.
    Figure 1: This diagram shows the zero-downtime hub upgrade architecture.

    Automatic migration

    The migration process transfers all essential resources, including: ManagedCluster and KlusterletAddonConfig for cluster registration and add-on configurations; ClusterDeployment and ImageClusterInstall to preserve deployment configurations and status; BareMetalHost resources for physical server inventory and BIOS configurations; secrets such as admin credentials, kubeconfig, BMC credentials, and pull secrets; and ConfigMaps containing extra manifests referenced by ImageClusterInstall.

    Prerequisites

    Before starting the migration, ensure both source and target hubs meet the following requirements.

    1. Network connectivity: All migrating managed clusters must have network connectivity to the target hub cluster.

    2. Version requirements:

    • Component: Red Hat Advanced Cluster Management
      • Source Hub: Version N
      • Target Hub: Version N to N+1
      • Notes: and EUS Version support (e.g., Red Hat Advanced Cluster Management 2.13 → 2.15)
    • Component: Global Hub
      • Source Hub: N/A
      • Target Hub: Latest stable
      • Notes: Installed on target hub only

    3. Target hub configuration: The target hub must be configured with the same components in MultiClusterEngine and MultiClusterHub as the source hub to ensure successful cluster migration.

    4. Global hub setup: Install the multicluster global hub operator on your target hub (the Red Hat Advanced Cluster Management hub that will coordinate migrations).

    Verify global hub is running.

    oc get mgh -n multicluster-global-hub
    oc get pods -n multicluster-global-hub

    For detailed installation instructions, refer to the Global Hub Installation Guide.

    5. Import the source hub cluster into the global hub as a managed hub.

    Important note: The global-hub.open-cluster-management.io/deploy-mode: hosted label should be set in managedcluster resource when importing the source hub.

    Verify the source hub is imported and Global Hub agent is running.

    oc get managedcluster <source-hub-name>
    oc get pods -n <agent-namespace> -l name=multicluster-global-hub-agent

    You can find detailed import instructions in the Red Hat Advanced Cluster Management import documentation.

    The migration process

    The migration process consists of five steps: verifying pre-migration, applying policy applications, creating the migration resource, monitoring progress, and validating post-migration.

    Step 1: Pre-migration verification

    Before initiating migration, verify the current state of your clusters on the source hub.

    List all managed clusters on source hub:

    oc get managedcluster
    # Expected output:
    # NAME       HUB ACCEPTED   MANAGED CLUSTER URLS   JOINED   AVAILABLE   AGE
    # cluster-001   true                                  True     True        30d
    # cluster-002   true                                  True     True        25d

    Verify ZTP Resources (for ZTP clusters). Check the ClusterInstance status:

    oc get clusterinstance -A

    Check ImageClusterInstall status:

    oc get imageclusterinstall -A

    Check ClusterDeployment status:

    oc get clusterdeployment -A

    Important note: Only migrate clusters with PROVISIONSTATUS: Completed. Clusters still provisioning should complete before migration.

    Step 2: Apply policy applications to target hub

    A critical step is applying policy applications to the target hub before creating the migration resource.

    Export from the source hub:

    oc get application -n openshift-gitops -l app=policies -o yaml > policies-app.yaml

    Apply it to the target hub:

    oc apply -f policies-app.yaml

    Verify the policies are created:

    oc get policy -A

    Step 3: Create migration resource

    Migrate clusters in batches for controlled rollout. Use the static cluster list approach when you have a specific list of clusters:

    yaml
    apiVersion: global-hub.open-cluster-management.io/v1alpha1
    kind: ManagedClusterMigration
    metadata:
     name: upgrade-migration-batch-1
     namespace: multicluster-global-hub
    spec:
     from: source-hub
     to: local-cluster
     includedManagedClusters:
       - cluster-001
       - cluster-002
       - cluster-003
     supportedConfigs:
       stageTimeout: 15m

    For large-scale migrations, use Placement for dynamic cluster selection.

    apiVersion: cluster.open-cluster-management.io/v1beta1
    kind: Placement
    metadata:
     name: migration-batch-300
    spec:
     numberOfClusters: 300
     clusterSets:
     - global
     predicates:
     - requiredClusterSelector:
         labelSelector:
           matchExpressions:
             - key: migration-batch
               operator: In
               values: ["1"]
    ---
    apiVersion: global-hub.open-cluster-management.io/v1alpha1
    kind: ManagedClusterMigration
    metadata:
     name: upgrade-migration-batch-1
     namespace: multicluster-global-hub
    spec:
     from: source-hub
     to: local-cluster
     includedManagedClustersPlacementRef: migration-batch-300
     supportedConfigs:
       stageTimeout: 15m

    Step 4: Monitor migration progress

    Check the migration phase.

    oc get managedclustermigration -n multicluster-global-hub

    Example output:

    # NAME                        PHASE        AGE
    # upgrade-migration-batch-1   Deploying    5m

    Migration phases and description:

    • Validating: Verifies clusters and hubs.
    • Initializing: Prepares target hub and source hub.
    • Deploying: Transfers resources to target hub.
    • Registering: Re-registers clusters with target hub.
    • Cleaning: Removes resources from source hub.
    • Completed: Migration finished successfully.

    Monitor the individual cluster status and view per-cluster status via ConfigMap:

    oc get configmap upgrade-migration-batch-1 -n multicluster-global-hub -o yaml

    Step 5: Post-migration validation

    Verify the cluster availability.

    oc get managedcluster

    Verify the policy compliance:

    oc get policy -A

    Apply the ClusterInstance applications for ZTP clusters.

    Important: GitOps manages ClusterInstance resources, and it's not automatically migrated.

    Update ClusterInstance resources in your Git repository to suppress re-rendering:

    spec:
     suppressedManifests:
       - BareMetalHost
       - ImageClusterInstall

    Apply ClusterInstance applications to target hub:

    oc apply -f clusterinstance-app.yaml

    Verify ClusterInstance status:

    oc get clusterinstance -A

    After validating each batch, repeat steps 3-5 for remaining cluster batches.

    Performance at scale: Real-world results

    We tested migration with 300 ZTP-managed SNO clusters.

    Scenario

    Migration Time

    Policy Convergence

    ClusterInstance Convergence

    Red Hat Advanced Cluster Management 2.13 → 2.15

    ~9 minutes

    <2 minutes

    <2 minutes

    Key findings:

    • 100% success rate for all 300 clusters

    • ~0.93 seconds per cluster in same-version migrations

    • No cluster downtime during migration

    • Automatic rollback when failures occur

    Built-in safety: Automatic rollback

    If migration fails during any phase, the global hub automatically rolls back, following a process that moves from Deploying (failure) → Rollbacking → Failed. This rollback ensures that clusters remain operational on the source hub, partial resources on the target hub are cleaned up, and the system returns to its pre-migration state.

    In our testing, rollback of 300 clusters completed within 5 minutes.

    Wrap up

    Managed cluster migration transforms Red Hat Advanced Cluster Management hub upgrades from high-risk operations to controlled, reversible processes. This approach allows for deploying new versions in parallel, eliminating the risk associated with in-place upgrades. Migration happens incrementally, enabling validation before proceeding, and automatic rollback ensures that failures do not leave clusters stranded. Furthermore, this method achieves zero downtime, meaning clusters remain managed throughout the upgrade process.

    For organizations managing hundreds or thousands of clusters, this approach provides the confidence to upgrade Red Hat Advanced Cluster Management hubs without fear of disruption.

    To explore managed cluster migration, review the Global Hub Cluster Migration Guide. For ZTP clusters, refer to the ClusterInstance ZTP Migration Guide. Check out the Migration Performance GitHub for scale testing results.

    Related Posts

    • How Advanced Cluster Management simplifies rule management

    • Advanced Cluster Management 2.16 right-sizing recommendation GA

    • Manage Advanced Cluster Management policies using Ansible

    • Rebalance hub workloads with managed cluster migration

    Recent Posts

    • Protect data offloaded to GPU-accelerated environments with OpenShift sandboxed containers

    • Case study: Measuring energy efficiency on the x64 platform

    • How to prevent AI inference stack silent failures

    • Preventing GPU waste: A guide to JIT checkpointing with Kubeflow Trainer on OpenShift AI

    • How to manage TLS certificates used by OpenShift GitOps operator

    What’s up next?

    Learning Path move_managed_clusters_featured_image

    Move managed clusters using ACM 2.12 backup component

    Learn how to use the hub cluster backup and restore operator to move managed...
    Red Hat Developers logo LinkedIn YouTube Twitter Facebook

    Platforms

    • Red Hat AI
    • Red Hat Enterprise Linux
    • Red Hat OpenShift
    • Red Hat Ansible Automation Platform
    • See all products

    Build

    • Developer Sandbox
    • Developer tools
    • Interactive tutorials
    • API catalog

    Quicklinks

    • Learning resources
    • E-books
    • Cheat sheets
    • Blog
    • Events
    • Newsletter

    Communicate

    • About us
    • Contact sales
    • Find a partner
    • Report a website issue
    • Site status dashboard
    • Report a security problem

    RED HAT DEVELOPER

    Build here. Go anywhere.

    We serve the builders. The problem solvers who create careers with code.

    Join us if you’re a developer, software engineer, web designer, front-end designer, UX designer, computer scientist, architect, tester, product manager, project manager or team lead.

    Sign me up

    Red Hat legal and privacy links

    • About Red Hat
    • Jobs
    • Events
    • Locations
    • Contact Red Hat
    • Red Hat Blog
    • Inclusion at Red Hat
    • Cool Stuff Store
    • Red Hat Summit
    © 2026 Red Hat

    Red Hat legal and privacy links

    • Privacy statement
    • Terms of use
    • All policies and guidelines
    • Digital accessibility

    Chat Support

    Please log in with your Red Hat account to access chat support.