Create a multi-cluster application

更新时间:
复制 MD 格式

The multi-cluster GitOps feature uses ArgoCD ApplicationSet to simplify application orchestration. It allows you to automatically generate and deploy applications across multiple clusters from a single configuration. This topic describes how to create a multi-cluster application in the ACK One console.

Prerequisites

Procedure

  1. Log on to the ACK One console. In the navigation pane on the left, choose Fleet > Multi-cluster GitOps.

  2. In the upper-left corner of the Multi-cluster GitOps page, click the Dingtalk_20231226104633.jpg icon next to the fleet name and select the target fleet from the drop-down list.

  3. Click Create Multi-cluster Application > GitOps to open the Create Multi-cluster Application - GitOps page.

  4. On the Quick Create tab, configure the parameters in the following table.

    Parameter

    Description

    Example

    Multi-cluster Application Set Name

    The name of the ApplicationSet.

    appset-echo-server-demo

    Project

    The project to which the ApplicationSet belongs.

    default

    Source Code URL

    The URL of the source code repository for the application.

    https://github.com/AliyunContainerService/gitops-demo.git

    Git Branch

    The Git branch for the application.

    main

    Path

    The relative path to the application's YAML manifest files in the Git repository.

    manifests/helm/echo-server

    Destination cluster

    The clusters where the application will be deployed. If left empty, the application is deployed to all clusters managed by ArgoCD except for in-cluster (the control plane cluster where ArgoCD is running).

    Namespace

    The namespace within the destination clusters where the application will be deployed.

    demo

    Application Name

    The name of the generated application. You can use the following variables:

    • {{.name}}

    • {{.metadata.annotations.cluster_name}}

    • {{.metadata.annotations.cluster_id}}

    {{.metadata.annotations.cluster_id}}-echoserver

    Advanced configuration

    Synchronization Policy (Application Set)

    PRESERVE RESOURCES ON DELETION: If selected, resources created by the ApplicationSet's child applications are retained when the ApplicationSet is deleted.

    Synchronization Policy (Application)

    • Manual: Manual synchronization.

    • Automatic: Automatic synchronization.

      • PRUNE RESOURCES: If selected, resources that are no longer defined in the Git repository are deleted from the cluster.

      • SELF HEAL: If selected, the application's live state automatically reconciles with the desired state in the Git repository. This prevents configuration drift caused by manual changes.

    The following table describes the sync options.

    Parameter

    Description

    SKIP SCHEMA VALIDATION

    Specifies whether to skip resource schema validation. Selecting this option is equivalent to runningkubectl apply --validate=false. By default, schema validation is performed.

    AUTO-CREATE NAMESPACE

    If selected, automatically creates the target namespace if it does not exist.

    PRUNE LAST

    If selected, prunes resources at the end of the sync operation, after all other resources are deployed and healthy.

    APPLY OUT OF SYNC ONLY

    If selected, the sync operation applies changes only to resources that are in an OutOfSync status. This can speed up the sync process.

    RESPECT IGNORE DIFFERENCES

    If selected, respects the ignoreDifferences configuration during the sync. Fields specified in the ignoreDifferences configuration are not checked for discrepancies.

    SERVER-SIDE APPLY

    Enables Kubernetes Server-Side Apply. Use this option if a resource manifest is too large for the Kubernetes annotation size limit, if you need to patch existing resources that are not fully managed by Argo CD, or to adopt a more declarative approach for tracking field ownership.

    REPLACE

    If selected, resources are updated using a replace action (kubectl replace) instead of the default apply action. The replace action deletes the existing resource before creating the new one, whereas apply uses a patch to update it.

    RETRY

    Configures the retry strategy for failed sync operations, including the number of retries, the duration between retries, and backoff settings.

    For more information about sync options, see Argo CD Sync Options.

  5. If the Quick Create method does not meet your needs, select the Create from YAML tab and define the ApplicationSet in YAML.

    Note

    Quick Create is synchronized with Create from YAML, and changes are reflected in the YAML content for Create from YAML.

  6. Click OK. You are redirected to the Multi-cluster GitOps page. After the ApplicationSet is created, you can view it in the list. The Status column shows the deployment result, and the Application column shows the number of applications generated by the ApplicationSet.

  7. Click the number in the Application column that corresponds to the Name of your ApplicationSet. The Multi-cluster Application Details dialog box opens, listing the generated applications. You can click an Application Name to open its page in the ArgoCD UI. Verify that the application status is Healthy and Synced, which indicates a successful deployment.